基于.NET平台的分层架构实战

上传人:飞*** 文档编号:39916508 上传时间:2018-05-21 格式:DOC 页数:91 大小:1.69MB
返回 下载 相关 举报
基于.NET平台的分层架构实战_第1页
第1页 / 共91页
基于.NET平台的分层架构实战_第2页
第2页 / 共91页
基于.NET平台的分层架构实战_第3页
第3页 / 共91页
基于.NET平台的分层架构实战_第4页
第4页 / 共91页
基于.NET平台的分层架构实战_第5页
第5页 / 共91页
点击查看更多>>
资源描述

《基于.NET平台的分层架构实战》由会员分享,可在线阅读,更多相关《基于.NET平台的分层架构实战(91页珍藏版)》请在金锄头文库上搜索。

1、基于.NET 平台的分层架构实战(一)综述 通过浏览博客园的文章发现,很多朋友对分层架构特别感兴趣,刚好我刚做完的毕业设计就是专门研究.NET 平台上分层架构的(题目叫“基于.NET 平台的分层架构与设计模式应用研究”)。通过做这篇论文,我对分层架构有了一定的了解,所以,就萌发了想写一个文章系列,详述一下分层架构。然而,论文的理论性太强,不适合在网上发布,尤其不适合初学者理解,所以,我想在这个文章系列中,少讲理论,而是通过做一个完整的案例来讨论分层架构的基本方法,这样会直观很多。希望在这个文章系列的写作过程中,能和朋友们一起学习,一起进步。为了让朋友们把主要精力放在理解分层架构而不是案例本身,

2、我准备选择一个相对简单的留言本系统作为Demo,这个系统的名字就叫做 NGuestBook。初步计划将这个文章系列分为以下几篇:1.综述2.系统需求分析及数据库设计3.架构概要设计4.实体类的实现5.接口的设计与实现6.依赖注入及 IoC 的设计与实现7.数据访问层的第一种实现Access+动态生成 SQL 语言8.数据访问层的第二种实现SQLServer+存储过程9.数据访问层的第三种实现基于 NBear 框架的 ORM 实现10.业务逻辑层的实现11.表示层的实现当然,以上只是初步计划,在写文章的过程中可能会根据具体情况适当调整,但是内容大体就是这些。这个文章系列不会对所用到的技术进行详细

3、讲解,具体请参考相关文献,阅读文章前最好能对以下技术有一个了解:1.C#语言2.ASP.NET3.设计模式4.关系数据库基础知识5.软件架构基本原则与软件工程基础知识6.基于 NBear 框架的 ORM 技术7.JavaScript,Ajax8.ASP.NET AJAX 框架(特别是客户端编程)9.HTML,CSS,标准化布局另外,本文章系列是基于.NET framework2.0 框架平台进行讨论,3.5 平台的新特性(如 LINQ、ASP.NET MVC等)不会讨论,IDE 使用 Visual Studio 2005,数据库会用到 SQLServer2005 Express 和 Acces

4、s2003。基于.NET 平台的分层架构实战(二)需求分析与数据库设计 在实际的项目中,需求分析和数据库的设计是很重要的一个环节,这个环节会直接影响项目的开发过程和质量。实际中,这个环节不但需要系统分析师、软件工程师等计算机方面的专家,还需要相关领域的领域专家参与才能完成。但是,在这个文章系列中,所要使用的 Demo 仅仅是一个例子,而且其业务极为简单,因此,这里并不是真正的需求分析和数据库设计,而是将 Demo 的需求和数据库罗列至此,使朋友们对 Demo 有一个大体的了解,方便后续文章中开发过程的理解。需求分析:这个项目是一个留言本,其业务极为简单,现将其描述如下。1.任何访问者可以进行留

5、言,留言完成后,不会立即显示正文,而是要经过管理员验证后才可显示。2.任何访问者可以对留言发表评论,未通过验证的留言不可以评论。3.管理员可以对留言进行回复(这个回复不同于评论,是直接显示在正文下面,而且是一个留言只能有一个回复),并可对留言与评论实行删除,以及对留言进行通过验证操作。4.管理员分为超级管理员和普通管理员。超级管理员只有一个,负责对普通管理员实行添加、删除操作。普通管理员可偶多个,负责对留言的管理,并可以修改自己的登录密码。这个项目的用例图如下:图 2.1、NGuestBook 的用例图数据库设计:设计数据表之前,首先进行实体和关系的识别与确定。通过需求分析,可以观察得出,本项

6、目的实体有:管理员(不包括超级管理员),留言,评论。本项目的关系有:留言与评论间的一对多关系。进一步,数据库各表的设计如下:管理员表(TAdmin)ID int 管理员 ID NotNull 主键,自增Name varchar(20) 登录名 NotNullPassword varchar(50) 登录密码 NotNull 使用 MD5 加密留言表(TMessage)ID int 留言 ID NotNull 主键,自增GuestName varchar(20) 留言者用户名 NotNullGuestEmail varchar(100) 留言者 E-mail NullContent text 留

