【asp源码栏目提醒】:网学会员--在 asp源码编辑为广大网友搜集整理了:ASP.NET 3.5技术简介 - 企业软件开发绩等信息,祝愿广大网友取得需要的信息,参考学习。
第4章
ASP.NET 3.5技术简介 在.NET Framework 3.5版本之上,微软也发布了 称为
ASP.NET 3.5的版本。
ASP.NET 3.5相对于其 前一个版本
ASP.NET 2.0并没有太大的改变,但是 提供了大量的新功能,比如以前作为扩展的
ASP.NET AJAX、LINQ数据源控件等等。
4.1
ASP.NET技术介绍 在
ASP.NET中,Web页面现在也可称之为Web Form,只要愿意,使用
ASP.NET能够创建与 Windows桌面应用程序相似的用户界面。
而且,
ASP.NET Web应用程序是编译型而非解释型的Web 开发技术,
ASP.NET 3.5让开发人员能更容易的创 建出更强大的Web应用程序。
4.1.1
ASP.NET 3.5的特点 如果读者是一位熟悉
ASP.NET 2.0的程序员,那么很快会发现,
ASP.NET 3.5的绝大部分都与
ASP.NET 2.0相似。
其实在笔者刚接 触到
ASP.NET 3.5时,觉得
ASP.NET 3.5就是
ASP.NET 2.0AJAXLINQ的一个混合体,微软仍然在努力的发布其Web开发 方面的一些扩展,比如MVC框架、对动态数据的支持。
ASP.NET 3.5在
ASP.NET 2.0的基础上增加了如下的新特色: 提供了用于开发
ASP.NET AJAX应用程序的内置的服务器控件、类 型和客户端脚本库。
新的Forms身份验证,角色管理和配置文件服务。
新的ListView数据控件,用于显示数据,还可提供具有高度可自 定义性的用户界面。
新的LinqDataSource控件,通过
ASP.NET 数据源控件结构公开语 言集成查询(LINQ)。
新的合并工具(Aspnet_merge.exe),可用于合并预编译程序集,以灵活 的方式实现部署和发布管理 提供了与IIS 7.0的集成特性。
4.1.2 一个简单的
ASP.NET应用程序 在这一个示例应用程序中,将使用
ASP.NET 3.5中的新增的 LinqDataSource来开发一个简单的
ASP.NET Web应用程序。
假如读者是一位
ASP.NET的新手,建议跟着下面的步骤一步 一步的来学习,不必先理解每个细节,这个示例将使读者 对
ASP.NET开发过程有一个简单的印象。
4.2
ASP.NET程序结构 通常,一个
ASP.NET应用程序由多个Web Form组 成,每个Web Form将共享相同应用程序的很多通 用的资源和配置设置,即使在相同的IIS服务器 上,也不大可能有多个应用程序共享相同的资源 和配置,这是因为每个应用程序都被执行在一个 分离的应用程序域中。
可以把应用程序域想象成 内存中的一块隔离区域,这样即使其他
ASP.NET应 用程序崩溃也不会影响到当前应用程序,保证了 应用程序的安全性。
一个标准的
ASP.NET应用程序由多个文件组成,包 括Web页面、HTTP处理器、HTTP模块以及可执行的 代码、配置文件和数据库文件等等。
4.2.1
ASP.NET文件类型
ASP.NET应用程序可能包括如下类型的一个或多个文件: aspx文件:标准的Web页面文件,包含用户界面和代码文件(.cs 或.vb)。
ascx文件:
ASP.NET用户控件,用户控件与Web页面类似,但是用户将不能 直接访问这些文件,必须将用户控件宿主到Web页面。
用户界面最大的优 势在于可重用、简化在一个Web页面上太多的UI元素和代码块。
asmx文件:
ASP.NET Web服务文件,Web服务提供一系列方法来供其他应用 程序进行远程调用。
Web服务与Web页面类似的是也共享同一应用程序域的 资源配置设置等等。
Web.Config文件:这是一个基于XML的
ASP.NET配置文件,在这个文件中可 以包含很多
ASP.NET相关的设置信息,比如数据库连接、安全设置、状态 管理、内存管理等等。
Global.asax文件:全局应用程序文件,可以用来定义在整个应用程序范 围可用的全局变量,响应全局事件。
。
cs文件:代码后置文件,允许开发人员分离用户界面与代码逻辑。
4.2.2
ASP.NET目录介绍 每个Web应用程序都应该有良好规划的目录结构, 在
ASP.NET中,提供了几个特定的子目录来组织不 同类型的文件。
在VS2008中,将会提醒用户可能 需要将特定的文件放在特定的文件夹中,也可以 在网站项目上右击鼠标,在弹出的菜单中选择 “添加
ASP.NET文件夹”菜单项,会看到如图所示 的
ASP.NET特定文件夹。
4.3
ASP.NET配置 在
ASP.NET应用程序中,配置文件具有举足轻重的 地位。
ASP.NET的配置信息保存在基于XML的文本 文件中,通常命名为Web.config。
在一个
ASP.NET 应用程序中,可以出现一个或多个Web.config文 件,这些文件根据需要存放在应用程序的不同文 件夹中。
4.3.1 web.config配置文件 web.config继承自.NET Frmaework安装目录的machine.config文 件,machine.config配置文件存储了与影响整个机器的配置信 息,不管应用程序位于哪个应用程序域中,都将取用 machine.config中的配置。
web.config继承了machine.config中 的大部分设置,同时也允许开发人员添加自定义配置,或者是覆 盖mchine.config中己有的配置。
4.3.2 嵌套配置设置 嵌套的配置设置是可以在一个应用程序中同时应用多个web.config文件,
ASP.NET使用多层次的配置系统,允许开发人员在不同的层次配置设置。
比如在FirstWebSite网站的根目录中,有一个web.config配置文件,该文 件提供了整个网站都可用的配置信息,为了演示嵌套配置设置,在该网站 中新添加一个文件夹,右击FirstWebSite项目名称,选择“新建文件夹” 菜单项,命名为Customer,在Customer下添加一个customer.aspx的Web Form,接下来右击Customer文件夹,选择添加新项,在弹出的添加新项窗 口中选择“Web配置文件”项,如图所示。
4.3.3 在web.config中存储自定义设置 在中,允许开发人员保存自己的配置设置, 在配置文件中保存自定义设置信息是非常有用的,可以集 中化被多个页面使用的配置设置,可以快整切换不同类型 的操作,为变量设置初始值等等。
在中,可以使用元素来添加一个键和 一个值,新建一个名为appSettingDemo的网站,在 配置节中添加如下的配置代码:4.3.4
ASP.NET Web站点管理工具WAT 在VS2008中,提供了一个相当方便的网站管理工具,使开发人员可以使用 可视化的方式来设置配置文件。
可以单击VS2008主菜单中的“网站
ASP.NET配置”菜单项来打开WAT,也可以在解决方案的工具栏中单击
ASP.NET配置图标打开WAT。
WAT是一个基于Web的配置管理工具,这个工具将以可视化的方式编辑位于 网站根目录中的web.config文件,初始打开时的页面如图所示。
4.3.5 编程读取和写入配置设置
ASP.NET在System.Web.Configuration命名空间中提供了 WebConfigurationManager类,用来在运行时编程读取和写入配置 设置。
在本章前面己经演示过使用该类读取配置节 中的设置项,除此之外,WebConfigurationManager类还提供了其 他几个成员用于读取或设置其他配置项。
WebConfigurationManager静态类中的几个成员如下所示: AppSettings属性:提供访问添加到节中的自定义 信息。
ConnectionStrings属性:提供访问配置项 中的信息。
OpenWebConfiguration方法:为指定的Web应用程序返回配置对 象。
OpenMachineConfiguration方法:反回对machine.config文件 进行访问的配置对象。
4.3.6 加密配置块
ASP.NET支持两种类型的加密选项,一种是RSA一种是DPAPI。
对
ASP.NET应用程序来说,加密和解密是完全透明的,假如用户访问 一个加密的配置块,
ASP.NET将自动完成解密的工作,然后向代码 返回纯文本设置。
同样的,如果以编程的方式修改了设置项,然 后保存,加密工作也会自动的进行完成。
下面举一个示例来演示如何为web.config配置文件中的 appSettings配置块加密,新建一个
ASP.NET网站,命名为 encryptionConfig。
进入web.config配置文件,在 配置节中添加如下的设置项,代码如下所示:4.4 Web窗体基础 一个
ASP.NET Web应用程序主要是由许许多多的 Web页面(也可称之为Web窗体)组成,访问应用 程序的用户将会在浏览器中直接看到这些Web窗体 的运行效果。
在
ASP.NET中,开发人员可以使用类 似于开发Windows应用程序的基于控件方式来开发
ASP.NET应用程序,当
ASP.NET Web窗体运行时,
ASP.NET引擎读取整个.aspx文件,生成相应的对 象,并触发一系列事件。
4.4.1 基于事件的编程模型
ASP.NET使用事件驱动的编程模型,这与Windows开发有点类似, 开发人员只需要向Web窗体添加控件,然后响应相应的控件事件。
ASP.NET事件编程模型的一个基本过程如下面的步骤所示: (1)当页面首次运行时,
ASP.NET创建page对象和控件对象,初 始化代码将被执行,然后页面被渲染为HTML格式返回到客户端。
(2)当用户触发了页面回发(Postback)时,通常是触发了一些 事件,比如单击按钮事件,这时候页面将再次提交所有的表单数 据到服务器端。
(3)
ASP.NET截取返回的页面,并重新创建page对象。
(4)
ASP.NET检查是什么事件触发了Postback,并触发相应的事 件,这时候开发人员编写的触发事件的代码将被执行。
(5)页面将被渲染并返回到客户端。
page对象从内存中释放,如 果其他postback产生,
ASP.NET将重复2-4步骤。
4.4.2 自动回发特性(AutoPostBack) 当使用者在客户端触发事件时,只是产生了一个客户端行为,服 务器其实并不知道客户端触发了事件。
因此需要一种机制将在客 户端产生的事件传递到服务器端,让服务器端能有机会执行相应 的服务器端代码。
自动回发机制完成了这个任务,由于涉及到客 户端与服务器端的通信,可以想象,在
ASP.NET中,不能像在 Windows一样快速的响应事件,对于频繁产生的事件,会严重的影 响服务器端的性能。
大多数
ASP.NET服务器控件具有一个AutoPostBack属性,当将该属 性设置为True时,会对该控件触发的事件产生页面回发行为。
客 户端是如何通知服务器端事件被触发了呢?这其实是通过 JavaScript函数来实现的, 为了演示这个过程,新建一个
ASP.NET Web网站,命名为 AutoPostDemo,拖一个Label和一个LinkButton控件到页面,注意 到LinkButton是没有AutoPostBack属性的,因为单击按钮必须要 产生一个回发过程以便执行服务器端代码。
4.4.3 Web窗体处理流程 本小节来简单讨论一下Web窗体的处流程,当客户端发起对一个 Web窗体的请求后,Web窗体执行了很多的步骤用来生成客户端所 需要的页面。
当客户端发起对一个Web页面的请求时,
ASP.NET将 执行如下图所示的6个步骤来完成页面的处理过程,如图所示。
4.4.4
ASP.NET中的Page类 如果读者细心观察,会发现在VS2008中,每当创建一个新的Web窗体时,总是从 System.Web.UI.Page开始继承。
Page类是
ASP.NET中所有Web窗体的父类,该类提供了大量的功能例
ASP.NET应用程序使用,比如使用FindControl方法来页面上的搜索控件,使用前面讲过的 Page.IsPostBack属性判断是否是页面回发,除此之外,Page类还提供了如下几个重要且十分常用 的属性: IsPostBack属性:这个布尔属性指定页面是否是初次加载还是回送加载。
EnableViewState属性:布尔属性,指定是否允许视图状态,这个属性将覆盖页面中控件的 EnableViewState属性的设置。
Application属性:保存在Web站点中可以被所有用户使用的信息的集合。
Session属性:保存只能被单个用户使用的信息的集合。
Cache属性:允许开发人员对页面中的对象进行缓存。
Request属性:这是一个HttpRequest类型的对象,包含当前的Web请求的信息,使用这个属性可以 获取用户端浏览器信息,从一个页面向另一个页面传递数据等等。
Response属性:这是一个HttpResponse类型的对象,表示
ASP.NET将发送到客户端浏览器的响应信 息。
Server属性,这是一个HttpServerUtility类型的对象,允许完成多种类型的任务,比如对HTML文 本进行编码,跳转到其他Web硬骨头同等等。
User属性:如果用户经过验证,这个属性将初始化用户信息。
此外,Page类还是一个控件容器类,因此提供大量的查找或设置控件的方法,这些开发人员让开发 人员可以动态的创建用户界面,下面的几节将对几个常用的属性的用法进行详细的讨论。
4.4.5 页面重定向 Response类提供了一个Redirect方法,该方法可以将页面 重定向到另一个页面,下面举一个示例程序演示如何使用 Page类进行页面的重定向操作,步骤如下: (1)新建一个
ASP.NET网站,命名为RedirectDemo。
在该 网站上添加一个新的Web页面,命名为NewWebForm.aspx。
在Default.aspx中添加两个Button控件,设置相应的属 性, (2)双击Button1控件,在其代码框架中添加如下的代 码: Response.RedirectNewWebForm.aspx (3)接下来使用另一种方法来重定向页面,双击Button2 控件,在其代码框架中添加如下的代码: Server.TransferNewWebForm.aspx
上一篇:
在ASP NET程序中存储和调用word文件
下一篇:
村落共同体的核心架构研究