三层经典架构PetShop3.0之表现层

来源:互联网  作者:宋巍巍
摘要:前面从架构方面介绍了petshop怎样通过工厂模式可以轻松替换持久层实现。这次简单说一说petshop的表现层实现。…

前面从架构方面介绍了petshop怎样通过工厂模式可以轻松替换持久层实现。这次简单说一说petshop的表现层实现。

petshop的表现层使用了Web 页面(aspx)和用户控件(ascx)控件及自定义服务器控件等ASP.NET技术。

web页面(aspx)是用户和服务器交互的接口,也是用户除静态页面外唯一能够访问到的asp.net组件,其他像用户控件(ascx)和服务器控件只能在web页面(aspx)中使用,用户不能直接访问。用户控件类似于web页面,服务器控件与jsp的标签相似,可以在比较中进行学习。

一.用户控件和服务器控件。

1.用户控件。

用户控件与web页面极为相似,只不过是以ascx后缀命名(确保用户控件不能作为独立 Web 窗体页来运行),并且不能包含 <HTML>、<BODY> 和 <FORM> 元素,这些元素必须位于宿主页中。用户控件使您能够很容易地在多个 ASP.NET Web 应用程序之间划分和重复使用公共用户界面 (UI) 功能。asp.net页面中也可以使用include,也就是服务器端包含(SSI),不过用户控件编译后是.net 框架中的UserControl 类的实例,可以通过编程方式操作用户控件,通过访问由 ASP.NET 提供的对象模型支持,具有更大的灵活性。

用户控件使用小结:

(1)用户控件使开发人员能够使用编写WEB窗体页的相同编程技巧轻松地定义自定义控件。作为约定,用.ascx文件扩展名指示这样的控件。这样可以确保用户控件文件不能作为独立的WEB窗体页执行。

(2)用户控件通过Register指令包括在另一WEB窗体页中,该指令指定TagPrefix、TagName和Src location。

(3)注册了用户控件后,可以像普通的服务器控件那样将用户控件标记放置在WEB窗体页中(包括runat="server"属性)。在包含WEB窗体页中将用户控件的公共字段、属性和方法提升为该控件的公共属性(标记属性)和方法。

(4)用户控件参与每个请求的整个执行生存期,并且可以处理自己的事件,封装来自包含WEB窗体页的一些页逻辑。

(5)用户控件不应包含任何窗体控件,而应依靠其包含WEB窗体页在必要时包括窗体控件。

(6)可以使用System.WEB.UI.Page类的LoadControl方法以编程方式创建用户控件。用户控件的类型由ASP.NET运行库决定,遵循约定文件名_扩展名。

(7)只有当为用户控件包括了Register指令时,用户控件的强类型才能由包含WEB窗体页使用(即使没有实际声明的用户控件标记)。

2.服务器控件。

asp.net服务器控件是一种类似于jsp taglib的编程模型。我们可以通过编程方式创建控件,然后在页面中使用。服务器控件可以提供极为强大的功能。ms为asp.net提供了三种服务器控件:

HTML 服务器控件   对服务器公开的 HTML 元素,可对其进行编程。HTML 服务器控件公开一个对象模型,该模型十分紧密地映射到相应控件所呈现的 HTML 元素。

Web 服务器控件   这些控件比 HTML 服务器控件具有更多内置功能。Web 服务器控件不只包括窗体类型的控件,例如按钮和文本框;而且还包括特殊用途的控件,例如日历。Web 服务器控件与 HTML 服务器控件相比更为抽象,因为其对象模型不一定反映 HTML 语法。

验证控件   包含逻辑以允许测试用户输入的控件。将一个验证控件附加到输入控件,测试用户对该输入控件输入的内容。验证控件可用于检查必填字段,对照字符的特定值或模式进行测试,验证某个值是否在限定范围之内以及其他目的。

.net2.0更是大大加强了web服务器控件。另外我们可以创建自定义的服务器控件(由于创建自定义控件相对复杂,并且内容较多,所以以后有时间介绍。),以提供通用控件没有提供的功能。

3.Web 用户控件和Web 自定义控件的比较:

Web 用户控件:

易于创建

为使用可视化设计工具的使用者提供有限的支持

每个应用程序中需要控件的一个单独副本

不能添加到 Visual Studio 中的工具箱

适用于静态布局

Web 自定义控件:

难于创建

为使用者提供完全的可视化设计工具支持

仅在全局程序集缓存中需要控件的单个副本

可以添加到 Visual Studio 中的工具箱

适用于动态布局

【相关文章】好搜一下
基于ASP.NET的自定义分页显示

基于ASP.NET的自定义分页显示

摘要:本文针对WEB数据库记录的显示问题,用实例讨论了在ASP.NET框架下使用…