7、言内容 NotNullTime datetime 发表留言时间 NotNull Reply text 回复 NullIsPass varchar(10) 是否通过验证 NotNull评论表(TComment)ID int 评论 ID NotNull 主键,自增Content text 评论内容 NotNullTime datetime 发表评论时间 NotNullMessageID int 所属留言的 ID 外键基于.NET 平台的分层架构实战(三)架构概要设计 本文主要是对将要实现的架构进行一个总体的描述,使朋友们对这个架构有个宏观上的认识。这篇文章理论性的东西会偏多一点,从下篇开始,将进行

8、实际项目的开发。这篇文章的许多内容摘自我的毕业论文。架构基本原则:这里,将描述一些在这个架构设计中的基本原则,其中很多都是经典的设计原则,不过针对分层架构的特点,用我自己的语言进行了描述。其中也有我自己提出的原则。逐层调用原则及单向调用原则现在约定将 N 层架构的各层依次编号为 1、2、K、N-1、N,其中层的编号越大,则越处在上层。那么,我们设计的架构应该满足以下两个原则:1.第 K(1/ 实体类-管理员/ Serializablepublic class AdminInfoprivate int id;private string name;private string password;

9、public int IDget return this.id; set this.id = value; public string Nameget return this.name; set this.name = value; public string Passwordget return this.password; set this.password = value; MessageInfo.cs:using System;namespace NGuestBook.Entity/ / 实体类-留言/ Serializablepublic class MessageInfopriva

10、te int id;private string guestName;private string guestEmail;private string content;private DateTime time;private string reply;private string isPass;public int IDget return this.id; set this.id = value; public string GuestNameget return this.guestName; set this.guestName = value; public string Guest

11、Emailget return this.guestEmail; set this.guestEmail = value; public string Contentget return this.content; set this.content = value; public DateTime Timeget return this.time; set this.time = value; public string Replyget return this.reply; set this.reply = value; public string IsPassget return this

12、.isPass; set this.isPass = value; CommentInfo.cs:using System;namespace NGuestBook.Entity/ / 实体类-评论/ Serializablepublic class CommentInfoprivate int id;private string content;private DateTime time;private int message;public int IDget return this.id; set this.id = value; public string Contentget retu

13、rn this.content; set this.content = value; public DateTime Timeget return this.time; set this.time = value; public int Messageget return this.message; set this.message = value; 大家可以看出,实体类的代码很简单,仅仅是负责实体的表示和数据的传递,不包含任何逻辑性内容。下篇将介绍接口的设计。基于.NET 平台的分层架构实战(五)接口的设计与实现 接下来,将进行接口的设计。这里包括数据访问层接口和业务逻辑层接口。在分层架构中

14、,接口扮演着非常重要的角色,它不但直接决定了各层中的各个操作类需要实现何种操作,而且它明确了各个层次的职责。接口也是系统实现依赖注入机制不可缺少的部分。本项目的接口设计将按如下顺序进行:1.首先由前文的需求分析,列出主要的 UI 部分。2.分析各个 UI 需要什么业务逻辑支持,从而确定业务逻辑层接口。3.分析业务逻辑层接口需要何种数据访问操作,从而确定数据访问层接口。另外,为保证完全的面向对象特性,接口之间的数据传递主要靠实体类或实体类集合,禁止使用 DataTable 等对象传递数据。由需求分析,列出主要 UI需求分析部分,请参看基于.NET 平台的分层架构实战(二)需求分析与数据库设计 。

15、有需求分析,可以列出系统中主要应包括以下 UI:UI01主页面,列出全部的留言及相应评论,支持分页显示。留言按发表时间逆序显示,评论紧跟在相应留言下。管理员可以通过相应链接对留言执行通过验证、删除、回复以及对评论进行删除操作。游客可通过相应连接进入发表留言评论页面。UI02发表留言页面,供游客发表新留言。UI03发表评论页面,供游客发表评论。UI04回复留言页面,供管理员回复留言。UI05管理员登录页面。UI06管理员修改个人密码的页面。UI07超级管理员登录后的页面,主要提供管理员列表。可以通过相应链接将指定管理员删除。UI08添加新管理员的页面。UI09操作成功完成后的跳转提示页面。UI10系统出现异常时显示友好出错信息的页面。由 UI 识别业务逻辑操作UI01:按分页取得留言,按指定留言取得全部评论,将指定留言通过验证,将指定留言删除,将指定评论删除UI02:添加新留言UI03:添加新评论UI04:回复留言UI05:管理员登录UI06:修改管理员密码UI07:取得全部管理员信息,删除管理员UI08:添加新管理员经过整理,可得以下

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号