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

相关新闻

最新新闻

修复STM32CubeIDE报错:cube-cmake.exe找不到CMAKE_ROOT的解决方案

修复STM32CubeIDE报错:cube-cmake.exe找不到CMAKE_ROOT的解决方案

1. 现象确认:cube-cmake.exe 在每次 configure 时报 “Could not find CMAKE_ROOT” 1.1 触发环境与复现步骤 先说结论:这不是你的工程写错了,也不是 STM32CubeMX 生成的代码有问题,而是 STM32CubeIDE 自带的 CMake 工具链组件 …

2026/8/30 3:32:53
Rust CLI工具Presse:本地PDF压缩与合并实战

Rust CLI工具Presse:本地PDF压缩与合并实战

PDF 压缩和合并是很多人日常绕不开的需求。在线工具怕隐私泄露,Adobe Acrobat 要付费,纯前端方案遇到大文件又容易卡死。这次我们来看一个 Rust 社区的新项目:Presse,一个专门用来压缩和合并 PDF 的命令行工具。它的定位很明确&am…

2026/8/30 3:32:53
大模型“月抛”时代:部署、微调与灰度发布的工程应对

大模型“月抛”时代:部署、微调与灰度发布的工程应对

大模型发布进入“月抛”时代,这个说法在最近几个月越来越像现实。一个自然月里同时看到多家厂商发布旗舰模型,代号更新快到让人来不及完成上一轮的评估和部署。对普通用户,这只是新闻热度;对开发者和技术决策者,这意味…

2026/8/30 3:32:53
AMD收购Taalas:把大模型“刻”进AI推理专用芯片

AMD收购Taalas:把大模型“刻”进AI推理专用芯片

如果有一块芯片,在大模型推理时不需要执行密集的通用指令,而是像把模型的计算结构直接“印”在硬件里一样,数据流过就能出结果,推理的能效和延迟会不会比通用 GPU 好一个量级?AMD 收购 Taalas 的消息传出来后&#xff…

2026/8/30 3:32:53
TRichView三件套详解:安装配置与集成实战指南

TRichView三件套详解:安装配置与集成实战指南

简介:在桌面应用程序开发中,富文本编辑、所见即所得排版与报表打印往往需要多套技术组件协同工作。TRichView作为一款底层自绘的VCL富文本控件,不依赖系统RichEdit,具备稳定的排版表现与精细的样式控制能力;配合ScaleR…

2026/8/30 3:32:53
用 Obsidian 搭建 UTAU Cover 音声制作知识库:从调音参数到工程管理

用 Obsidian 搭建 UTAU Cover 音声制作知识库:从调音参数到工程管理

做 UTAU 调音这件事,最怕的不是不会调,而是“调过的参数、下过的音源、收藏的翻唱参考,过两周就找不到了”。之前我做 Cover 时,工程文件堆在 D 盘、音源压缩包散落在网盘、调音参数截图躺在手机相册里,等想复刻某一版…

2026/8/30 3:27:53