论文部分内容阅读
摘要:近期微软推出Microsoft .NET Pet Shop 3和4架构例子,其目的是用Microsoft .NET 实现Sun主要的J2EE蓝图应用程序Sun Java Pet Shop同样的应用程序功能并与之进行性能比较。该架构采用分层模型,有诸多优点,是开发者、架构师等人学习、研究的典范。该架构不仅能应用于.NET的BS架构的项目开发,同样也能应用于CS架构的开发。本文通过分析该架构,讨论该架构的优点以及论述在具体工程开发中如何根据需要进行裁剪和扩充。
关键词:软件架构;Pet Shop;分层模型;BS架构
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)15-30786-01
The Research and Application of the Frame of Microsoft .NET Pet Shop
XU Qi-fa, ZHU Zhan-li
(School of Computer Science, Xi'an Shiyou University, Xi'an 710065, China)
Abstract:The software frame "Microsoft .NET Pet Shop" edition 3 and 4 be produced by Microsoft corporation in the near future, this frame realize the same function of "Sun Java Pet Shop" by Microsoft .NET in order to compare their capability with Sun's J2EE. This frame adopt delamination model, there are many merits, is mirror by software developer and deviser to study. This frame not only apply to BS frame of .NET but also can apply to CS frame. This paper will analyze this frame of "Microsoft .NET Pet Shop", discuss its excellence sides and discuss how to apply its idea in empoldering soft project.
Key words:software frame; Pet Shop; delamination model; BS frame
1 引言
众所周知,一直以来,在.NET和Java之间争论不休,到底使用哪个平台开发的企业级应用性能最好、结构最优、生产力最高。微软推出这个架构,通过对项目各方面的性能评估进而对.NET和Java进行比较。肩此重任,架构设计应该是经过慎重考虑的。微软的该架构,在事务、数据缓存、安全方面使用了.NET 2.0附带的特性,构建了一个灵活的应用程序,旨在显示构建企业级n层应用程序的.NET最佳实践。通过对该架构的研究,合理的应用该架构意义重大。
2 Microsoft .NET Pet Shop 4架构简介
Microsoft .NET Pet Shop 4架构由22层组成,该分层的思想和目的与ISO网络的七层模型类似。第n层只对n+1层和n-1层提供接口,并不关系n+1层和n-1层怎么实现,各层之间相对独立。Pet Shop 4架构的22层模型从总体上分为三大层:表示层;业务逻辑层;数据接口层。表示层包括ASP.NET页面表示,用户的登录输入控制。该层涉及ASP.NET界面的范畴。业务逻辑层是对表示层返回的信息在网站服务器上处理的逻辑层。数据接口层是网站服务器与数据库服务器之间数据交换的逻辑层。
3 Microsoft .NET Pet Shop 4架构的优点
本人采用该架构进行软件开发,与以前的项目开发采用的架构进行比较,体验出很多优点,总结如下。
3.1 采用业务实体模型,函数参数统一。通过定义业务实体层(Model层),所有的函数之间传递的参数都是一样的——Model层类的成员对象。
3.2 各层代码模式相同,便于代码的编写和维护。各层中的类名相同——都以数据库中的用户表命名;每层中代码模式相似,编写简单,维护方便。
3.3 表示层数据库访问代码简单统一,更好的体现业务逻辑。通过这种架构的设计,表示层不必为复杂的数据库访问而烦恼,因为这样数据库访问代码模式规则,代码量少。能更好的体现业务逻辑的实现。
3.4能方便的实现多种数据库管理系统的支持和切换。针对各种数据库管理系统的SQL语句的差异,把有差异的部分放在一层中,这样要更换不同的数据库管理系统,只要重写一层即可。
3.5 通过分层模型,各层之间耦合性小,代码修改方便。功能扩充方便。
4 Microsoft .NET Pet Shop 4架构的应用
我所在的团队在项目开发中,从Pet Shop的22层模型中抽取出7层模型。实践显示,能很好的满足我们的需要,构建了结构良好的框架。我们采用的7层模型为:
(1) Model层
业务实体层。该层按照数据库表的字段建立数据库模型。表与该层的类一一对应。字段与类的成员也一一对应。例如表User有userID、userName两个字段,都是varchar类型,则该层中建立类User,该类有string类型成员userID和userName和这两个成员的get、set属性。这样各层之间关于该类的函数传递的参数就是该类的对象,通过set属性设置成员的值get属性获取成员值。以使函数的参数统一,函数不用重载。
(2) IDAL层
数据访问接口层。在该层中定义函数的接口,在下面介绍的SQLServerDAL层中实现函数功能。其目的有两个:功能定义与功能实现分开;功能定义与数据库管理系统分开。功能定义与实现分开有助于系统分析师从整体上着眼设计系统的功能,具体的实现可以根据具体的数据库环境具体编码。
(3) SQLServerDAL层
SQLServer数据访问层。根据具体的数据库管理系统实现数据访问接口层定义的功能函数。该层按照需要写具体的SQL语句。读取下面介绍的BLL层传递的参数,调用DBUtility层的SQL语句执行函数。众所周知,使用相同的前台语言不同的数据库管理系统创建项目的差异就是SQL语句的差异,所以,如果改用不同的数据库管理系统只要修改或者添加该层即可。
(4)DALFactory层
数据层的抽象工厂。该层主要有ConnDataBase类和DataAccess两个类。ConnDataBase定义数据库连接对象、适配器对象和各种数据库操作命令对象。建立数据库连接并设其他各对象的初值。在DataAccess定义返回数据访问接口层类的对象,首先定义SQLServer数据访问层的对象然后强制转换为数据访问接口层类的对象返回给下面介绍的业务逻辑层。
(5) DBUtility层
数据库访问组件基础类。该层中主要有SQLHelps类。其SQLHelps定义命令执行的函数和SQL语句参数添加的函数。当然还可以加上存储过程的调用函数。
(6) BLL层
业务逻辑层。利用数据层抽象工厂中的DataAccess类的方法返回的数据访问接口层类的对象调用数据访问接口层中定义的方法,实现功能的调用。该层实现承上启下的衔接作用。
(7) Web层
表示层。该层写于web的代码页中,有了上面6层的构建,我们的web层面访问数据库将十分轻松。首先定义一个Model层类的对象,然后根据需要通过set属性设置该该对象的成员的值,再定义一个BLL层类的一个对象,通过该对象返回的数据访问接口层相应类的实例调用需要的功能函数。
经过这种架构设计的项目,各层中各个类中的方法结构统一,写好一个方法后通过复制修改参数就可以了,代码出错的概率小,维护简单。另外如果我们的项目根据需要还要扩充,我们能很轻松的实现。该分层模型提供了完善的空间。例如,如果我们要将该项目的数据库改为Oracle,只要添加OracleDAL层即可实现数据库管理系统的转换。
5 小结
Microsoft .NET Pet Shop架构特别是版本4其功能十分强大,并且还不断的进行扩充和完善。根据具体的工程需要,我们可以随意的进行裁剪并能扩充。对于该架构的研究和应用有待于我们进一步努力。
参考文献:
[1]www.msdn.micrisoft.com/zh-cn/default.aspx,2007.04.
[2]www.microsoft.com/china/msdn/events/webcasts/shared/webcast/msdnwebcast.aspx. 2007.05.
[3]http://eroad.alai.net/. 浅析《Microsoft .NET Pet Shop》程序中的购物车和订单处理模块. 2006.12.
关键词:软件架构;Pet Shop;分层模型;BS架构
中图分类号:TP393文献标识码:A文章编号:1009-3044(2007)15-30786-01
The Research and Application of the Frame of Microsoft .NET Pet Shop
XU Qi-fa, ZHU Zhan-li
(School of Computer Science, Xi'an Shiyou University, Xi'an 710065, China)
Abstract:The software frame "Microsoft .NET Pet Shop" edition 3 and 4 be produced by Microsoft corporation in the near future, this frame realize the same function of "Sun Java Pet Shop" by Microsoft .NET in order to compare their capability with Sun's J2EE. This frame adopt delamination model, there are many merits, is mirror by software developer and deviser to study. This frame not only apply to BS frame of .NET but also can apply to CS frame. This paper will analyze this frame of "Microsoft .NET Pet Shop", discuss its excellence sides and discuss how to apply its idea in empoldering soft project.
Key words:software frame; Pet Shop; delamination model; BS frame
1 引言
众所周知,一直以来,在.NET和Java之间争论不休,到底使用哪个平台开发的企业级应用性能最好、结构最优、生产力最高。微软推出这个架构,通过对项目各方面的性能评估进而对.NET和Java进行比较。肩此重任,架构设计应该是经过慎重考虑的。微软的该架构,在事务、数据缓存、安全方面使用了.NET 2.0附带的特性,构建了一个灵活的应用程序,旨在显示构建企业级n层应用程序的.NET最佳实践。通过对该架构的研究,合理的应用该架构意义重大。
2 Microsoft .NET Pet Shop 4架构简介
Microsoft .NET Pet Shop 4架构由22层组成,该分层的思想和目的与ISO网络的七层模型类似。第n层只对n+1层和n-1层提供接口,并不关系n+1层和n-1层怎么实现,各层之间相对独立。Pet Shop 4架构的22层模型从总体上分为三大层:表示层;业务逻辑层;数据接口层。表示层包括ASP.NET页面表示,用户的登录输入控制。该层涉及ASP.NET界面的范畴。业务逻辑层是对表示层返回的信息在网站服务器上处理的逻辑层。数据接口层是网站服务器与数据库服务器之间数据交换的逻辑层。
3 Microsoft .NET Pet Shop 4架构的优点
本人采用该架构进行软件开发,与以前的项目开发采用的架构进行比较,体验出很多优点,总结如下。
3.1 采用业务实体模型,函数参数统一。通过定义业务实体层(Model层),所有的函数之间传递的参数都是一样的——Model层类的成员对象。
3.2 各层代码模式相同,便于代码的编写和维护。各层中的类名相同——都以数据库中的用户表命名;每层中代码模式相似,编写简单,维护方便。
3.3 表示层数据库访问代码简单统一,更好的体现业务逻辑。通过这种架构的设计,表示层不必为复杂的数据库访问而烦恼,因为这样数据库访问代码模式规则,代码量少。能更好的体现业务逻辑的实现。
3.4能方便的实现多种数据库管理系统的支持和切换。针对各种数据库管理系统的SQL语句的差异,把有差异的部分放在一层中,这样要更换不同的数据库管理系统,只要重写一层即可。
3.5 通过分层模型,各层之间耦合性小,代码修改方便。功能扩充方便。
4 Microsoft .NET Pet Shop 4架构的应用
我所在的团队在项目开发中,从Pet Shop的22层模型中抽取出7层模型。实践显示,能很好的满足我们的需要,构建了结构良好的框架。我们采用的7层模型为:
(1) Model层
业务实体层。该层按照数据库表的字段建立数据库模型。表与该层的类一一对应。字段与类的成员也一一对应。例如表User有userID、userName两个字段,都是varchar类型,则该层中建立类User,该类有string类型成员userID和userName和这两个成员的get、set属性。这样各层之间关于该类的函数传递的参数就是该类的对象,通过set属性设置成员的值get属性获取成员值。以使函数的参数统一,函数不用重载。
(2) IDAL层
数据访问接口层。在该层中定义函数的接口,在下面介绍的SQLServerDAL层中实现函数功能。其目的有两个:功能定义与功能实现分开;功能定义与数据库管理系统分开。功能定义与实现分开有助于系统分析师从整体上着眼设计系统的功能,具体的实现可以根据具体的数据库环境具体编码。
(3) SQLServerDAL层
SQLServer数据访问层。根据具体的数据库管理系统实现数据访问接口层定义的功能函数。该层按照需要写具体的SQL语句。读取下面介绍的BLL层传递的参数,调用DBUtility层的SQL语句执行函数。众所周知,使用相同的前台语言不同的数据库管理系统创建项目的差异就是SQL语句的差异,所以,如果改用不同的数据库管理系统只要修改或者添加该层即可。
(4)DALFactory层
数据层的抽象工厂。该层主要有ConnDataBase类和DataAccess两个类。ConnDataBase定义数据库连接对象、适配器对象和各种数据库操作命令对象。建立数据库连接并设其他各对象的初值。在DataAccess定义返回数据访问接口层类的对象,首先定义SQLServer数据访问层的对象然后强制转换为数据访问接口层类的对象返回给下面介绍的业务逻辑层。
(5) DBUtility层
数据库访问组件基础类。该层中主要有SQLHelps类。其SQLHelps定义命令执行的函数和SQL语句参数添加的函数。当然还可以加上存储过程的调用函数。
(6) BLL层
业务逻辑层。利用数据层抽象工厂中的DataAccess类的方法返回的数据访问接口层类的对象调用数据访问接口层中定义的方法,实现功能的调用。该层实现承上启下的衔接作用。
(7) Web层
表示层。该层写于web的代码页中,有了上面6层的构建,我们的web层面访问数据库将十分轻松。首先定义一个Model层类的对象,然后根据需要通过set属性设置该该对象的成员的值,再定义一个BLL层类的一个对象,通过该对象返回的数据访问接口层相应类的实例调用需要的功能函数。
经过这种架构设计的项目,各层中各个类中的方法结构统一,写好一个方法后通过复制修改参数就可以了,代码出错的概率小,维护简单。另外如果我们的项目根据需要还要扩充,我们能很轻松的实现。该分层模型提供了完善的空间。例如,如果我们要将该项目的数据库改为Oracle,只要添加OracleDAL层即可实现数据库管理系统的转换。
5 小结
Microsoft .NET Pet Shop架构特别是版本4其功能十分强大,并且还不断的进行扩充和完善。根据具体的工程需要,我们可以随意的进行裁剪并能扩充。对于该架构的研究和应用有待于我们进一步努力。
参考文献:
[1]www.msdn.micrisoft.com/zh-cn/default.aspx,2007.04.
[2]www.microsoft.com/china/msdn/events/webcasts/shared/webcast/msdnwebcast.aspx. 2007.05.
[3]http://eroad.alai.net/. 浅析《Microsoft .NET Pet Shop》程序中的购物车和订单处理模块. 2006.12.