基于ASP.NET的Web应用系统架构探讨

来源:软件水平考试    发布时间:2012-11-04    软件水平考试视频    评论

  摘要:提出了一种基于ASP.NET开发方式的四层架构的Web应用系统构造思想。其基本内容是:将面向对象的UML建模与Web应用系统开发相结合,将整个系统分成适合ASP.NET开发方式的应用表示层、业务逻辑层、数据访问层和数据存储层四层结构。以此方式构造的Web应用不仅达到了代码组织结构清晰明朗、高重用性、适用性,易于维护和移植的目标,而且可以提高web应用系统的开发速度。解决了目前大型Web程序开发中,代码适用性、重用性差,及难于维护和移植的问题。
  引言
  随着计算机网络技术的迅速发展,Web应用系统越发变得日益广泛起来。ASP.NET是微软推出的新一代Web开发平台,与其它Web开发技术相比,ASP.NET提供的Web页面级状态管理功能、服务器控件触发事件的工作模式、代码和内容分离的编程方式等?[1],在一定程度上改变了以往的we b 应用系统的架构模式。在软件开发技术方面,面向对象技术和软件分层结构设计是代码组织的一些好方法。但是对于具体的开发平台而言,多层结构有着不同的具体表现;对于具体的项目开发而言,面向对象技术对具体问题进行类定义和对象划分也不相同。因此,如何基于ASP.NET这些新技术在ASP.NET平台上应用面向对象技术架构一个逻辑清晰、模块合理的多层结构的Web应用系统就成了文中讨论的内容。下面以笔者曾参与的《实验室信息管理系统》中的“ 论文管理子系统” 为例,来阐述基于四层架构的设计思想。
  1 ASP.NET下Web程序架构
  系统描述:学生可以登记自己的论文,也可以删除自己登记的论文和相关所有回复;老师和学生可以查看、回复论文,也可以删除、修改自己的回复;管理员可以查看、删除登记的所有论文和回复。笔者省略了论文管理系统的使用案例图和使用案例事件流图??[2,3],只给出了修改自己回复案例的时序图(见图1)。对于基于ASP.NET的Web应用系统,用户直接面对的是客户端浏览器,用户在使用系统时的请求是通过HTTP协议传递给服务器端的ASPX页面,用户操作的事务逻辑处理和数据的逻辑运算由服务器与数据库系统共同完成。按照在系统中的用途分类,把负责系统与角色交互的对象称为边界类对象,把负责系统中访问数据库的对象称为实体对象,把系统中介于边界对象和实体对象之间,负责时序图中流程的对象称为控制对象。故在时序图(见图1)中,Papers.ASPX和 Session对象属于边界类对象,Users对象属于控制类对象,Reply对象属于实体类对象。

  1.1 ASP.NET下Web应用表示层的架构
  表示层是用户和软件交互的接口,对于Web程序设计而言就是基于HTML的界面。主要职责就是为用户提供信息,以及把用户的操作传送给逻辑层和数据处理层。从使用案例事件流图中,可以确定用于交互的页面个数,再从案例时序图中,可以确定用于和用户交互的页面和服务器端的ASPX页面关系。图2是修改自己回复案例用到的页面关系图。

  Papers(View)页面对应用户查看某篇论文的页面,Papers(Edit)页面对应用户查看自己回复的页面。从案例时序图中可以得知它们都是Papers服务器页面在两个不同状态下产生的页面。为了克服传统Web窗体页本身无状态这一固有限制,ASP.NET页框架提供了一种“视图状态”(view state)的功能,此功能会在往返行程之间自动保留页以及页上所有控件的属性值,ASP.NET这种特性为数据表现层设计提供了极大的便利。ASP.NET还 采用了由服务器控件引发的事件的工作方式。Web窗体控件事件模型要求在客户端捕获事件信息,并且通过HTTP发送将事件消息传输到服务器,框架再解释该发送以确定所发生的事件,然后在要处理该事件的服务器上调代码中的适当方法。通过上面的两项技术ASP.NET框架提供了可以创建传统客户端/服务器Web交互的抽象模型,使开发者能够使用支持快速应用程序开发(RAD)和面向对象编程 (OOP)的传统方法和工具来进行应用程序编程。因此,可以根据角色与系统交互的事件流图和页面关系图来架构ASP.NET下Web表示层:
  (1) 从页面关系图出发,确定系统中用到的主要功能界面。
  (2) 根据ASP.NET中Web控件的特点,对确定的功能界面进行可视化页面布局:
  (3) 从事件流图出发,确定功能页面之间以及页面状态之间转移逻辑关系,根据ASP.NET中Web页面级状态管理功能和服务器控件属性、事件编程模式,编写部分页面之间以及页面状态之间转移代码。
  在NET开发工具中,可以使用“所见即所得” 页面设计工具对整个页面进行可视化布局,在实现这些页面之间以及页面状态之间转移逻辑关系代码时,可以在Web窗体设计器“设计” 视图中, 通过修改对象属性或编写事件完成页面的逻辑关系代码。

上一页12下一页

视频学习

我考网版权与免责声明

① 凡本网注明稿件来源为"原创"的所有文字、图片和音视频稿件,版权均属本网所有。任何媒体、网站或个人转载、链接转贴或以其他方式复制发表时必须注明"稿件来源:我考网",违者本网将依法追究责任;

② 本网部分稿件来源于网络,任何单位或个人认为我考网发布的内容可能涉嫌侵犯其合法权益,应该及时向我考网书面反馈,并提供身份证明、权属证明及详细侵权情况证明,我考网在收到上述法律文件后,将会尽快移除被控侵权内容。

最近更新

社区交流

考试问答