Pregunta

Estoy tratando de entender los conceptos detrás de DDD, pero me resulta difícil de entender simplemente leyendo libros, ya que tienden a discutir el tema de una manera bastante abstracta. Me gustaría ver algunas buenas implementaciones de DDD en el código, preferiblemente en C #.

¿Hay buenos ejemplos de proyectos que practican DDD en el mundo de código abierto?

¿Fue útil?

Solución

Eric Evans y una compañía consultora sueca han lanzado una aplicación de ejemplo basada en el ejemplo de envío que Eric usa a lo largo del libro. Está en Java, pero los conceptos están bien documentados en la página del proyecto.

http://dddsample.sourceforge.net/

Sin embargo, tenga en cuenta que DDD es más sobre el viaje que sobre el destino. Comprenda que el código de muestra que está buscando tomó muchas formas antes de que se convirtiera en lo que ve ahora. No vio los modelos incómodos que se usaron inicialmente y se están perdiendo los pasos dados para refactorizar el modelo en función de la información obtenida a lo largo del camino. Si bien los bloques de construcción son importantes en la DDD, Eric cree que están demasiado enfatizados, así que tome todas las muestras con un grano de sal.

Otros consejos

No estoy seguro de lo completo que está, pero encontré el Ejemplo de NDDD en el código de Google.

Me sorprende que nadie mencione Macto , muestra de DDD de Ayende. Lo más importante de Macto es que el proceso de pensar en el agujero antes de la codificación real se presenta en una serie de publicaciones . DDD no se trata de implementar un modelo, se trata de modelar un dominio empresarial. Decisiones como " algún concepto es un objeto de raíz / entidad / valor agregado " son mucho más importantes que la forma en que se persistirá un RA.

También recomendaría los videos de Udi Dahan sobre SOA y CQRS que podrían proporcionar un mejor contexto en el que aplicar DDD.

Este no es un proyecto de código abierto, pero sigue siendo un ejemplo en el código: http: // www. codeplex.com/dddpds

El ejemplo se usa en el libro .NET Dominado por Diseño de Dominio con C #: Problema-Diseño-Solución


Un ejemplo inventado que parece prometedor pero que podría haber muerto: http://www.codeplex.com/domaindrivendesign

Me temo que http://www.codeplex.com/domaindrivendesign ha muerto , pero si alguien esta interesado en contribuir no dude en contactarme.

En general, recomendaría no confiar demasiado en los ejemplos de DDD; en el mejor de los casos, se pueden mostrar los resultados del modelado del dominio y / o un enfoque para implementar los patrones. Por lo tanto, recomiendo leer el libro y luego hacer preguntas en el foro .

http://kigg.codeplex.com/ es un buen ejemplo para mí.

Sé que no es C #, pero este es un meta-marco de Java que sigue un enfoque de dominio: no sé mucho al respecto, pero estoy dispuesto a estudiarlo en el futuro cercano: Roma Framework

Una buena lectura es el libro de Jimmi Nilssons (y blog para esa materia) Aplicación de diseño impulsado por dominio

Es una mezcla de los libros de Evans y Fowlers ( Diseño controlado por dominio - Evans), y ( Patrones de arquitectura de aplicaciones empresariales - Fowler)

No he usado ninguna, pero hay algunas herramientas mencionadas en la página de Wikipedia de DDD. Aunque la mayoría de ellos parecen estar implementados en Java.

http://en.wikipedia.org/wiki/Domain-driven_design # Software_tools_to_support_domain-driven_design

Ok, encontré esto, pero es Java no C #:
http://timeandmoney.domainlanguage.com/

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top