APP下载

基于多层架构的ASP.NET 4 MVC框架研究

2015-01-17王素芳胡必波

电脑与电信 2015年10期
关键词:视图页面架构

王素芳 胡必波

(1.广东白云学院,广东 广州 510430;2.广州工商学院,广东 广州 510850)

基于多层架构的ASP.NET 4 MVC框架研究

王素芳1胡必波2

(1.广东白云学院,广东 广州 510430;2.广州工商学院,广东 广州 510850)

ASP.NET MVC框架是微软今后开发Web应用程序的一个主流技术。本文介绍了如何将一个基于多层架构、ASP.NET 4技术的Web Forms应用迁移为多层架构的ASP.NET 4 MVC框架应用。从多层架构的角度出发,深入剖析了MVC模式工作原理,并给出了一个多层架构的ASP.NET 4 MVC客户关系管理系统实例。

多层架构;MVC模式;ASP.NET MVC;ASP.NET Web Forms

1 引言

在开发软件时,需求的不断变化对软件质量和可维护性有很强的破坏性。MVC模式就是一种能有效降低变化所带来的冲击的可行解决方案。它通过业务逻辑层与数据表现层的分割,把这两部分数据分离开来,以编写出更具模块化、可维护性更高的程序。自引入以来,MVC已经在数十种框架中应用,例如,Java开发Web Application框架有Jsp+Servlet+JavaBean(EJB)等,.NET开发Web Application框架有ASP. NET MVC Framework(ASP.NET MVC)等,PHP开发Web Application框架有ThinkPHP/FleaPHP等。其中ASP.NET MVC是微软公司在原有的ASP.NET框架基础上提出的一个新的MVC框架。利用ASP.NET MVC,.NET开发人员可以用MVC模式来构建Web应用,做到清晰的概念分离(UI或视图与业务应用逻辑分离,应用逻辑和后端数据分离),同时还可以使用测试驱动开发,这些是ASP.NET Web Forms完全无法比拟的。ASP.NET MVC已经成为.NET开发人员必须掌握的关键技术之一。

2 多层架构技术

多层系统架构又被称为N层系统架构,是指将软件系统的各个功能分开,放在不同的独立程序集中,形成独立的“层”,各层之间通过规定的规则进行调用,以完成整个软件系统。

图1 多层系统架构图

如图1所示为一般设计的通用多层系统架构,其中Client层为用户的浏览器,也即客户层;UI层为系统开发的用户界面层,用于向用户展示系统运行的结果,并接收用户的数据输入及操作;BLL层为系统开发的业务逻辑处理层,用于完成功能实现过程中各种业务过程的处理,对于有一定要求的用户操作或功能实现,在UI层代码调用BLL层中对应的方法完成;DAL层为专门用于实现数据访问的层,根据其它层的需要完成数据库中数据的读取或更新数据到数据库;对于UI中需要完成的简单数据操作功能,没有业务逻辑操作时,可以由UI层中代码直接调用DAL层中的类的相应方法完成数据访问,对于有一定业务逻辑的功能,则由BLL层中的代码调用此层中的功能,而不直接由UI层访问DAL层代码;Entity层则是定义的通用实体类层,其中定义的类用于UI层、BLL层、DAL层进行交互时提供统一的实体类定义,实体类一般根据数据库结构或业务逻辑的需要而定义。

3 MVC设计模式

MVC(Model-View-Controller)不是一种编程语言,严格来说也不算是一种技术,而是一种开发架构,一种开发观念,或者说是一种程序设计模式。MVC设计模式典型地反映了数据与表示的分离,它是一种交互界面的结构组织模式,广泛用于图形界面的设计中。MVC强调把用户输入、数据模型和图像显示以模块化的方式分开设计,将一个交互式应用程序分成以下3个部件:

(1)模型(Model):也称作数据模型,是软件所处理的核心逻辑,包括核心功能和数据。

(2)视图(View):向用户显示信息,对相同的信息可以有不同的显示。

(3)控制器(Controller):处理用户的输入(如:鼠标、键盘等),转化为用户对模型或视图的服务请求,并把信息的变化传递给视图。用户仅通过控制器与系统交互。

图2 Web应用程序的MVC概念图

如图2所示,说明在ASP.NET 4 MVC中,模型、视图、控制器之间的关系。控制器在其中扮演着非常重要的角色,控制器不仅处理用户的请求,还实现与模型之间的交互,对指定的视图发送相关的命令,在实际的ASP.NET 4 MVC应用开发中,开发者的主要工作就是实现控制器的编码。

4 实现多层架构的ASP.NET 4 MVC系统迁移

(1)搭建多层架构的MVC框架

客户关系管理系统包括:营销管理、客户管理、服务管理、统计报表和基础数据5个功能模块。另包括用于支持系统的权限管理模块。该系统采用了多层架构,解决方案为CRM;UI层使用Web应用程序项目类型,项目名称为Crm;包括BLL(业务逻辑处理层)、DAL(数据访问的层)、Entity(通用实体类层)等类库项目。各层之间的关系,通过添加相关的引用来完成。整个网页主要分为六大部分:根目录下的浏览页面、“SaleManage”目录下的营销管理页面、“Customer-Management”目录下的客户管理页面、“CustomerServices”目录下的客户服务页面;“EmplyeeManage”目录下的员工管理页面;“Statistics”目录下的统计报表页面。如图3所示,可以看出迁移后的MvcCrm.NET项目结构所包括BLL、DAL、Entity等类库项目代码与Crm.NET项目结构完全相同。

