欢迎来到天天文库
浏览记录
ID:13724001
大小:526.29 KB
页数:154页
时间:2018-07-24
《基于.net平台的分层架构实战》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
1、基于.NET平台的分层架构实战(一)综述为了让朋友们把主要精力放在理解分层架构而不是案例本身,我准备选择一个相对简单的留言本系统作为Demo,这个系统的名字就叫做NGuestBook。初步计划将这个文章系列分为以下几篇:1.综述2.系统需求分析及数据库设计3.架构概要设计4.实体类的实现5.接口的设计与实现6.依赖注入及IoC的设计与实现7.数据访问层的第一种实现——Access+动态生成SQL语言8.数据访问层的第二种实现——SQLServer+存储过程9.数据访问层的第三种实现——基于NBear框架的ORM实现10.业务逻辑层的实现11.
2、表示层的实现12.使用ASP.NETAJAX框架对表示层进行改进13.总结这个文章系列不会对所用到的技术进行详细讲解,具体请参考相关文献,阅读文章前最好能对以下技术有一个了解:1.C#语言2.ASP.NET3.设计模式4.关系数据库基础知识5.软件架构基本原则与软件工程基础知识6.基于NBear框架的ORM技术7.JavaScript,Ajax8.ASP.NETAJAX框架(特别是客户端编程)9.HTML,CSS,标准化布局(二)需求分析与数据库设计在实际的项目中,需求分析和数据库的设计是很重要的一个环节,这个环节会直接影响项目的开发过程和质
3、量。实际中,这个环节不但需要系统分析师、软件工程师等计算机方面的专家,还需要相关领域的领域专家参与才能完成。但是,在这个文章系列中,所要使用的Demo仅仅是一个例子,而且其业务极为简单,因此,这里并不是真正的需求分析和数据库设计,而是将Demo的需求和数据库罗列至此,使朋友们对Demo有一个大体的了解,方便后续文章中开发过程的理解。需求分析:这个项目是一个留言本,其业务极为简单,现将其描述如下。1.任何访问者可以进行留言,留言完成后,不会立即显示正文,而是要经过管理员验证后才可显示。2.任何访问者可以对留言发表评论,未通过验证的留言不可以评论
4、。3.管理员可以对留言进行回复(这个回复不同于评论,是直接显示在正文下面,而且是一个留言只能有一个回复),并可对留言与评论实行删除,以及对留言进行通过验证操作。4.管理员分为超级管理员和普通管理员。超级管理员只有一个,负责对普通管理员实行添加、删除操作。普通管理员可偶多个,负责对留言的管理,并可以修改自己的登录密码。这个项目的用例图如下:图1数据库设计:设计数据表之前,首先进行实体和关系的识别与确定。通过需求分析,可以观察得出,本项目的实体有:管理员(不包括超级管理员),留言,评论。本项目的关系有:留言与评论间的一对多关系。进一步,数据库各表
5、的设计如下:管理员表(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
6、 text 留言内容 NotNullTime datetime 发表留言时间 NotNull Reply text 回复 NullIsPass varchar(10) 是否通过验证 NotNull评论表(TComment)Content text 评论内容 NotNullTime datetime 发表评论时间 NotNullMessageID int 所属留言的ID 外键(三)架构概要设计本文主要是对将要实现的架构进行一个总体的描述,使朋友们对这个架构有
7、个宏观上的认识。这篇文章理论性的东西会偏多一点,从下篇开始,将进行实际项目的开发。这篇文章的许多内容摘自我的毕业论文。架构基本原则:这里,将描述一些在这个架构设计中的基本原则,其中很多都是经典的设计原则,不过针对分层架构的特点,用我自己的语言进行了描述。其中也有我自己提出的原则。逐层调用原则及单向调用原则现在约定将N层架构的各层依次编号为1、2、…、K、…、N-1、N,其中层的编号越大,则越处在上层。那么,我们设计的架构应该满足以下两个原则:1.第K(12.如果P层依赖Q层,则P的编号一定大于Q。其中第一个原则,保证了依赖的逐层性,及整个架构
8、的依赖是逐层向下的,而不能跨层依赖。第二个原则,则保证了依赖的单向性,及只能上层依赖底层,而不能底层反过来依赖上层。针对接口编程,而不是针对实现编程这里所指的接口,
此文档下载收益归作者所有