zoukankan      html  css  js  c++  java
  • Microsoft Domain Oriented NLayered .NET 4.0 App Sample (DDD Architecture)

    Project Description

    Domain Oriented N-Layered .NET 4.0 Sample App.
    By Microsoft - Spain

    Using .NET 4.0, C#, Entity Framework 4.0, 
    Implementing typical DDD architecture & design patterns
    Optional: Windows Server AppFabric & Windows Azure app versions

    Sample-App Current state - Version 1.0.
    This Sample-Application (currently our final V1.0) is an implementation example of our local Architecture Guide/Book (2009-2010), explained here:
    http://msdn.microsoft.com/es-es/architecture/default.aspx
    The Guide/Book current state is also a final Version. (Take into account that Sample-App is in English, but the Guide/Book is in Spanish, we're in the process of translating it to English).


    Architecture Diagrams

    Architecture-Technology DiagramDetailed Architecture Diagram


    Higher resolution diagram:
    http://blogs.msdn.com/cfs-file.ashx/__key/CommunityServer-Blogs-Components-WeblogFiles/00-00-00-84-75-metablogapi/5658.image_5F00_1299F40D.png

    Required Base Software _

    - Microsoft Visual Studio 2010 
    - Microsoft Expression Blend 4 
    - Microsoft SQL Server 2008 R2 Express (or higher) 
    - Microsoft Unity 2.0 
    - Microsoft PEX 2010 
    - Microsoft WPF Toolkit 
    - Microsoft Silverlight 4.0 Toolkit 
    - Microsoft Silverlight Tools for VS.2010 

    - Windows Server AppFabric (Just for the AppFabric compatible version) 
    - Windows Azure Tools for VS.2010 (Just for the Windows Azure compatible version) 

    Overview

    This project implements a very simple business scenario, but it is quite end to end complete regarding DDD N-Layered Architecture style , showing DDD design patterns implementation (Repository, UoW, Entity, Aggregate, Value-Object, etc.), using .NET 4.0 'technology wave' (EF 4.0, WCF 4.0, etc.) and several Archetypes (several clients, like WPF 4.0 , Silverlight 4.0 and ASP.NET MVC).

    Silverlight 4.0 Client

    Customer ListSilverlight Transition
    View Customer

    WPF 4.0 Client

    WPF Customer ListWPF View Customer
    Bank Transfers


    It is very 'Domain Oriented' , therefore, it illustrates typical DDD patterns , like Domain Entity, Value-Object, Aggregates, Repository, Unit of Work, Specification(most of those patterns originally defined by Eric Evans and Martin Fowler ), but implemented using ADO.NET Entity Framework 4.0 , Unity, WCF, and PEX (Stubs and Moles) for Unit Testing and mocking. 

    DDD is much more than this!!

    We're talking about complex 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’s 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, ORMs, 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 Sample-app 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’s team should work in a specific way, should have direct communication with the Domain Experts (the customer, in many cases). The team should use an ‘Ubiquitous Language’ which has to be the same language/terms used by the domain experts, etc. But, all those ways to work are not part of this Sample-App, because it is process, kind of ALM, so, if you want to really “Do DDD”, you’ll need to read Eric-Evans' book 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 just a small part of DDD, but, in this case those are the points we are showing here (DDD architecture and patterns). But we want to highlight that DDD is much more than Architecture and design patterns.

    Future versions plan

    For next versions we'd like to add the following features:
    - New Core flavour: EF 4.1 Code First approach plus DTOs (Aditional flavor to Self Tracking Entities)
    - Claims Base Security (For Core flavour plus ADFS2.0 and Azure flavour plus ACS)
    - New Clients (Silverlight 5, Phone 7, HTML5)
    - More new stuff!

    The Team

    This project is locally supported by several Software Architects and Developers (coming from Microsoft DPE Spain, MVPs, partners (especially Plain-Concepts) and Microsoft Services).
    We'll be happy hearing from you and getting your feed-back to improve and evolve this Architectural example!!.

    Regards,
    Cesar de la Torre
    Architect – Development & Platform Evangelism (Spain)
    Microsoft
  • 相关阅读:
    HDU 2328 POJ 3450 KMP
    挨踢江湖之十八
    Solr4.2迁移到新项目下异常:java.lang.NoSuchMethodError: org.apache.http.conn.scheme.Scheme.<init>
    滚动条
    《取悦症》听书笔记
    《洞见远胜创意》听书笔记-如何获得洞见
    《乌合之众》听书笔记
    《巨人的工具》听书笔记
    程序员职业生涯规划
    2017第20周摘录
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2042679.html
Copyright © 2011-2022 走看看