Microsoft NLayerApp案例理论与实践 - 项目简介与环境搭建
原理部分这部分介绍Microsoft NLayerApp的一些理论依据包括架构设计原则、分层架构、DDD、Distributed DDD、面向对象分析与设计等。事实上microsoftnlayerapp.codeplex.com站点上已经有一些文档对这部分内容作了介绍因此原理部分的内容我将基本上是对这些英文文档进行翻译整理然后再添加一些自己的注释这样做的好处是能够就整个企业级项目的开发与设计为读者提供一套相对系统全面的学习材料。NLayerApp的官方站点本身也在做西班牙语到英语的翻译工作所以这部分英文文档也并不全面我会在新英文版文档发布后在此相应地添加所缺失的部分实践部分这部分将对整个NLayerApp Solution的结构、各个逻辑层、各种用到的技术进行剖析和介绍。与原理部分不同此部分内容更关注技术的具体实现细节而不是去讨论什么是面向对象什么是分层架构等基础性问题注意Microsoft – Spain团队一直以“Domain Oriented”一词来形容这个项目而不是用“Domain Driven Design”原因是Domain Driven Design包含的内容不仅仅是某一种架构技术它还包含软件项目的开发方式、开发团队的协作管理、用于领域专家和软件人员之间的“通用语言”的创建等内容。然而在整个NLayerApp项目中并没有用到DDD的所有这些内容项目的范围仅限于逻辑/技术层面的架构设计。NLayerApp项目环境搭建在开始这个系列文章之前先让我们把NLayerApp的项目环境搭建好。在搭建环境之前请检查你的电脑是否满足下面的先决条件Visual Studio 2010 RTM 和 .NET 4.0 RTMExpression Blend 4好像微软公共官方网站没有直接的下载地址只有MSDN订阅用户才能下载到完整版本。不过使用Expression Blend SDK for Silverlight 4应该也是可以的。下载地址是http://www.microsoft.com/downloads/en/details.aspx?FamilyIDd197f51a-de07-4edf-9cba-1f1b4a22110dSQL Server 2008 R2 Express/Standard/Enterprise本系列文章使用的是Express版本Unity Application Block 2.0 – 5/5/2010发布下载地址http://www.microsoft.com/downloads/en/details.aspx?FamilyID2D24F179-E0A6-49D7-89C4-5B67D939F91BdisplaylangenPex Moles 0.94.51023.0, Visual Studio 2010 Power Tools, 10/29/2010发布地址http://research.microsoft.com/en-us/projects/pex/downloads.aspx#PexMSDNWPF Toolkithttp://wpf.codeplex.com/releases/view/40535Silverlight 4 Tools for Visual Studio 2010: http://www.microsoft.com/downloads/en/details.aspx?displaylangenFamilyIDb3deb194-ca86-4fb6-a716-b67c2604a139Silverlight 4.0 Toolkit (4/15/2010): http://silverlight.codeplex.com/releases/view/43528Windows Server AppFabric可选本系列文章用不到http://www.microsoft.com/downloads/en/details.aspx?FamilyID467e5aa5-c25b-4c80-a6d2-9f8fb0f337d2Windows Azure SDK Azure Tools for VS2010, Nov. 2010可选本系列文章用不到http://www.microsoft.com/downloads/en/details.aspx?FamilyID7a1089b6-4050-4307-86c4-9dadaa5ed018请按下面的步骤安装和配置NLayerApp完成上述开发包的安装和配置最后两项可以不安装本系列文章没有用Windows Server AppFabric和Azure的功能下载NLayerApp v1.0的压缩包地址是http://microsoftnlayerapp.codeplex.com/releases/view/56660选择V1.0 - N-Layer DDD Sample App NET4.0本系列文章将使用这个版本进行介绍解压缩下载完的zip包包含三个文件夹CORE、CORE-APPFABRIC和CORE-AZURE。本系列文章没使用AppFabric和Azure所以直接进入CORE目录暂时直接无视Tests所以双击打开NLayerAppWithoutTesting.sln解决方案这个解决方案没有将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按钮在Server Explorer中右键单击Data Connections节点选择Create New SQL Server Database选项在打开的Create New SQL Server Database对话框中填入你的Server地址然后输入数据库名称再单击OK按钮。本案例使用SQL Expresswith Windows Authentication使用默认的数据库名称NLayerApp你完全可以选择自己定义的SQL Server和数据库名称如果你是使用自己定义的SQL Server和数据库的话请同时修改2 – Database节点下NLayerAppDatabase项目的属性右键单击NLayerAppDatabase项目选择Properties在Property页的Deploy选项卡中修改相关参数右键单击NLayerAppDatabase项目然后单击Deploy这将创建数据库Schema编译整个解决方案在1.2 – Distributed Services节点下找到DistributedServices.Deployment项目右键单击项目下的MainModule.svc文件选择View in Browser以启动WCF服务启动用户界面。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基于Web的ASP.NET MVC Client将MVC.Client项目设置为启动项目并直接运行可以启动基于Web的ASP.NET MVC Client可能是我浏览器版本低的缘故得到的ASP.NET MVC页面布局有点乱基于Windows的WPF Client将WPF.Client项目设置为启动项目并直接运行可以启动基于Windows的WPF Client

相关新闻