admin 管理员组

文章数量: 1086019


2024年3月28日发(作者:electric与electronic的区别)

维普资讯

曩计模式在 SP.NET系统 

任艳斐 

Ren Yanfei 

Appl iCatiOn of MVC Design Model in System Devolopment Based On ASP.NET 

计模式 

设 

在 

基 

于 

(> 『) 

Z (濮阳职业技术学院信息工程系,河南濮阳457000) 

(Department of Math and Engineering,Puyang Voctional Institute,Henan Puyang 457000) 系 

摘要:介绍了MVC设计模式的概念,讨论了MVC设计模式在ASP.Net环境下的实现,并对MVC在ASP.NET环境下的应 

统 

开 

用特性进行了分析。 

关键词:MVC设计模式:视图:控制器:ASP.NET 

中图分类号:TP393 文献标识码:A 文章编号:1 67 1—4792一(2008)5—0022—03 

Abstract:Introduces the conception of the MVC design model and carry on appl ication ofsystem based on ASP. 

NET.Finally.analys characteristics of MVC modle usjng system devolpment on ASP.NET. 

发 

中 

的 

应 

用 

Kevwords:MVC Design Modle;View:Control ler;ASP.NET 

0引言 信息,对于相同的信息可以有多个不同的显示形式。控制器 

ASP.NET是微软最新推出的新型体系结构,它为构建新 

代网络分布式应用提供了强有力的支持。与以前的Web开 

发模型相比,ASP.NET有许多优点,例如:简易性、安全 

是处理用户与软件的交互操作的,其职责是控制提供模型中 

任何变化的传播,确保用户界面与模型间的对应联系,还可 

接受用户的输人,将输人反馈给模型,进而实现对模型的计 

算控制,是使模型和视图协调工作的部件。模型保存由视图 

显示、由控制器控制的数据,它封装了问题的核心数据、逻 

辑和功能的计算关系,它独立于具体的界面表达和i/o操作。 

模型、视图与控制器的分离,使得一个模型可以具有多个 

显示视图。如果用户通过某个视图的控制器改变了模型的数 

性、可管理性等。而且与基于过程的Web页面技术相比,面 

向对象技术在ASP.NET巾得到了完全实现。但传统的Web设 

计技术和方法还在制约着.NET技术的广泛应用,如在传统的 

Web页面中页面显示,业务逻辑和流程控制耦合在一起,从 

工程化的角度考虑,有许多不足之处。用户界面承担着向用

户显示问题模型和i/o交互操作的作用,用户希望保持交互 

操作界面的相对稳定,但更希望根据需要改变和调整显示的 

内容和形式。ASP.NET技术结合MVC设计模式能够很好地解 

决上述问题。 

据,所有其它依核于这些数据的视图都应反映到这些变化。 

因此,无论何时发生了何种数据变化,控制器都会将变化通 

知所有的视图,导致显示的更新,这实际上是一种模型的变 

化一传播机制。 

1 MVC设计模式概述 

1.1 MVC的基本概念 

1.2 MVC设计模式的优点 

MVC的优点体现在以下几个方面:①可以为一个模型在 

MVC设计模式是Model(模型)一View(视 ̄)-Controller 

(控制器)的简称。MVC模式最先被用在第一代基于视窗的计 

算机上管理GUI和用户交互,近些年广泛应用在J2EE平台上。 

近两年来,随着ASP.NET技术在大型Web应用上的地位得到 

运行时同时建立和使用多个视图。变化一传播机制可以确保 

所有相关的视图及时得到模型数据变化,从而使所有关联的 

视图和控制器做到行为同步;②视图与控制器的可接插性, 

允许更换视图和控制器对象,而且可以根据需求动态的打开 

巩固,MVC这个广为人知的设计模式在.NET平台上也逐渐开 

始得到应用,, 已成为当今设计交互式应用事实上的标准。 

MVC模式的模型、视图 控制器三个组成部分,允许各个组 

或关闭、甚至在运行期问进行对象替换;③模型的可移植 

性。因为模型是独立于视图的,所以可以把一个模型独立地 

移植到新的平台工作,需要做的只是在新平台上对视图和控 

件间松散地藕合。这使得程序开发更加灵活,并且可以减少 

重复性代码,实现代码重用。视图把表示模型数据及逻辑关 

系和状态的信息以特定形式展示给用户,它从模型获得显示 

制器进行必要的修改;④潜在的框架结构。可以基于此模型 

建立应用程序框架,不仅仅是用在界面的设计中。 

2 MVC设计模式的实现 

1 Q 

维普资讯

2.1 MVC模型实现 

ASP.NET提供了实现MVC设计模式的天然环境 ASP.NET 

