Nuestro nuevo Libro-Guia de ‘Arquitectura N-Capas DDD .NET 4.0’ y Aplicacion ejemplo en (Disponibles para download en MSDN y Codeplex)


Platform Architecture Teamimage_thumb1

Acabamos de publicar (Microsoft DPE – Spain ) en MSDN-España y CODEPLEX nuestra nuevo Libro-Guía de ‘Arquitectura N-Capas DDD .NET 4.0’ y Aplicación ejemplo (Libro electrónico disponible para download gratuito y el mismo libro impreso en papel para regalar en nuestros eventos), así como su Aplicación Ejemplo (publicada en CODEPLEX), todo ello basado en tendencias de Arquitectura y patrones DDD (Domain Driven Design) así como en la ola de .NET 4.0, Entity Framework 4.0, Unity, WCF, PEX (Moles & Stubs) para Unit Testing y mocking, etc.

El libro está todavía en estado preliminar/borrador, pues todavía hay aspectos que queremos perfeccionar y otros aspectos a añadir. Pero es una versión suficientemente buena como para ser revisada y dar feed-back de ello.

Lo mismo respecto a la aplicación ejemplo en CODEPLEX. Es todavía una versión beta, con bastantes cosas por perfeccionar, pero ya muestra una implementación N-Capas DDD extremo a extremo. Y seguirá creciendo!!… :-)

Hemos estado trabajando sobre ello un conjunto de Arquitectos, desarolladores y diseñadores UX tanto de Microsoft-Spain como de varios partners, durante varios meses. La verdad es que estamos muy contentos con los resultados iniciales. En España esté teniendo una gran acogida en los Eventos para Arquitectos que acabamos de hacer, así como en Internet (MSDN y CODEPLEX).

Diagrama de Arquitectura con Orientación al Dominio (DDD) y Cubierta e índice del libro

e-Book (gratis) – Versión preliminar (03/2010)
image_thumb3

Resumen del Libro-Guía y de la Aplicación ejemplo

Este libro muestra la mayoría de los aspectos arquitecturales y patrones definidos originalmente por Eric Evans así como también patrones de Martin Fowler, y principios de diseño ’SOLID’. Por lo tanto, exponemos primero a nivel teórico la arquitectura, capa a capa en DDD, y sus patrones (Entity, POCO/IPOCO Entities, Value-Object, Aggregates, Repository, Unit of Work, Specification pattern, etc.) y posteriormente, en la segunda parte de cada capitulo, exponemos como implementarlo en .NET 4.0, con tecnologías como ADO.NET Entity Framework 4.0 , Unity, Servicios WCF, and PEX (Stubs and Moles), WPF, Silverlight 4.0, AppFabric (‘Dublin’), AppFabric-Cache (‘Velocity’) etc.

Relativo a la aplicación ejemplo, se muestra con un ejemplo práctico con una implementación extremo a extremo de todo lo que explicamos en el libro. La versión actual posee todo el ‘core’ de DDD, con EF 4.0, Unity, Servicios WCF, PEX, etc., y estamos trabajando actualmente en una versión con un cliente SL4.0, AppFabric, cache, WF, etc.

Downloads gratuitos del Libro-Guía y Aplicación ejemplo en CODEPLEX:

DownloadLibro-Guía de ‘Arquitectura N-Capas DDD .NET 4.0’ – (e-Book en ESPAÑOL)

http://msdn.microsoft.com/es-es/architecture/default.aspx
Download – Aplicación ejemplo en CODEPLEX (Inglés, para proyección internacional)

http://microsoftnlayerapp.codeplex.com/

 

Objetivos

Este punto es muy importante. Es de destacar que DDD y po lo tanto nuestra guía de Arquitectura está especialmente diseñado para aplicaciones complejas con un volumen importante de lógica de negocio. Aplicaciones que tienen una vida larga y un mantenimiento y cambio de su lógica de negocio, donde se quiere aislar y proteger la Capa del Dominio/Negocio de la ‘contaminación’ de tecnologías concretas. Así pues, esta Arquitectura NO es para aplicaciones pequeñas o aplicaciones dirigidas simplemente por datos (CRUD, etc.). Si se quiere hacer este otro tipo de apps mas reducidas, recomendamos por el contrario, utilizar otra aproximación, como tecnologías RAD (Rappid Application Development) como WCF-RIA-Services, que son arquitecturas mucho mas sencillas y fáciles de implementar, mas productivas inicialmente, aunque mucho mas acopladas sus capas y no tan idóneas por otro lado para grandes aplicaciones con una vida larga de cambios.

