论文部分内容阅读
摘要:.NET 平台下ASP.NET 的应用开发得到了越来越多的应用,而MVC设计模式在ASP.NET 中得到了充分的实现和支持。该文对.NET 技术结合MVC 设计模式的三层架构进行了深入剖析,给出了一个三层架构模型及各层的实现策略,该模型及实现策略对于web应用开发而言,能够实现系统的设计目标,具有通用性。
关键词:ASP.NET;MVC设计模式;三层架构;实现策略
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)36-2867-03
Implementation Policies of MVC Design Pattern Based on .Net
JI Ping
(Beijing Economic Management School,Beijing 100142,China)
Abstract: ASP.NET application development based on .NET is used in more and more situations, and the MVC design pattern in ASP.NET becomes applied and perfect. This article carry on the thorough analysis to the three-tier Architecture combining .NET technology with MVC design pattern and presents a model and implementation policies of the three-layer Architecture. The model and the implementation policies can reach the design goal and be common use for web application development.
Key words: ASP.NET; MVC design pattern; three-tier Architecture; implementation policy
1 引言
ASP.NET 是微软最新推出的新型体系结构.NET 框架的一部分, 它为构建新一代网络分布式应用提供了强有力的支持。与以前的Web 开发模型相比, ASP.NET 提供了许多如简易性、安全性、可管理性等重要优点。而且与基于过程的Web 页面技术相比, 面向对象技术在ASP.NET 中得到了完全实现;三层结构的开发技术在.NET 中逐步得到应用, 并发挥了极大的优越性, 但也有不足之处, 由于Web 页面的特殊性, 三层结构逻辑的划分并没有使代码在物理上完全实现分离, 反而使设计的系统结构复杂、用户难以理解, 应用上缺乏可复用性, .NET 技术结合MVC 设计模式能够很好地解决上述问题。
2 MVC设计模式
就web应用系统开发来说,MVC是最基本的一种设计模式了,它强制性的使应用程序的输入、处理和输出分开。使用MVC共三个核心部件:模型(Model)、视图(View)、控制器(Controller),它们各自处理自己的任务,如图1所示。
图2ASP.NET下MVC与三层架构相结合的应用模型
在设计模式上,ASP.NET三层架构中,前端为.html、.asp和.aspx等,中间层为.vb或.cs等文件编译而成的.dll控件,后面为数据库服务器。数据层提供对外部系统(如数据库)的访问,该层涉及到的技术是ADO.NET数据库访问技术。
采用三层架构以后,表示层通过统一的接口向业务层发送请求,业务层按照自己的逻辑规则将请求处理之后,进行数据库操作,然后将数据库返回的数据封装成类的形式返回给表示层。这样表示层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。这种方式在一定程度上增加了数据库的安全性,同时也降低了对表示层开发人员的要求,因为它不需要进行任何数据库操作。
4 ASP.NET三层架构的实现策略
三层架构适用于较为复杂的应用开发,如果所开发的系统功能简单,则完全可以集中在一台机器上,而且速度也会很快,但是在系统数据非常庞大、连接的用户很多,所耗资源非常大的情况下,这台机器会由于负荷过重而速度减慢,甚至出现死机等状况,正是为了避免类似问题的出现,在应用系统开发中才出现了多层架构的设计思想。下面给出三层架构的搭建及各层的实现策略。
4.1 搭建三层架构
1) 新建一个空白的解决方案。
2) 在新建的解决方案中添加三个项目,对应三层架构的三个层。
右键单击新建的解决方案,依次执行“添加”→“新建项目”→“其他项目”→“企业级模版项目” →“C#生成块” →“数据层”,重复上述步骤,添加“业务层”项目和“表示层”项目。
3) 设置项目依赖。
右键点击新建的解决方案 →“项目依赖项”,设置表示层依赖数据层和业务层,业务层依赖数据层。添加表示层引用数据层和业务层、业务层引用数据层。
至此,一个三层的架构就搭建起来了。
4.2 各层实现策略
4.2.1 数据层实现策略
1) 必须保证数据库的变动对其余各层的不透明性,即无论数据库怎么变动,其它层绝对不可以发生任何改变,哪怕是一行代码都不行。
2) 数据层应当在保证数据库的变化对其它层不可见的前提下,尽量小。这样做的好处在于系统比较容易迁移,如把系统实现所用的SQL Server数据库改成Oracle数据库,只需修改数据层。
3) 数据访问策略:通过ADO.NET,可以为业务对象提供一个数据访问的抽象层,从而清晰地分离业务逻辑和数据层的持久性逻辑。
微软特别推荐在ADO.NET和ASP.NET中使用SQL Server数据库。因为其优势在于:丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地;与Windows操作系统有机集成,多线程的体系结构设计,提高了系统对多用户同时访问的响应速度;对web技术的支持,使用户能够很容易地将数据库中的数据发送到web页面上。
4.2.2 表示层实现策略
表示层不仅仅包括界面设计,还包括界面事件响应,数据封装,流程控制等内容。其中,界面的易变性最强,因为它直观、形象,每个客户代表都可以提出自己的需求意见,所以界面不容易稳定。在实现表示层时,将不稳定、易变的因素控制在局部尤为重要。对于企业级的web应用而言,使用优秀的MVC设计模式能够很好的实现三层架构,应为首选策略。界面的设计原则:
1) 清晰原则:意味着要将表示层的显示逻辑与控制流和业务对象的调用相分离,即保证界面的任何变化都不需要修改其它层的内容。
2) 精炼原则:表示层越小越好,只包含界面层的显示逻辑、控制逻辑,而不包含任何的业务逻辑;只负责将用户的动作转换为应用事件,以及将用户输入的处理结果转换为界面的显示内容。
将界面的清晰、精炼两个设计原则可以分解为三条黄金准则,即用户掌控控制权;不加重用户的记忆负担;界面保持风格一致。
4.2.3 业务层实现策略
1) 业务层应当不受数据层和表示层变动的影响而需要修改。
2) 业务层应当在保证数据库或界面变化不会造成自身影响的前提下尽量大。
3) 如果某个类不是业务规则的需要,就不应该放在业务层,反之亦然。
无论是表示层,业务层,还是数据层,如果某个类,仅仅是为了该层的某种特殊实现而存在,那么它必须放在该层。
采用三层架构开发的系统具备下列优点:
1) 开发效率高。三层架构的代码层次分得很清楚,具有较高的开发效率高。
2) 相对较低的网络带宽占用。三层架构在服务器一端执行并返回运行结果,显然这种架构在理论上具有最高的运行效率。
3) 相对较低的本地资源占用。由于多层架构的操作基本都在服务器上进行,所以本地资源占用很少,有利于系统使用的流畅。
4) 由于数据访问是通过业务层进行的,因此客户端不再与数据库直接建立数据连接,也就是说,建立在数据库服务器上的连接数量将大大减少。同时,业务层与数据库服务器之间的数据连接通过“连接池”进行连接数量的控制,动态分配与释放数据连接,因此数据连接的数量将远远小于客户端数量。
5) 可维护性得以提高。因为业务规则、合法性校验存在于业务层,所以当业务规则发生改变时,只需要更改业务层的某个组件(如某个DLL文件)即可,而对客户端应用程序不需做任何处理,有些时候,甚至不必修改业务层组件,只需要修改数据库中的某个存储过程就可以了。
6) 良好的可重用性。如果需要开发相关的web应用,则不必要重新进行数据访问、业务规则等的开发,可以直接调用现有的业务层。
7) 系统具有良好的可扩充性。可以很方便地与人事管理、OA办公系统等业务挂接。
5 结束语
ASP.NET作为微软最新推出的.NET框架的一部分,它为构造新一代动态网站和基于网络的分布式应用提供了强有力的支持。结合MVC设计模式,恰当运用.NET技术,建立大型的web应用和web服务变得更加便捷,所构建的web应用和服务具有良好的健壮性、易维护性和可复用性等优点。文中的三层架构及实现策略具有通用性,对于web应用系统开发极具应用价值。
参考文献:
[1] 刘如鸿.在蹉跎中一路前行——谈Microsoft.NET战略,程序员,第6期,2004年
[2] (美)林·巴斯,保罗·克莱门茨,瑞克·凯兹曼.软件架构实践[M].5版.车立红,译.北京:清华大学出版社,2007.
[3] 浅谈如何建立三层体系结构的ASP应用程序.http://industry.ccidnet.com.
[5] 龐开放,李龙澍.基于.NET框架的web应用与实现[J].微机发展,2005,15(3).
关键词:ASP.NET;MVC设计模式;三层架构;实现策略
中图分类号:TP311文献标识码:A文章编号:1009-3044(2008)36-2867-03
Implementation Policies of MVC Design Pattern Based on .Net
JI Ping
(Beijing Economic Management School,Beijing 100142,China)
Abstract: ASP.NET application development based on .NET is used in more and more situations, and the MVC design pattern in ASP.NET becomes applied and perfect. This article carry on the thorough analysis to the three-tier Architecture combining .NET technology with MVC design pattern and presents a model and implementation policies of the three-layer Architecture. The model and the implementation policies can reach the design goal and be common use for web application development.
Key words: ASP.NET; MVC design pattern; three-tier Architecture; implementation policy
1 引言
ASP.NET 是微软最新推出的新型体系结构.NET 框架的一部分, 它为构建新一代网络分布式应用提供了强有力的支持。与以前的Web 开发模型相比, ASP.NET 提供了许多如简易性、安全性、可管理性等重要优点。而且与基于过程的Web 页面技术相比, 面向对象技术在ASP.NET 中得到了完全实现;三层结构的开发技术在.NET 中逐步得到应用, 并发挥了极大的优越性, 但也有不足之处, 由于Web 页面的特殊性, 三层结构逻辑的划分并没有使代码在物理上完全实现分离, 反而使设计的系统结构复杂、用户难以理解, 应用上缺乏可复用性, .NET 技术结合MVC 设计模式能够很好地解决上述问题。
2 MVC设计模式
就web应用系统开发来说,MVC是最基本的一种设计模式了,它强制性的使应用程序的输入、处理和输出分开。使用MVC共三个核心部件:模型(Model)、视图(View)、控制器(Controller),它们各自处理自己的任务,如图1所示。
图2ASP.NET下MVC与三层架构相结合的应用模型
在设计模式上,ASP.NET三层架构中,前端为.html、.asp和.aspx等,中间层为.vb或.cs等文件编译而成的.dll控件,后面为数据库服务器。数据层提供对外部系统(如数据库)的访问,该层涉及到的技术是ADO.NET数据库访问技术。
采用三层架构以后,表示层通过统一的接口向业务层发送请求,业务层按照自己的逻辑规则将请求处理之后,进行数据库操作,然后将数据库返回的数据封装成类的形式返回给表示层。这样表示层甚至可以不知道数据库的结构,它只要维护与业务层之间的接口即可。这种方式在一定程度上增加了数据库的安全性,同时也降低了对表示层开发人员的要求,因为它不需要进行任何数据库操作。
4 ASP.NET三层架构的实现策略
三层架构适用于较为复杂的应用开发,如果所开发的系统功能简单,则完全可以集中在一台机器上,而且速度也会很快,但是在系统数据非常庞大、连接的用户很多,所耗资源非常大的情况下,这台机器会由于负荷过重而速度减慢,甚至出现死机等状况,正是为了避免类似问题的出现,在应用系统开发中才出现了多层架构的设计思想。下面给出三层架构的搭建及各层的实现策略。
4.1 搭建三层架构
1) 新建一个空白的解决方案。
2) 在新建的解决方案中添加三个项目,对应三层架构的三个层。
右键单击新建的解决方案,依次执行“添加”→“新建项目”→“其他项目”→“企业级模版项目” →“C#生成块” →“数据层”,重复上述步骤,添加“业务层”项目和“表示层”项目。
3) 设置项目依赖。
右键点击新建的解决方案 →“项目依赖项”,设置表示层依赖数据层和业务层,业务层依赖数据层。添加表示层引用数据层和业务层、业务层引用数据层。
至此,一个三层的架构就搭建起来了。
4.2 各层实现策略
4.2.1 数据层实现策略
1) 必须保证数据库的变动对其余各层的不透明性,即无论数据库怎么变动,其它层绝对不可以发生任何改变,哪怕是一行代码都不行。
2) 数据层应当在保证数据库的变化对其它层不可见的前提下,尽量小。这样做的好处在于系统比较容易迁移,如把系统实现所用的SQL Server数据库改成Oracle数据库,只需修改数据层。
3) 数据访问策略:通过ADO.NET,可以为业务对象提供一个数据访问的抽象层,从而清晰地分离业务逻辑和数据层的持久性逻辑。
微软特别推荐在ADO.NET和ASP.NET中使用SQL Server数据库。因为其优势在于:丰富的编程接口工具,为用户进行程序设计提供了更大的选择余地;与Windows操作系统有机集成,多线程的体系结构设计,提高了系统对多用户同时访问的响应速度;对web技术的支持,使用户能够很容易地将数据库中的数据发送到web页面上。
4.2.2 表示层实现策略
表示层不仅仅包括界面设计,还包括界面事件响应,数据封装,流程控制等内容。其中,界面的易变性最强,因为它直观、形象,每个客户代表都可以提出自己的需求意见,所以界面不容易稳定。在实现表示层时,将不稳定、易变的因素控制在局部尤为重要。对于企业级的web应用而言,使用优秀的MVC设计模式能够很好的实现三层架构,应为首选策略。界面的设计原则:
1) 清晰原则:意味着要将表示层的显示逻辑与控制流和业务对象的调用相分离,即保证界面的任何变化都不需要修改其它层的内容。
2) 精炼原则:表示层越小越好,只包含界面层的显示逻辑、控制逻辑,而不包含任何的业务逻辑;只负责将用户的动作转换为应用事件,以及将用户输入的处理结果转换为界面的显示内容。
将界面的清晰、精炼两个设计原则可以分解为三条黄金准则,即用户掌控控制权;不加重用户的记忆负担;界面保持风格一致。
4.2.3 业务层实现策略
1) 业务层应当不受数据层和表示层变动的影响而需要修改。
2) 业务层应当在保证数据库或界面变化不会造成自身影响的前提下尽量大。
3) 如果某个类不是业务规则的需要,就不应该放在业务层,反之亦然。
无论是表示层,业务层,还是数据层,如果某个类,仅仅是为了该层的某种特殊实现而存在,那么它必须放在该层。
采用三层架构开发的系统具备下列优点:
1) 开发效率高。三层架构的代码层次分得很清楚,具有较高的开发效率高。
2) 相对较低的网络带宽占用。三层架构在服务器一端执行并返回运行结果,显然这种架构在理论上具有最高的运行效率。
3) 相对较低的本地资源占用。由于多层架构的操作基本都在服务器上进行,所以本地资源占用很少,有利于系统使用的流畅。
4) 由于数据访问是通过业务层进行的,因此客户端不再与数据库直接建立数据连接,也就是说,建立在数据库服务器上的连接数量将大大减少。同时,业务层与数据库服务器之间的数据连接通过“连接池”进行连接数量的控制,动态分配与释放数据连接,因此数据连接的数量将远远小于客户端数量。
5) 可维护性得以提高。因为业务规则、合法性校验存在于业务层,所以当业务规则发生改变时,只需要更改业务层的某个组件(如某个DLL文件)即可,而对客户端应用程序不需做任何处理,有些时候,甚至不必修改业务层组件,只需要修改数据库中的某个存储过程就可以了。
6) 良好的可重用性。如果需要开发相关的web应用,则不必要重新进行数据访问、业务规则等的开发,可以直接调用现有的业务层。
7) 系统具有良好的可扩充性。可以很方便地与人事管理、OA办公系统等业务挂接。
5 结束语
ASP.NET作为微软最新推出的.NET框架的一部分,它为构造新一代动态网站和基于网络的分布式应用提供了强有力的支持。结合MVC设计模式,恰当运用.NET技术,建立大型的web应用和web服务变得更加便捷,所构建的web应用和服务具有良好的健壮性、易维护性和可复用性等优点。文中的三层架构及实现策略具有通用性,对于web应用系统开发极具应用价值。
参考文献:
[1] 刘如鸿.在蹉跎中一路前行——谈Microsoft.NET战略,程序员,第6期,2004年
[2] (美)林·巴斯,保罗·克莱门茨,瑞克·凯兹曼.软件架构实践[M].5版.车立红,译.北京:清华大学出版社,2007.
[3] 浅谈如何建立三层体系结构的ASP应用程序.http://industry.ccidnet.com.
[5] 龐开放,李龙澍.基于.NET框架的web应用与实现[J].微机发展,2005,15(3).