采用code-behind代码来处理显示页面的用户交互,即每个 

aspx文件都对应一个code—behind源代码文件,来实现逻辑 

控制代码、脚本语言、ItTML的分离。ASP.NET应用系统按照 

三层Web结构划分为表示层、业务层、和数据层。表示层由 

//调用数据库操作的基本类中RunSgl()方法 

) 

) 

Control ler不直接对Model中的数据逻辑进行操作,而 

是通过业务逻辑获取数据层(DAO)中的数据对象。Biz层由类 

(.CS)文件组成,其中业务逻辑组件封装了具体的处理逻辑。 

Web窗体组成,实现视图和控制器的功能;业务层包括业务实 

体组件和业务逻辑组件;数据层包括数据对象、数据访问组 

件等。由业务层和数据层共同实现模型的功能。以下以Web 

系统中常见的用户信息查询模块为例,探讨MVC设计模式在 

ASP.NET应用中的实现机制。 

Model用来管理应用程序域的行为和数据。在本系统中 

将业务逻辑、与数据库连接和交互的公共操作封装在单独的 

类中,用专门的类来处理业务逻辑和数据逻辑,从而提高了 

代码的重用性。具体实现方式为:在公用的基本类库中,定 

义DataBase类作为公共数据库操作的基本类,在DataBase 

类中实现与数据库连接和交互的公共操作的代码如下: 

Public class DataBase;//对数据库操作的基本类 

