1. 简介
本文档的PDF版本可在此处获取 |HERE|。
本文档中的示例可<在此处>查看。
我们计划编写一个 .NET 应用程序,允许用户模拟某市“Maison de la petite enfance”协会中儿童保育人员的薪资计算。我们将同样重视应用程序 .NET 代码的结构组织与代码本身。
最终应用程序(我们将它命名为 [SimuPaie])将采用以下三层架构:
![]() |
- [1-DAO]层(DAO = 数据访问对象)将负责数据访问。数据将存储在数据库中。
- [2-business]层将处理应用程序的业务逻辑,即薪资计算。
- [3-ui]层(ui = 用户界面)将负责向用户展示数据以及执行用户请求。我们将执行此功能的模块集合称为[Application]。它充当用户界面。
- 通过使用 .NET 接口,这三个层将实现相互独立
- 不同层之间的集成将由 Spring IoC 负责
客户端请求的处理遵循以下步骤:
- 客户端向应用程序发起请求。
- 应用程序处理该请求。为此,它可能需要[业务]层的协助,而[业务]层若需与数据库交换数据,则可能需要[DAO]层的协助。应用程序从[业务]层接收响应。
- 基于该响应,它向客户端发送相应的视图(即响应结果)。
呈现给用户的界面可以采用多种形式:
- 控制台应用程序:在此情况下,视图是一系列文本行。
- Windows GUI 应用程序:在此情况下,视图是一个 Windows 窗口
- Web 应用程序:在此情况下,视图是一个 HTML 页面
- ……
我们将编写该应用程序的不同版本:
- 一个包含单个表单且采用单层架构的 ASP.NET 版本。
- 一个与前一个版本完全相同但增加了 Ajax 扩展的版本
- 一个基于三层架构的 ASP.NET 版本,其中数据访问层使用 NHibernate 框架实现。该版本仍将保留版本 1 中的单表单。
- 第 4 个版本:基于第 3 个版本的三层架构,采用多视图、单页式的 ASP.NET 应用程序。
- 客户端/服务器应用程序的服务器端,其中服务器作为基于第3版分层架构的Web服务实现。
- 前述客户端/服务器应用程序的客户端部分,采用 ASP.NET 层实现。
- 一个采用第 3 版三层架构的多视图、多页面的 ASP.NET 第 7 版。
- 基于第 5 版 Web 服务的多视图、多页面的 ASP.NET 8 客户端版本。
- 一个采用第 3 版三层架构的多视图、多页面的 ASP.NET 9 版本,其中数据访问层使用 Spring 类实现,以方便使用 NHibernate 框架。
- 一个用 FLEX 实现的第 10 版,作为第 5 版 Web 服务的客户端。
先决条件
按[初级-中级-高级]的难度等级划分,本文档属于[中级]类别。要理解本文档,需要具备一些先决条件,这些内容可在笔者撰写的部分文档中找到:
- ASP.NET 编程 [使用 ASP.NET 1.1 进行 Web 开发];
- C# 2008:《使用 .NET Framework 3.5 学习 C# 3.0》:类、接口、继承、多态
- [Spring IoC],详见 [Spring IoC for .NET]。涵盖 Spring.NET 框架中控制反转(IoC)或依赖注入(DI)的基础知识 [http://www.springframework.net]。
- [使用 Spring 和 VB.NET 构建三层 Web 应用程序],可在 [使用 Spring.NET 和 VB.NET 创建三层 Web 应用程序] 网址获取。本课程介绍了一个简化的基于 Web 的产品购买应用程序。其三层架构实现了 MVC 模式。
本文档中某些段落的开头会提供阅读建议,这些建议引用了前文提及的文档。
工具
本案例研究中使用的工具可在网上免费获取。具体如下:
- Visual C# 2008、Visual Web Developer Express 2008、SQL Server Express 2005,可从网址 [http://www.microsoft.com/express/downloads/] 获取。
- Spring IoC 用于实例化应用程序所需的服务,可访问 [http://www.springframework.net/]——另见 [3]
- NHibernate 用于 DBMS 数据访问层 [http://sourceforge.net/projects/nhibernate/]
- NUnit:[http://www.nunit.org] 用于单元测试。
