Microsoft NLayerApp“.NET研究”案例理论与实践 - 项目简介与环境搭建

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介:   项目简介  Microsoft – Spain团队有一个很不错的面向领域多层分布式项目案例:Microsoft – Domain Oriented N-Layered .NET 4.0 App Sample(在本系列文章中,我使用NLayerApp作为该项目的名称进行介绍),在codeplex上的地址是:http://microsoftnlayerapp.codeplex.com/。

  项目简介

  Microsoft – Spain团队有一个很不错的面向领域多层分布式项目案例:Microsoft – Domain Oriented N-Layered .NET 4.0 App Sample(在本系列文章中,我使用NLayerApp作为该项目的名称进行介绍),在codeplex上的地址是:http://microsoftnlayerapp.codeplex.com/

  它是学习领域驱动设计(DDD)的一个非常不错的案例项目。该项目采用的是经典的DDD架构,而不是CQRS架构,但我觉得整个案例做的非常不错,基本上包含了基于DDD的架构实践的各个方面。因此,应不少社区朋友的要求,我打算花一部分精力来写一个介绍该项目理论与实践的系列文章。这部分系列文章将分为两个部分:

  1. 原理部分:这部分介绍上海徐汇企业网站制作Microsoft NLayerApp的一些理论依据,包括架构设计原则、分层架构、DDD、Distributed DDD、面向对象分析与设计等。事实上,microsoftnlayerapp.codeplex.com站点上已经有一些文档对这部分内容作了介绍,因此,原理部分的内容我将基本上是对这些英文文档进行翻译整理,然后再添加一些自己的注释,这样做的好处是,能够就整个企业级项目的开发与设计为读者提供一套相对系统全面的学习材料。NLayerApp的官方站点本身也在做西班牙语到英语的翻译工作,所以这部分英文文档也并不全面,我会在新英文版文档发布后,在此相应地添加所缺失的部分
  2. 实践部分:这部分将对整个NLayerApp Solution的结构、各个逻辑层、各种用到的技术进行剖析和介绍。与原理部分不同,此部分内容更关注技术的具体实现细节,而不是去讨论什么是面向对象,什么是分层架构等基础性问题

  注意:Microsoft – Spain团队一直以Domain Oriented一词来形容这个项目,而不是用Domain Driven Design,原因是,Domain Driven Design包含的内容,不仅仅是某一种架构技术,它还包含软件项目的开发方式、开发团队的协作管理、用于领域专家和软件人员之间的通用语言的创建等内容。然而,在整个NLayerApp项目中,并没有用到DDD的所有这些内容,项目的范围仅限于逻辑/技术层面的架构设计。

  NLayerApp项目环境搭建

  在开始这个系列文章之前,先让我们把NLayerApp的项目环境搭建好。在搭建环境之前,请检查你的电脑是否满足下面的先决条件:

  请按下面的步骤安装和配置NLayerApp:

  1. 完成上述开发包的安装和配置(最后两项可以不安装,本系列文章没有用Windows Server AppFabric和Azure的功能)
  2. 下载NLayerApp v1.0的压缩包,地址是:http://microsoftnlayerapp.codeplex.com/releases/view/56660,选择V1.0 - N-Layer DDD Sample App NET4.0,本系列文章将使用这个版本进行介绍
    image
  3. 解压缩下载完的zip包,包含三个文件夹:CORE、CORE-APPFABRIC和CORE-AZURE。本系列文章没使用AppFabric和Azure,所以,直接进入CORE目录
  4. 暂时直接无视Tests,所以,双击打开NLayerAppWithoutTesting.sln解决方案
  5. 这个解决方案没有将Infrastructure.Data.MainModule.Mock项目添加进来,这会导致Infrastructure.CrossCutting.IoC项目无法编译通过。在Visual Studio中,将解决方案展开到1.5.1 Data节点,在该节点上右键单击,选择Add | Existing Project,然后在CORE的Infrastructure.Data.MainModule.Mock目录下选择Infrastructure.Data.MainModule.Mock.csproj项目文件,并单击Open按钮
  6. Server Explorer中,右键单击Data Connections节点,选择Create New SQL Server Database选项
    image
  7. 在打开的Create New SQL Server Database对话框中,填入你的Server地址,然后输入数据库名称,再单击OK按钮。本案例使用SQL Express(with Windows Authentication),使用默认的数据库名称NLayerApp
    image

    你完全可以选择自己定义的SQL Server和数据库名称,如果你是使用自己定义的SQL Server和数据库的话,请同时修改2 – Database节点下NLayerAppDatabase项目的属性:右键单击NLayerAppDatabase项目,选择Properties,在Property页的Deploy选项卡中修改相关参数:
    image
  8. 右键单击NLayerAppDatabase项目,然后单击Deploy,这将创建数据库Schema
  9. 编译整个解决方案
  10. 1.2 – Distributed Services节点下,找到DistributedServices.Deployment项目,右键单击项目下的MainModule.svc文件,选择View in Browser,以启动WCF服务
    image
  11. 启动用户界面。NLayerApp v1.0提供以下几种用户界面:基于RIA的Silverlight 4.0 Client,基于Web的ASP.NET MVC Client,基于Windows的WPF Client
    基于RIA的Silverlight 4.0 Client
    右键单击Silverlight.Client.Web项目下的Silverlight.Client.Web.html文件,选择View in Browser,则启动基于RIA的Silverlight 4.0 Client
    image
    基于Web的ASP.NET MVC Client
    MVC.Client项目设置为启动项目并直接运行,可以启动基于Web的ASP.NET MVC Client
    image
    可能是我浏览器版本低的缘故,得到的ASP.NET MVC页面布局有点乱
    基于Windows的WPF Client
    WPF.Client项目设置为启动项目并直接运行,可以启动基于Windows的WPF Client
    image
