2009-04-22 10 views
5

El otro día me pidieron que revisara un sistema basado en ASP.NET MVC + CSLA + DDD (diseño de unidad de dominio). La primera versión de este sistema se basó en ASP.NET MVC + CSLA. El segundo lanzamiento se basó en ese DDD añadido. La razón es porque ... bueno, no sé qué. Cuando miré los diagramas de las dos arquitecturas diferentes, era bastante evidente que la segunda versión era extremadamente más compleja. Los objetos de CSLA básicamente utilizan los objetos de Dominio. Cuando ves algo como esto, sabes que ya huele pero es difícil justificar por qué alguien no debería hacerlo de esta manera sin A) tener un conocimiento extremo de todos los temas o B) usarlo durante mucho tiempo. No tengo ninguno de estos para este tema, pero sé que si hubiera construido esto desde cero no lo habría hecho de esta manera, ni tampoco con muchos desarrolladores con los que me relacione.Es Asp.Net MVC + CSLA + DDD Posible

Entonces, querido lector, ¿qué harías en esta situación? Mi opinión es que si quieres usar CSLA y MVC y DDD, entonces haces una posición y eliges uno u otro (CSLA o DDD). Si no lo hace, hay demasiados cocineros en la cocina.

Por favor, arroja algo de información si tienes opiniones sobre este asunto.

+0

1 para "Demasiados cocineros en la cocina." –

Respuesta

-2

No estoy seguro de que CSLA que de memoria utiliza un enfoque ActiveRecord sea particularmente adecuado para DDD. Mejor con nHibernate.

+5

CSLA puede usar cualquier herramienta ORM, no está vinculada a una herramienta ORM. –

4

Mis pensamientos son que si quieres uso CSLA y MVC y DDD luego de hacer una posición y optaron por una u otra (CSLA o DDD). Si no lo hace, también hay muchos cocineros en la cocina .

Tiendo a estar de acuerdo con usted allí. Si alguien quiere hacer DDD con una arquitectura amigable DDD ya en funcionamiento + frameworks de apoyo, recomendaría S#arp Architecture sobre CSLA.

Dicho esto, algunas personas sienten que es posible asumir algunos de los aspectos de DDD usando CSLA. Obviamente, un purista de DDD probablemente se encogería ante esa perspectiva, pero no es necesario que seas un purista para obtener algo de DDD. Derick Bailey tiene un blog interesante sobre el tema: http://www.avocadosoftware.com/csblogs/dredge/archive/2007/02/19/687.aspx

+0

'Eliminar el DataPortal pero manteniendo los otros bits buenos' parece ser un tema común.En los foros de discusión de CSLA hay personas que han incorporado NHibernate con CSLA y en ese caso también decidieron prescindir del modelo de DataPortal ... – rohancragg

2

En mi opinión, CSLA se pegó un tiro en el pie con la última versión. Las opiniones difieren, pero es tan incorrecto, en mi libro, cuando un objeto tiene que saber si es un niño o no.

0

Parece que algunas personas están descubriendo que CSLA y DDD/Alt.Net no son completamente contradictorias.

Todavía estoy de acuerdo en que probablemente tengas mucho trabajo por hacer para adaptar el buen trabajo que Rocky ha hecho si decides que quieres seguir un camino más pragmático y menos purista, y como Keith ha sugerido , podría ser fácil crear un desastre si no tienes cuidado.

Alguna información adicional:

Using Dependency Injection with CSLA.NET

Using the Repository Pattern with CSLA.NET

rocosa en why he's committed to building a 'pragmatic' framework

Cuestiones relacionadas