3.3 组件建模
Web应用中的组件分为服务器端组件和客户端组件两类。服务器端较复杂的业务逻辑通常由中间层完成,包括一组封装了所有业务逻辑的已编译好的组件。因此,使用中间层不仅可以提高性能,而且可以共享整个应用的业务功能。客户端Web页中常见的组件是Java Applet和ActiveX,利用它们访问浏览器和客户端的各种资源,实现HTML无法实现的功能。
Web应用扩展定义了《static page》和《dynamic page》两个抽象组件构造型。《static page》实现客户端组件。《dynamic page》的主要任务是在运行时系统的物理文件和逻辑视图中的逻辑表现之间提供映射。图5和图6分别表示这两种组件实现的逻辑视图。
图6 由《static page》实现的客户端组件
图5 由《dynamic page》实现的逻辑视图类
3.4 框架建模
Web应用扩展定义了构造型《frameset》和《target》以及关联关系构造型《targeted link》来实现对框架的建模。《frameset》直接映射到HTML的<frameset>标记。《target》表示当前Web页引用的其它Web页或框架。《targeted link》是指向另一个Web页的超级链接,但它要在特定目标中才能提供。图7显示了论文管理的框架模型
图7 论文管理框架模型
4 基于 .NET 框架的 Web 应用开发
.NET框架是一种基于通用语言的编程框架,提供了崭新的编程模型:WebForm模型和WebService模型,提供了完善的基础类库、数据库访问技术ADO.NET和网络开发技术ASP.NET,为Web应用的开发提供了强有力的支持。
4.1 Web页的实现
.NET框架提供了WebForm开发模型,利用内嵌的各种服务器组件来生成服务器端Web页。它可以包含一些重要的页面元素:用户控件或者自定义控件等。用户控件User Control在.NET框架中是以.ascx为扩展名的文件,可以在多个Web页面中使用,实现代码的重用。自定义控件Custom Control是在.NET中创建或在原有控件上进行修改,添加新功能,以实现特定需求的控件,可以被多个应用程序调用。
4.2 Web页导航方式
.NET框架中的页面导航方式体现了Web页之间的关系,可以用下列四种方式实现。
(1)超级链接 使用HTML超链接控件或HyperLink控件可以实现页面之间的链接。其中HyperLink服务器控件允许在代码中改变其NavigateUrl属性,从而构造出具体目标可根据应用的当前状态动态变化的超链接。
(2)用Response.Redirect 实现 当Response.Redirect( )方法被调用时,创建HTTP应答,其中指出了状态代码302(表示目标已经改变)和新的目标URL。浏览器接收到该应答,发出一个对新URL的请求。 即重定向操作发生在客户端,涉及到两次与服务器的通信。
(3)用Server.Transfer 实现 这种方法把执行流程从当前的ASPX页面转到同一服务器上的另一个ASPX页面。但新的页面仍使用前一页面创建的应答流。 浏览器中的URL不会改变,重定向完全在服务器端进行。因此,这种方法能够避免不必要的网络通信,获得较好的性能和浏览效果。
(4)用Server.Execute 实现 此方法允许当前的ASPX页面执行同一服务器上的指定ASPX页面,指定的ASPX页面执行完毕后,控制流程返回原页面中发出Server.Execute( )调用的位置,被调用页面能够访问调用页面的表单数据和查询字符串集合。默认情况下,被调用页面的输出追加到当前应答流。但是,Server.Execute( )方法有一个重载的方法,允许通过一个TextWriter对象获取被调用页面的输出,而不是直接追加到输出流,这样,在调用页面中可以方便地调整被调用页面输出结果的位置。