上海徐汇企业网站设计与制作

  本文介绍了NLayerApp项目的基本情况和环境搭建。从下一讲开始,我们将进入架构设计的理论学习部分,包括:分层架构、SOLID与设计原则、面向领域驱动设计(DDD)的架构趋势以及分布式DDD(Distributed DDD,DDDD)。这部分内容将主要来自于NLayerApp官网(microsoftnlayerapp.codeplex.com)提供的英文文档,daxnet将在此做翻译、整理与注解。

目录
相关文章
|
3月前
|
C++ Windows
.NET Framework安装不成功,下载`NET Framework 3.5`文件,Microsoft Visual C++
.NET Framework常见问题及解决方案汇总,涵盖缺失组件、安装失败、错误代码等,提供多种修复方法,包括全能王DLL修复工具、微软官方运行库及命令行安装等,适用于Windows系统,解决应用程序无法运行问题。
253 3
|
4月前
|
存储 缓存
.NET 6中Startup.cs文件注入本地缓存策略与服务生命周期管理实践:AddTransient, AddScoped, AddSingleton。
记住,选择正确的服务生命周期并妥善管理它们是至关重要的,因为它们直接影响你的应用程序的性能和行为。就像一个成功的建筑工地,工具箱如果整理得当,工具选择和使用得当,工地的整体效率将会大大提高。
169 0
|
9月前
|
开发框架 前端开发 .NET
一个适用于 .NET 的开源整洁架构项目模板
一个适用于 .NET 的开源整洁架构项目模板
160 26
|
9月前
|
开发框架 安全 .NET
【Azure Developer】.NET Aspire 项目本地调试遇 Grpc.Core.RpcException 异常( Error starting gRPC call ... )
Error starting gRPC call. HttpRequestException: The SSL connection could not be established, see inner exception. AuthenticationException: The remote certificate is invalid because of errors in the certificate chain: UntrustedRoot
195 12
|
8月前
|
传感器 人工智能 机器人
D1net阅闻|OpenAI机器人项目招新 或自研传感器
D1net阅闻|OpenAI机器人项目招新 或自研传感器
|
11月前
|
开发框架 网络协议 .NET
C#/.NET/.NET Core优秀项目和框架2024年10月简报
C#/.NET/.NET Core优秀项目和框架2024年10月简报
326 3
|
开发框架 前端开发 API
C#/.NET/.NET Core优秀项目和框架2024年9月简报
C#/.NET/.NET Core优秀项目和框架2024年9月简报
217 1
|
开发框架 缓存 算法
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
开源且实用的C#/.NET编程技巧练习宝库(学习,工作,实践干货)
786 0
|
10月前
|
监控 前端开发 API
一款基于 .NET MVC 框架开发、功能全面的MES系统
一款基于 .NET MVC 框架开发、功能全面的MES系统
253 5
|
开发框架 前端开发 JavaScript
ASP.NET MVC 教程
ASP.NET 是一个使用 HTML、CSS、JavaScript 和服务器脚本创建网页和网站的开发框架。
211 7