Aplicación ejemplo en Codeplex (Se muestra el cliente WPF)

 

Software ‘de base’ requerido para la versión actual

– Microsoft Visual Studio 2010 – RC
– Microsoft SQL Server 2008 Express (or higher)
– Microsoft Unity 1.2 (We’ll migrate to Unity 2.0 in the near future)
– Microsoft PEX 2010
– Microsoft WPF Toolkit

(Las versiones específicas y URLs de download están especificadas en CODEPLEX, junto al Download de la App)

 

 

¡Plan para siguientes versiones!!

Para las siguientes versiones y ‘sabores’ de aplicación, estamos trabajando actualmente en lo siguiente:

– Nuevos clientes de aplicación: Silverlight 4.0, ASP.NET MVC, OBA y Windows Phone 7!!

– Añadiendo otra versión con AppFabric-Cache (“Velocity”) y AppFabric Hosting para los servicios WCF.

– Añadir Seguridad con Orientación a Claims basada en WIF (Windows Identity Foundation)

Unity 2.0 para desacoplamiento entre los componentes de las Capas de la Arquitectura DDD

– algunos building blocks de la siguiente versión de ENTLIB: Enterprise-Library 5.0

– ¡Mas ideas que nos queráis dar!! :-)

 

 

Equipo de trabajo

Este proyecto está localmente soportado en España por varios Arquitectos de Software y Desarrolladores tanto de Microsoft (DPE, MCS y Premier Support) como de varios partners. Le doy las gracias especialmente a los siguientes autores, colaboradores y reviewers:

Unai Zorrilla (Plain-Concepts), Javier Calvarro, Miguel Angel Ramos (Microsoft), Rido Minguez (Microsoft), Pierre Millet (Microsoft), Israel García Mesa (Microsoft), Roberto Gonzalez (Renacimiento) y Juan Cid (Avanade), y otros Arquitectos y desarrolladores que añadiré aquí si he olvidado ponerlos… 😉

¡Colaboración abierta a toda la comunidad!!

Nos encantará recibir noticias, sugerencias, feed-back de la versión actual del libro y de la aplicación ejemplo así como ideas a añadir para mejorar este proyecto que pensamos que esté ‘vivo’ durante muchos meses, creciendo en ideas de implementación de patrones así como en añadir nuevas tecnologías y ‘sabores’.

Así que, muchísimas gracias a todo el que nos dé feed-back. Por favor, hacedlo a través de las DISCUSIONES en nuestro site de CODEPLEX donde tenemos puesta la aplicación ejemplo, ok?

Cesar de la Torre

cesardl@microsoft.com

Architect Evangelist

Microsoft – España

guia_arquitectura_n-capas_orientada_al_dominio_con_net_4_0-microsoft_architecture.zip

