MSDN Architecture Center
DDD NLayered .NET 4.0 Architecture Guide
• Free download of the 'Domain Oriented NLayered .NET 4.0 Architecture Guide'
DDD_NLayered_NET40_Architecture_Guide_Microsoft.zip Architecture Sample Application (NLayerApp V1 .0)
• Download the Sample Application (Published at CODEPLEX) http://microsoftnlayerapp.codeplex.com/
• Global technical presentation of the DDD Architecture DDD_NLayered_Architecture_Presentation.zip(16'1 MB)
• Feedback
• Objectives Microsoft Spain(Microsoft Ibérica) has noticed, in multiple customers and partners, the need to have a “.NET Base Architecture Guide” that can serve as an outline for designing and implementing complex and mission critical enterprise .NET applications with long term life and long evolution. This frame of common work defines a clear path to the design and implementation of business applications of great importance with a considerable volume of business logic. Following these guidelines offers important benefits regarding quality, stability, and especially, an improvement of future maintenance of the application, due to the loose-coupling between components, homogeneity, and similarities of the different developments that will be done based on these guidelines. To see higher resolution, click over the image Microsoft Spain defines this ‘Architecture Guide’ as a pattern and base model; however, this guide could be extended by any company so it fits specific requirements. This guide is only the first step of a staircase, an initial asset that could be customized and modified by each organization that adopts it, focusing on the specific needs, adapting it and adding specific functionality according to the target needs. Related Technologies Implementation of typical DDD (Domain Driven Design) Architecture and desing patterns using the following technologies: Visual Studio 2010, .NET 4.0, Entity Framework 4.0, UNITY 2.0, Silverlight 4.0, WPF 4.0, ASP.NET MVC, PEX&MOLES, Windows Server AppFabric, Cache, Windows Azure, SQL Server and SQL Azure. What is DDD (Domain Driven Design)? We're talking about complex and long life apps…, all their business rules (Domain logic) are points that, in most of the cases, need to be changed quite a lot during the app life. So it is critical to be able to change the app and test it in an easy way and independently from infrastructure areas (technology, data stores, data access technolgies, O/RMs, etc.). Because of that, it is important to have the Domain/Business Layer (domain logic, entities, etc.) decoupled from the other layers. Having said so, in our opinion, the best actual architectural style that fits with those requirements is a Domain Oriented N-Layered Architecture which is part of DDD (Domain Driven Design). And this Architecture Guidance is showing a way to implement a Domain Oriented N-Layered Architecture. But, and this is extremely important, DDD is on the other hand, much more than just a proposed Architecture and patterns. DDD is a way to build apps, a way for the team, to work in projects. According to DDD, the project team should work in a specific way, should have direct communication with the Domain Experts (the customer, in many cases). The development team should use an ‘Ubiquitous Language’ which has to be the same language/terms used by the domain experts, etc. But, in our guidance, we are not covering all those ways of working, because it is process, kind of ALM, so, if you really want to “Do DDD”, you’ll need to read Eric-Evans' book (‘Domain-Driven Design: Tackling Complexity in the Heart of Software’) or any other DDD book where they talk about the DDD process, about the project and the team, not just the Architecture and patterns. Architecture and patterns are only a small part of DDD, but, in our case, those are the points we are showing here (DDD architecture patterns and mapping it all to a specific implementation based on Microsoft technology). But we want to highlight that DDD is much more than Architecture and design patterns. |
Distinguished collaboratorUnai Zorrilla has been developing software during more than 10 years as independent consultant and in several companies, performing architecture and development tasks, usually on .NET platform.He is actually working as Principal Architect and developer-lead at PlainConcepts, where he is also a co-founder. Architecture Newsletter (Spain)In order to know events/conferences especially made for Software Architects here.
|
BlogsCésar de la Torre – Architect Advisor – Microsoft Unai Zorrilla – Development Lead – Plain-Concepts Javier Calvarro – Software Architect Roberto Gonzalez – Software Architect - Renacimiento Israel Garcia Mesa (Microsoft) Ricardo Minguez Pablos (RIDO) Pierre Milet LLobet Miguel Angel Ramos - Microsoft |
NewsAccelerate the initial development of DDD applications. |
Technical ArticlesModel-Driven SOA con“Oslo” |