note, the 'i' here, is mr. MARTIN FOWLER!!
and of course, eric evans hails from domain driven design fame
fundamental horror
it's so
contrary to the basic idea of object-oriented design
combine
data and process together
procedural style design
completely miss the point of what
object-oriented design is all about
It's also worth emphasizing that putting behavior into the domain
objects
should not contradict the solid approach of using layering to
separate domain logic from such things as persistence and presentation
responsibilities
logic that should be in a domain object is
domain logic
validations
calculations
business rules
One source of confusion in all this is that many OO experts do
recommend putting a layer of procedural services on top of a domain
model, to form a Service Layer
this isn't
an argument to make the domain model
void of behavior
service
layer advocates use a service layer in conjunction with a behaviorally
rich domain model.
... and has the *most value* to an organization investing in writing their own software
infrastructure software (eg. user interface, orm, application server-related frameworks) or plumbing code should be treated as commodities where possible, unless, the business consciously decides that a custom, home-grown implementation is absolutely required for patenting or other differentiation reasons and/or that no existing off-the-shelf solution can be used
but these cases should be rare! do not blindly fall for the not-invented-here syndrome
In short, it provides much easier configuration of the backend infrastructure and services you want to expose to the client and it integrates perfectly with the Spring application contexts and the Spring programming model in general.
Java - Adobe BlazeDS, Adobe LiveCycle Data Services (formerly known as Flex Data Services), Exadel Flamingo, RED 5, Cinnamon, OpenAMF, Pimento, Granite, WebORB for Java
displayed using JSF views, business logic is encapsulated in CDI beans, information is persisted using JPA, and transactions can be controlled manually or using EJB
deploy the example by right clicking on the jboss-as-login project, and choosing Run As -> Run On Server
src/main/webapp directory
beans.xml and face-config.xml tell JBoss AS to enable CDI and JSF for the application
don't need a web.xml
src/main/resources
persistence.xml, which sets up JPA, and import.sql which Hibernate, the JPA provider in JBoss AS, will use to load the initial users into the application when the application starts