• 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
  • 相关阅读:
    springboot集成flowable oracle数据库版本报错
    Vue.js中this.$nextTick()的使用
    Centos下虚拟环境的创建以及python3安装
    SaltStack实战
    第一章 Jenkins安装配置
    JavaScript 常用正则表达式
    ps 掉出字符设备面板,修改颜色等
    博客验证码破解
    我终于想起密码了~
    Linux grep 命令
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/2042679.html
Copyright © 2020-2023  润新知