Comments (35)

  1. asereware says:

    Estimado César, gracias por compartir este trabajo que considero muy valioso y útil. Lo he estado estudiando con suma atención y efectivamente es una compilación y revisión del estado del arte que vale la pena leer y mantener actualizada en el tiempo, con nuevas versiones, que incorporen los nuevos frameworks y herramientas que se vayan estableciendo. Saludos.

  2. eduardo inal says:

    Buen trabajo Cesar, me gusta mucho!

    Eduardo Inal

  3. gpinod says:

    César, me parece muy interesante esta arquitectura DDD, pero tengo algunas dudas con respecto a su implementación, sobre todo de la Capa de Aplicación, y no entiendo cuál es la diferencia entre esta Capa de Aplicación y la subcapa de Workflow que es parte de la Capa de Dominio, ya que en la pagina de Domain Driven Design (dddsample.sourceforge.net/architecture.html), comenta que la capa de Aplicación es la que dirige el workflow de la aplicación y coordina los objetos de la capa de dominio, y esto hace que me pierda un poco. Si es que puedes dar una explicación con respecto a sus diferencias.

  4. Emilio García says:

    Es un gran libro me ha servido de mucho la versión Beta que es la que he leído, espero que esta sea la oficial ya!!! Me quedo con algunas dudas pero la práctica es lo que falta!!

    Muchas gracias a los autores y colaboradores!!!

  5. Augusto Ruiz says:

    Es un libro muy completo. Enhorabuena por el esfuerzo realizado a todos los autores, y muchas gracias por compartirlo.

  6. Julio César Sánchez Trejo says:

    César de la Torre,

    Agradecemos tu esfuerzo y el de todo tu equipo por este aporte invaluable. Es una excelente integración de conocimientos, conceptos, pero sobre todo, está aterrizado hacia el uso de la tecnología Microsoft.

    Generalmente, cuando se tratan estos temas sin una implementación de referencia específica hacia una cierta tecnología, es común que cada quien interprete libremente las cosas de una u otra forma de acuerdo a su experiencia. Y a veces esto termina siendo un caos…pues NO existe una homogenización de conceptos que permitan al equipo de desarrolladores avanzar de manera ordenada.

    Enhorabuena, sé que este proyecto es y será aún más exitoso cuando el libro en inglés se libere para captar a una audiencia mucho más amplia.

    Saludos desde México.

  7. Miriam J. Myszne says:

    Estimado autor:

    Desde Argentina le comento que usaremos capítulos específicos como apoyatura para una materia en la carrera terciaria del Instituto de Tecnología Ort de la cuál soy docente hace años.

    Muy detallado, claro y decidado su trabajo.

    Saludos cordiales.

  8. Juan José says:

    Buenos días César,

    Me encanta su libro ya que me ayuda mucho a conocer muchos conceptos que simplemente desconocía y me ayudarán a crear aplicaciones sólidas y muy flexibles a cambios.

    He intentado descargarme la Aplicación Ejemplo pero en Codeplex me aparece que el proyecto no está publicado. ¿Sería posible que se vuelva a publicar? ¿Hay un enlace alternativo? ¿O se está trabajando en una nueva versión más actualizada?.

    Muchas gracias de antemano

    Saludos…

    JJ

  9. bod says:

    Hola,

    Estupendo aporte. GRACIA!!  De donde puedo bajar la aplicación de ejemplo!??

    Saludos

  10. arbems says:

    Hola Cesar,

    Agradezco tu trabajo. Preguntarte si se esta trabajando en la nueva versión de la aplicación, tengo dudas en como añadir Seguridad con Orientación a Claims basada en WIF y quizás en esta nueva versión resuelva mis dudas. Gracias

    Un saludo

  11. Cesar de la Torre [MSFT] says:

    @ arbems

    Si tu app es web, lo mas sencillo es utilizer la seguridad nueva en ASP.NET Identity.

    Si es cliente .NET Windows, hay librerias OAuth y AD (busca por Vittorio Bertocci) nuevas tambien mas simplificadas que WIF.

  12. arbems says:

    Te comento Cesar, voy a tener clientes Web, Windows, Java…

    ¿La seguridad se deja en manos de los clientes o esto se debe de controlar de alguna manera desde alguna de las capas de la arquitectura?

  13. Cesar de la Torre [MSFT] says:

    La seguridad debe de estar situada especialmente en el Servidor, si no, seria bastante facil tener agujeros de seguridad muy importantes.

    En cliente se puede implementar la peticion de la autenticacion, pero la autenticacion en si debe ser hecha en el server, o en un STS. lo mismo la autorizacion a recursos, componentes del Dominio, etc, debe de estar normalmente en el servidor.

    La infraestructura es cross-cutting, despues, login estaria en la capa de Application. Y autorizaciones, depende de que recursos se quieran proteger. Puede ser a alto nivel en la Capa de Application o a veces en elementos del Domain Model Layer, depende.

  14. Rodrigo says:

    Hola Cesar como estas.

    Consulta, de donde se puede bajar el e-Book en ESPAÑOL ?

    El link que esta publicado al parecer no apunta al pdf.

    Gracias!

  15. cesardl says:

    @ Rodrigo Se acaba de cambiar las paginas de MSDN Architecture a nivel mundial y eso ha hecho que desaparezcan las antiguas paginas de MSDN Spain donde estaba publicado. Yo trabajo en Microsoft Corp, en Seattle, por lo que ya no coordino ninguna iniciativa en Espana.

    Lo acabo de publicar como attachment de este blog post.

    Lo puedes ver al final de este post, ok?

  16. Rodrigo says:

    Si ahi lo descargue desde el link del final de este post

    Muchas Gracias Cesar !!

    Abrazo desde Argentina.

  17. Rodrigo says:

    Cesar, al parecer el archivo PDF del attachment del final del post esta corrupto. Al intentar abrirlo mustra el mensaje de archivo dañado.

    Si no es molestia, talvez puedas publicarlo nuevamente ? o en un .zip ?

    Gracias de nuevo!

  18. Kapoc says:

    Cesar, Me gustaria saber si me puedes enviar la aplicacion, debido a que ingreso al link y no esta disponible, agradezco de antemano syu atencion y pronta respuesta,

    Cristiancamilo1033@gmail.com

  19. Diego says:

    @Kapoc, en una de las respuestas esta publiado el link para bajar la app, es blogs.msdn.com/…/just-published-the-english-version-of-our-ddd-n-layered-net-4-0-architecture-guide-book-and-sample-app-at-codeplex.aspx  de ahi yo la pude obtener. Saludos

  20. Ricardo Muñoz says:

    Tengo dudas sobre cómo implementar la arquitectura DDD en Visual Studio 2013, en el libro manejan el Self- Tracking Entities Generator, en el VS2013 te genera automáticamente un archivo .tt que genera las clases del modelo. Me gustaría poder aplicar esta arquitectura en mi proyecto de VS2013, sólo que no sé exactamente por dónde empezar y cómo hacerlo.

    Saludos

  21. Cesar de la Torre [MSFT] says:

    @ Ricardo

    Hola Ricardo,

    Baja y mira los capitulos nuevos en otro de mis blog posts, en ingles. Es mejor utilizar clases entidad POCO y Code-First en lugar de Self-tracking que utilizábamos en la primera versión.

    Las clases self-tracking pueden darte problemas a la larga (cuando se complica la aplicación, etc.)

  22. JROSALESCHUQUIPA says:

    Hola, he descargado el libro pero no se puede abrir agradecería si alguien lo tiene agradecería me lo envíe a mi correo jrosaleschuquipa@hotmail.com GRACIAS

  23. German says:

    Oigan chicos, si serían tan amables podrían compartir el PDF de nuevo :D.

    Gracias!

  24. Enrique Ferreyra says:

    El .pdf sigue corrupto, tengo un borrador solamente, se puede conseguir el original en español de algún lado ?

  25. cesardl says:

    @ Enrique

    Hola, he actualizado el download de la guia en un .ZIP que tiene el .PDF y tambien en otros formatos eBook.

    Destacaar que la ultima version está solo en ingles:

    http://sdrv.ms/18bjLty

    Este fue el post completo:

    blogs.msdn.com/…/just-published-the-english-version-of-our-ddd-n-layered-net-4-0-architecture-guide-book-and-sample-app-at-codeplex.aspx

    Pero en castellano esta solo la versión inicial, donde no existían todavía entidades CODE FIRST POCO en Entity Framework 4.0 y usábamos entidades con T4 y métodos partial, etc.

    El 80% del libro (patrones teoricos Domain-Driven) es valido, los principios y approaches Domain-Driven, etc., pero la parte concreta de ENTITY FRAMEWORK te aconsejo que veas mejor la versión en ingles.

  26. lorenzosjb says:

    Interesante, pero, ¿donde está el libro? Ni en la busqueda dentro del sitio pude encontrar el link al pdf. Gracias

  27. Cesar de la Torre [MSFT] says:

    @lorenzosjb Justamente en mi comentario anterior esta explicito donde esta el libro.

    Destacaar que la ultima version está solo en ingles:

    http://sdrv.ms/18bjLty

    Este fue el post completo:

    blogs.msdn.com/…/just-published-the-english-version-of-our-ddd-n-layered-net-4-0-architecture-guide-book-and-sample-app-at-codeplex.aspx

    Pero en castellano esta solo la versión inicial, donde no existían todavía entidades CODE FIRST POCO en Entity Framework 4.0 y usábamos entidades con T4 y métodos partial, etc.

    Se puede comprar tambien en papel en AMAZON: http://www.amazon.com/…/8493903612

    El 80% del libro (patrones teoricos Domain-Driven) es valido, los principios y approaches Domain-Driven, etc., pero la parte concreta de ENTITY FRAMEWORK te aconsejo que veas mejor la versión en ingles en los capitulos que se pueden bajar del enlace de arriba. Sabiendo ingles, recomiendo major simplemente esos capitulos del download de arriba.

  28. Carlos says:

    Cesar,

    ójala que también se publicaran esos cambios en español.

    Un saludo y muchas gracias por este trabajo tan estupendo y el esfuerzo que supone.

  29. Arthur says:

    Agradezco su dedicación a la elaboración y compartir su conocimiento con la comunidad, en lo particular me ha servido mucho este proyecto como guia para mis proximos trabajos, los felicito y ojala haya cada ves mas gente como ustedes.

    Saludos desde México.

  30. Victor says:

    Muy buena informacion,  gracias por el aporte

  31. santiago lopez says:

    hola cesar, te cuento que he seguido tu libro en buena parte de mi trabajo, como haz dicho en anteriores respuestas de este blog, el 80% aun aplica… eso fue hace 2 años (bueno tal vez menos 😉 ) ya tenemos el vs2015 con codefirst desde una base de datos, y framework 4.5.2 (aun con 2013) y el que viene es el 5… porque no han sacado unos nuevos lineamientos para estas nuevas tecnologias?? ademas la implementación de identity 2x con oAuth, roslyn, Mvc etc…. se que el diseño de manejo de dominio no cambia mucho si se utilizan bien las otras capas, pero como te dije con el nuevo "boom" de tecnologias en que cambiaria lo explicado en libro?? si ya existe me gustaría tener el libro pdf (asi sea en ingles) y Gracias por el aporte a la comunidad .net

  32. Cesar de la Torre [MSFT] says:

    Hola Santiago. Como bien dices, el 80% aun aplica con las tecnologias actuales y las que estan saliendo (ASP.NET 5, .NET Core 5, etc.). Si recomendaria en cada BC aplicar patrones DDD para la parte transaccional y en cambio no limitarse a los AGGREGATES, etc en las queries/consultas que pueden tener mucha mas flaxibilidad y no impacta. Es probablemente lo que si cambiaria con respect al libro basado en experiencias posteriores.

    Debido a otras prioridades de mi trabajo en Microsoft Corp. no creo que disponga de tiempo para escribir una nueva version de este libro. Si lo hiciera, seria mas bien una evolucion hacia Microservices basado en principios DDD.

    A nivel de arquitectura y patrones te recomendaria ir evolucionando hacia "microservices" que al final esta muy basado en DDD, por lo que muchas cosas os coincidiran. Por ejemplo, un microservice es al final como un pequeno BOUNDED-CONTEXT que se comunica 100% como un servicio HTTP autonomo, etc.

    A nivel de infraestructura, si vuestras applicaciones son mission-critica y hyperscale, os recomiendo tambien ir mirando Azure Service Fabric. Estoy escribiendo un articulo para MSDN Magazine sobre "Microservices and Service Fabric" que se publicara en Diciembre seguramente, ahi tendras una Buena introduccion sobre ello. Realmente lo tengo ya acabado, esta ya solo en fase de format y edicion de MSDN Magazine. :)

  33. Toni says:

    Hola César,

    De entrada darte la enhorabuena (y extenderla a tus colaboradores) por el resultado del libro.

    Nos está siendo de gran utilidad para "refactorizar" nuestra aplicación y ordenarla.

    El caso es que sé que existen copias en papel del mismo y me gustaria tenerlo en dicho formato para poder hacer mis anotaciones y demás (sé que es arcaico, pero…). Lo he buscado en amazon y no está disponible, ¿me puedes indicar dónde puedo hacerme con una copia?

    Gracias de antemano y un saludo.

  34. Cesar de la Torre [MSFT] says:

    @Toni Esta aqui en Amazon (Solo version en ingles que era mas nueva):

    http://www.amazon.com/…/ref=sr_1_2

    Os recomiendo que reviseis tambien approaches arquitecturas Microservices que es la evolucion principal de DDD hoy en dia. Mirad este articulo MSDN que he escrito sobre Microservices y Azure Service Fabric:

    blogs.msdn.com/…/azure-service-fabric-and-the-microservices-architecture-my-new-msdn-magazine-article.aspx