( 

Public DataSet RunSql(string sQL); 

//执行SQL语句,返回DataSet对象 

( 

sqlconnection=new sqlconnection(ConnStr); 

//建立SQL连接 

sqlDataAdapter da =new sqlDataAdapter (SQL, 

Conn); 

//创建sglDataAdapter对象并实现连接打开和关闭 

DataSet ds=new DataSet();//创建DataSet对象 

da.F{11(ds);//填充数据到DataSet巾 

da.Dispose();//释放sqlconnection对象 

return ds;//返回DataSet对象 

) 

) 

应用程序在数据访问层(DAO)中通过引用公用基本类中 

的方法RunSql 0来获取数据对象,下面的数据层实现所有用 

户的基本信息,具体方法如下: 

Pub1 ic class User I nfoDAO,BaseObdect; 

//继承所有数据对象的基类BaseObdect 

( 

Pub1 ic DataSet GetUserlnfo 0 

//从数据库中获取用户信息 

{ 

String sql=”select’from Userlnfo”: 

//SQL查询语句 

return db.RunSq1(sq1); 

以下为根据一个用户ID返回对应的用户信息处理逻辑。 

Public Class UserInfoBiz 

( 

UserI nfoDAO userInfo=new UserlnfoDAO0; 

//实例化对应数据逻辑类 

Public DataSet GetsingleuserInfo(string ID); 

//得到包含用户信息的一个DataSet 

{ 

DataSet ds=user I nfo.GetUserlnfo 0: 

7/讽 DAO 

UserlnfoDAO类中的GetUserInfo()方法 

DataView dr=new DataView();//创建DataView对象 

dv.Table=4s.Tables[0】;//ds表数据复制到dv中 

dV.RowFilter= userID=”+ID: 

//过滤符合ID用户的纪录 

DataSet ds 1=(DataSet)dv: 

//强制转换为DataSet对象 

return(ds1) 

) 

) 

最后,Controller中的事件调用Model中的业务逻辑方 

法,并且把响应提交到对应的视图组件以产生响应,完成对 

客户端表单数据的描述。 

2.2视图的实现 

在ASP.NET开发环境中设计视图十分便捷。View由aspx 

页面来实现。Visual Studio.NET在视图设计器的工具箱中 

提供了数据、Web窗体、组件、HTMI,等各种控件,同时还提 

供了用户控件。用户控件是一种直观的可重用的模型,扩展 

名为.aspx。它可以是最简单HTML控件、服务器控件或多个 

控件嵌套构成的Web自定义控件。通过以上各种控件,可以 

像开发Window界面一样以所见即所得的方式进行可视化设 

计。本系统中视图与各模块中的aspx文件相对应,aspx文 

件与系统中的各个用户界面相对应。 

2.3控制器的实现 

ASP.NET中的代码分离机制使View中的代码与Mode及 

Controller中的代码能够很容易分离。每个aspx文件对应 

了一 个后端代码,通过该后端代码来实现Contro l l er的功 

能。每个aspx页面都有一种机制,将页面巾的控件所要调用 

的方法在一个与其分离的类巾实现。aspx和ascx文件后端 

维普资讯

代码继承了System、UI、Web、Page的类执行控制器功能, e);//提交按钮事件 

它包括了各种初始化和控制函数。当加载aspx页面时将调用 

Page_Load事件;当aspx页面从内存中被卸载时将调用Page__ 

UnloadS ̄。如果某个控件触发页面以使其被重新加载则将 

( 

BinduserInfo(); 

) < 

调用ControlEvent事件。在本系统中,Controller负责接 ) 设 

收、截获并处理用户请求和各种事件。通过调用Model中的 

业务逻辑组件来获取各种数据对象。根据当前状态和ql, ̄-操 

作的结果决定向客户呈现的视图,控制aspx页面的显示。以 

常用的用户数据查询模块中视图Userlnfo.aspx对应的Con- 

troller为例,说明如何用Controller实现根据用户输入的 

3基于ASP.NET的MVC设计模式特性分析 

通过上述实现过程进行分析,在ASP.NET中用Mvc模式 

开发的应用程序具有如下优点:①减少页面依赖性,提升代 

码复用。通过页面中的代码分离,可降低系统设计的复杂性, 

减少页面中的重复代码;②系统结构清晰,增加系统的可扩 

计 

模 

式 

在 

基 

于 

ID号查询个人基本信息,具体实现如下: 

Public class Userlnfo:System.UI.Psge 

( 

Protecred System.Web.UI.WebControls.DataGrid 

dgUserlnfo; 

∥声明DataGrid控件 

Protected SyStem.Web.UL.WebControlS. 

ButtonbtnSubmit; 

//声明Button控件,提交按钮 

Protected System.Web.UL WebControls.TextBoxtblD; 

//声明TextBox控件,用户填写ID数据 

UserlnfoBiz userlnfo=new UserlnfoBiz(); 

//实例化对应业务逻辑类 

Private void Page-Load(object sender,System, 

EventArgs e) 

( 

If(Is PostBack)

//是否为响应客户端回发而加载该页 

( 

BindUserInfo0 

> 

Void BindUserlnfo 0//公共绑定数据方法 

t 

String id=tbID.Text; 

//用户输入在textbox中的数据 

DataSet ds=userlnfo.GetSingleUserlnfo(id); 

//调用业务逻辑类巾的方法,由GetSingleUserlnfo()调 

用DAO内方法获取某一用户信息的数据集 

dgUserlnfo.DataSource=ds.Tables【oJ.DefaultView; 

//获取数据源 

( 

dgUserlnfo.Datallind 0; 

//绑定控件到指定数据源 

void btnSubmit-Cl ick(ObJect sender,EventArgs 

展性。MVC模式实现的应用程序具有极其良好的结构和可扩 ∽ > 

展性,它可以实现一个模型的多个视图,采用多个控制器,当 Z 

模型改变时,所有视图将自动刷新,控制器相互独立工作;③ m 

便于优化系统,提高系统性能。由于每次向数据库请求,都 系 

要从数据库装载数据,通过公共的数据访问类和ASP.NET的 统 

内部机制可以把数据存放在高速缓存中,从而优化整个应用 开 

系统的性能;④系统模型独立,提高系统的可测性。模型独 

发 

中 

立于视图,既可以在ASP.NET环境之外用第三方工具测试模 的 

型,也可以通过编写测试脚本实现自动化测试,大大提高测 应 

试的有效性和效率。 用 

在ASP.NET中使用Mvc模式也有不足之处:一方面,控 

制器不直接访向数据层,增加了代码的复杂性,对于一些简 

单的业务逻辑附加的额外代码所占比重比较大:另一方面, 

代码的分离增加了代码的维护成本,如果有涉及三者的变化 

时,在不同的文件中修改显然比在同—个文件修改花费的代 

价大。因此,在设计系统前权衡这样的代价是必不可少的。 

4结束语 

本文针对开发ASP.NET应用系统给出了一种可行的Mvc 

设计方案,讨论了该方案中MVC模块划分和Web三层结构划 

分之问的关系,并给出了每一模块的具体实现。利用该方案 

设计的系统具有结构良好、易于维护、易于仲缩等多种优点。 

参考文献 

【i]邹鹏,尚雄等.基于Mvc模式的客户关系管理系统设 

计【JJ.计算机应用研究,2005,(02):21—23. 

【2]杨寅华.两类Web服务器数据接口的比较及基于MVC 

下的实现【J].计算机应用与软件,2006,(2):69-71. 

【3]黎永良,崔杜武.MVC设计模式的改进与应用【J].计 

算机工程,2005,(9):96-98. 

作者简介 

任艳斐(1968一),女,河南濮阳人,讲师,在读软件硕士, 

主要研究方向:计算机应用,软件工程。 

1 R1 


本文标签: 数据 视图 用户 实现 模型