图3 MvcCrm.NET的项目结构

MVC模式通过对多层架构的BLL层与UI层的分割,把这两部分数据分离开来,以编写出更具模块化、可维护性更高的程序。MVC模式是把多层架构中的UI层进行了分化,分成了M、V、C三个部分,其中C完成页面逻辑,可直接与BLL层进行对话,通过V来与UI层完成通话。可以说,MVC模式是属于多层架构中的表现层,多层和MVC模式可以共存,多层架构是基于业务逻辑来分的,而MVC模式是基于页面来分的。多层架构和MVC模式之间的关系,如图4所示。

图4 多层架构和MVC模式之间的关系

(2)模型开发

在MvcCrm.NET系统中,模型的开发通过多层架构来实现。Entity层定义了6个实体类,这些类分别是Customer-Leve类、CustomerLostStatus类、CustomerStatus类、ORDERSTATUS类、SaleChanceStatus类、ServiceType类。实体类对象并不是与数据表一一对应的。比如在数据库DsCrmSecond中有Order表,但是并不需要构建相关的业务逻辑;反过来说,Entity层有CustomerLeve类,在数据库中并不存在相关的数据表。一句话,要根据应用程序的需要构建合适的业务对象。DAL层定义了4个类,分别是UsersInfoRepository类、SaleChanceRepository类、ApplicationRepository类、Repository类。BLL层定义了SalePlanService类、OrderService类、CustomerService类、CustomerServicesService类、Application-InfoService等11个类。在MvcCrm.NET系统中的控制器中,就是使用这些业务逻辑类来查询、添加、修改、删除相关的实体类对象的。工具类“Utils”项目,则定义了读、写配置文件Web.config的一些ConfigurationTool类。

(3)控制器开发

位于目录“Controllers”,主要是CustomerController控制器、SaleController控制器的实现。CustomerController控制器用于处理系统中客户页面的请求,SaleController控制器则主要处理营销页面的请求。由于MvcCrm.NET系统使用了母版页技术,因此在控制器的开发中,需要开发一个控制器基类——ApplicationController。

(4)视图开发

在实现了MvcCrm.NET系统中的模型、控制器之后,就可以比较容易地实现该网站中各种页面的视图开发。根据ASP.NET 4 MVC框架的默认约定,需要主要开发两大类的视图页面,分别位于目录“Views”中的“CustomerManag”文件夹和“SaleManage”文件夹中。

5 结语

多层架构和MVC模式是有明显区别的,MVC模式可以是属于多层架构中的表现层。多层架构的实现,可以非常方便地来构建ASP.NET 4 MVC项目中的模型。值得一提的是ASP.NET MVC框架与Web Forms技术是建立在ASP.NET基础上的两种平行技术,是微软今后同时发展的两种Web开发技术。它只是给开发者提供了开发Web应用程序的一种选择,而绝不是替代传统的Web Forms技术,这两种技术在不同的应用场景中,具有不同的优、缺点,开发者需要根据实际情况,选择对应的技术,甚至在同一个项目中混合使用这两种技术。

[1]董宁.ASP.NET MVC程序开发[M].北京:人民邮电出版社,2014.

[2]张家浩.现代软件工程[M].北京:机械工业出版社,2009.

[3]林庆,朱翠苗,郑广成,等.基于ASP.NET的MVC设计模式的研究[J].计算机工程与设计,2008,(1):167-169.

[4]黄胜根,陈蜀宇.基于ASP.NET MVC框架的干教系统的设计与实现[J].计算机技术与发展,2010,(2):191-193.

Research on ASP.NET 4 MVC Framework Based on Multi-tiers Architecture

Wang Sufang1Hu Bibo2
(1.Guangdong Baiyun University,Guangzhou 510430,Guangdong; 2.Guangzhou industrial and Commercial College,Guangzhou 510850,Guangdong)

ASP.NET MVC framework is a mainstream technology for developing Web applications in the future.This paper describes how to transfer a Web Forms application based on multi-tiers architecture and ASP.NET 4 technology to a ASP.NET 4 MVC framework for multi-tiers architecture.From the perspective of multi-tiers architecture,the working principle of MVC mode is analyzed,and a MVC 4ASP.NET customer relationship management system is given.

multi-tiers architecture;MVC model;ASP.NET MVC;ASP.NET Web Forms

TP311.52

A

1008-6609(2015)10-0064-03

王素芳,女,江西人,硕士,讲师,研究方向:数据库,人工智能,多媒体技术等。

猜你喜欢

视图页面架构
基于FPGA的RNN硬件加速架构
刷新生活的页面
功能架构在电子电气架构开发中的应用和实践
基于云服务的图书馆IT架构
5.3 视图与投影
视图
WebGIS架构下的地理信息系统构建研究
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
Web安全问答(3)