范例-项目-.NET:PetShop

ylbtech-范例-项目-.NET:PetShop

PetShop是一个范例,微软用它来展示.Net企业系统开发的能力

1.返回顶部
1、
中文名:PetShop
概    念:展示.Net企业系统开发的能力
系统架构设计:分层式结构
三层结构:业务逻辑层的相关设计
2、
2.返回顶部
1、

简介

业界有许多 .Net与J2EE之争,许多数据是从 微软的PetShop和Sun的PetStore而来。这种争论不可避免带有浓厚的商业色彩,对于我们开发人员而言,没有必要过多关注。然而PetShop随着版本的不断更新, 至现在基于.Net 2.0的PetShop4.0为止整个设计逐渐变得成熟而优雅,而且有很多可以借鉴之处。PetShop是一个小型的项目,系统架构与代码都比较简单, 却也凸现了许多颇有价值的设计与开发理念
 

系统架构设计

在软件体系架构设计中,分层式结构是最常见,也是最重要的一种结构。微软推荐的 分层式结构一般分为三层,从下至上分别为:数据访问层业务逻辑层(又或成为领域层)、表示层
 

三层结构

数据访问层:有时候也称为是 持久层,其功能主要是 负责数据库的访问。简单的说法就是 实现对数据表的Select,Insert,Update,Delete的操作如果要加入ORM的元素,那么就会包括对象和数据表之间的mapping,以及对象实体的持久化。在PetShop的数据访问层中, 并没有使用ORM,从而导致了代码量的增加,可以看作是整个设计实现中的一大败笔。
业务逻辑层是整个系统的核心,它与这个系统的业务(领域)有关。以PetShop为例,业务逻辑层的相关设计,均和网上宠物店特有的逻辑相关,例如 查询宠物,下订单,添加宠物到购物车等等。如果涉及到数据库的访问,则调用 数据访问层
表示层:是 系统的UI部分负责使用者与整个系统的交互。在这一层中, 理想的状态是不应包括系统的业务逻辑。表示层中的逻辑代码,仅与界面元素有关。在PetShop中,是利用.NET来设计的,因此包含了许多 Web控件和相关逻辑
 

分层式设计

分层式结构究竟其优势何在?Martin Fowler在《Patterns of Enterprise Application Architecture》一书中给出了答案:
1、开发人员可以 只关注整个结构中的其中某一层
2、可以很容易的 用新的实现来替换原有层次的实现
3、可以 降低层与层之间的依赖
4、有利于标准化;
5、 利于各层逻辑的复用
概括来说,分层式设计可以达至如下目的: 分散关注、松散耦合、逻辑复用、标准定义
一个好的分层式结构,可以使得开发人员的分工更加明确。一旦定义好各层次之间的接口,负责不同 逻辑设计的开发人员就可以分散关注,齐头并进。例如UI人员只需考虑用户界面的体验与操作,领域的设计人员可以仅关注业务逻辑的设计,而 数据库设计人员也不必为繁琐的用户交互而头疼了。每个开发人员的任务得到了确认,开发进度就可以迅速的提高。
松散耦合的好处是显而易见的。如果一个系统没有分层,那么各自的逻辑都紧紧纠缠在一起,彼此间相互依赖,谁都是不可替换的。一旦发生改变,则牵一发而动全身,对项目的影响极为严重。 降低层与层间的依赖性,既可以良好地保证未来的可扩展,在复用性上也是优势明显。每个功能模块一旦定义好统一的接口,就可以被各个模块所调用,而不用为相同的功能进行重复地开发。
进行好的分层式结构设计,标准也是必不可少的。只有在一定程度的标准化基础上,这个系统才是可扩展的,可替换的。而层与层之间的通信也必然保证了接口的标准化。
“金无足赤,人无完人”, 分层式结构也不可避免具有一些缺陷
1、 降低了系统的性能。这是不言而喻的。如果不采用分层式结构,很多业务可以直接造访数据库,以此获取相应的数据,如今却必须通过中间层来完成。
2、 有时会导致级联的修改。这种修改尤其体现在自上而下的方向。如果在 表示层中需要增加一个功能,为保证其设计符合分层式结构,可能需要在相应的 业务逻辑层数据访问层中都增加相应的代码。
PetShop的表示层是用ASP.NET设计的,也就是说,它是一个BS系统。
2、
3.返回顶部
 
4.返回顶部
 
5.返回顶部
1、
2、
 
6.返回顶部
 
warn 作者:ylbtech
出处:http://ylbtech.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

猜你喜欢

转载自www.cnblogs.com/storebook/p/12664420.html