Building a Lean Architecture for Web Applications using Domain Driven Design & Model Driven Software Development
by Jeppe Cramon on Feb 08, 2010
- 3,068 views
How do we create a lean architecture and process for building Web Applications? ...
How do we create a lean architecture and process for building Web Applications?
In this talk I will give my view on how I believe we can improve our track record - exemplified through a desktop style Web application developed using the Vaadin component based web framework.
I will draw upon best practices from Domain Driven Design and Model Driven Software Development, to show how we can get closer to the users mental model, while saving precious code lines through automation.
Finally we will look at how strong data-binding can give us less error prone code and finally we will dive into the differences between MVC (Model View Controller), Model View Presenter (MVP) and finally Model View - ModelView.
Accessibility
Categories
Upload Details
Uploaded via SlideShare as Apple Keynote
Usage Rights
© All Rights Reserved
Statistics
- Likes
- 6
- Downloads
- 278
- Comments
- 1
- Embed Views
- Views on SlideShare
- 2,874
- Total Views
- 3,068
1–1 of 1 previous next
In this talk I will give my view on how I believe we can improve our track record - exemplified through a desktop style Web application developed using the Vaadin component based web framework.
I will draw upon best practices from Domain Driven Design and Model Driven Software Development, to show how we can get closer to the users mental model, while saving precious code lines through automation.
Finally we will look at how strong data-binding can give us less error prone code and if time permits we will dive into the differences between MVC (Model View Controller), Model View Presenter (MVP) and finally Model View - ModelView.
Vi løser de forkerte problemer
A domain model is not a diagram -> it is the idea that the diagram is intended to convey.
It's not the knowledge in the domain experts head -> It is a rigorously organized and selective abstraction of knowledge.
A diagram can represent and communicate a model, as can carefully written code, as can an English sentence
2. Because of model/implementation binding developers can talk in this language. They can talk to domain experts without translating.
2. Because of model/implementation binding developers can talk in this language. They can talk to domain experts without translating.
2. Because of model/implementation binding developers can talk in this language. They can talk to domain experts without translating.
Choose one entity to be root and control access to objects inside the boundary through the root. External objects hold references to the root only!
Choose one entity to be root and control access to objects inside the boundary through the root. External objects hold references to the root only!
Choose one entity to be root and control access to objects inside the boundary through the root. External objects hold references to the root only!
What the System does is captured in use cases and implemented as “Contexts” where our domain objects play certain “Roles” (DCI - Data, Context, Interaction)
What the System does is captured in use cases and implemented as “Contexts” where our domain objects play certain “Roles” (DCI - Data, Context, Interaction)
What the System does is captured in use cases and implemented as “Contexts” where our domain objects play certain “Roles” (DCI - Data, Context, Interaction)
Action based MVC (like Stripes, Struts, Struts 2) are not appropriate for this type of application since components are not naturally supported - poor encapsulation of tables, pagination, form validation (some frameworks support this better than others)
Needs a proper RIA framework with DataSource, Key/Value Observing like SproutCore, Qooxdoo, YUI, ExtJS, etc.
Frameworks like jQuery lack proper support for DataSources, Key/Value Observing, etc.
Con: Need to “replicate” server side model to the browser (REST, RPC, etc.) - Not all are familiar with JavaScript
Needs a proper RIA framework with DataSource, Key/Value Observing (property change listener) like Vaadin
Security is handled by the framework. Use GWT to program the Client side - no need to learn JavaScript
Con: New (non-composite) components can be harder to comprehend (both GWT and Server side + XUL). Poor for “read-only” web-pages