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

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

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

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

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

5、项目是一个留言本,其业务极为简单,现将其描述如下。1.任何访问者可以进行留言,留言完成后,不会立即显示正文,而是要经过管理员验证后才可显示。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 var

7、char(100) 留言者 E-mail NullContent text 留言内容 NotNullTime datetime 发表留言时间 NotNull Reply text 回复 NullIsPass varchar(10) 是否通过验证 NotNull评论表(TComment)ID int 评论 ID NotNull 主键,自增Content text 评论内容 NotNullTime datetime 发表评论时间 NotNullMessageID int 所属留言的 ID 外键作者: T2 噬菌体出处:http:/基 于 .NET平 台 的 分 层 架 构 实 战 ( 三 ) 架

8、构 概 要 设 计本文主要是对将要实现的架构进行一个总体的描述,使朋友们对这个架构有个宏观上的认识。这篇文章理论性的东西会偏多一点,从下篇开始,将进行实际项目的开发。这篇文章的许多内容摘自我的毕业论文。架构基本原则:这里,将描述一些在这个架构设计中的基本原则,其中很多都是经典的设计原则,不过针对分层架构的特点,用我自己的语言进行了描述。其中也有我自己提出的原则。逐层调用原则及单向调用原则现在约定将 N 层架构的各层依次编号为 1、2 、K 、N-1、N ,其中层的编号越大,则越处在上层。那么,我们设计的架构应该满足以下两个原则:1.第 K(1/ 实体类 -管理员/ Serializablepu

9、blic class AdminInfoprivate int id;private string name;private string password;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;n

10、amespace NGuestBook.Entity/ / 实体类 -留言/ Serializablepublic class MessageInfoprivate 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 Gue

11、stNameget return this.guestName; set this.guestName = value; public string GuestEmailget return this.guestEmail; set this.guestEmail = value; public string Content get return this.content; set this.content = value; public DateTime Timeget return this.time; set this.time = value; public string Replyg

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

13、public int IDget return this.id; set this.id = value; public string Contentget return 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; 大家可以看出,实体类的代码很简单,仅仅是负责实体的表示和数据的传递,不包含任何逻

14、辑性内容。下篇将介绍接口的设计。基 于 .NET平 台 的 分 层 架 构 实 战 ( 五 ) 接 口 的 设 计 与 实 现2008-06-18 19:50 by EricZhang(T2 噬菌体), 7490 visits, 网摘, 收藏, 编辑接下来,将进行接口的设计。这里包括数据访问层接口和业务逻辑层接口。在分层架构中,接口扮演着非常重要的角色,它不但直接决定了各层中的各个操作类需要实现何种操作,而且它明确了各个层次的职责。接口也是系统实现依赖注入机制不可缺少的部分。本项目的接口设计将按如下顺序进行:1.首先由前文的需求分析,列出主要的 UI 部分。2.分析各个 UI 需要什么业务逻辑

15、支持,从而确定业务逻辑层接口。3.分析业务逻辑层接口需要何种数据访问操作,从而确定数据访问层接口。另外,为保证完全的面向对象特性,接口之间的数据传递主要靠实体类或实体类集合,禁止使用 DataTable 等对象传递数据。由需求分析,列出主要 UI需求分析部分,请参看 基于.NET 平台的分层架构实战(二) 需求分析与数据库设计 。有需求分析,可以列出系统中主要应包括以下 UI:UI01主页面,列出全部的留言及相应评论,支持分页显示。留言按发表时间逆序显示,评论紧跟在相应留言下。管理员可以通过相应链接对留言执行通过验证、删除、回复以及对评论进行删除操作。游客可通过相应连接进入发表留言评论页面。UI02发表留言页面,供游客发表新留言。UI03发表评论页面,供游客发表评论。UI04回复留言页面,供管理员回复留言。UI05管理员登录页面。UI06管理员修改个人密码的页面。UI07超级管理员登录后的页面,主要提供管理员

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 综合/其它

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