ASP.NET 2.0的几个新特性

ASP.NET 2.0的几个新特性

 

新的开发人员体系结构

ASP.NET 2.0中的一个重要改进是新的体系结构,可以在应用程序中使用它。ASP.NET小组选择ASP.NET 1.0中一些最常见的编程操作,直接内嵌到ASP.NET中,可以节省大量的时间和编码。

1. 成员和角色管理

在早期版本中,如果开发一个入口,该入口要求用户登录应用程序,以获得许可的访问权限,那么总是需要自己创建它。这样创建出来的应用程序就有一些区域,只能由选定的人来访问它。

在ASP.NET 2.0中内置了这个功能。现在可以使用程序清单1-3来验证用户。

程序清单1-3  在代码中验证用户

VB

If (Membership.ValidateUser (Username.Text, Password.Text)) Then

   ' Allow access code here

End If

C#

if (Membership.ValidateUser (Username.Text, Password.Text)) {

   // Allow access code here

}

ASP.NET 2.0中的一系列新API、控件和提供程序允许控制应用程序的用户成员和角色管理。使用这些API,可以轻松地管理用户及其复杂的角色—— 创建、删除和编辑它们。这些功能只要使用API或内置的Web工具Web Site Administration Tool即可实现。

对于用户及其角色的存储,ASP.NET 2.0使用.mdb文件(该文件类型用于新的SQL Server Express Edition,不要与Microsoft Access混淆)来存储所有的用户和角色。但这个数据存储是没有限制的,可以扩展ASP.NET提供的功能,使用任何数据存储建立自己的提供程序。例如,可以轻松地在LDAP或Oracle数据库中建立自己的用户存储。

2. 个性化

入口为其成员提供的一个高级特性是个性化他们的产品,让终端用户可以定制站点的外观和功能。个性化应用程序和存储个性化设置的功能现在完全内置到ASP.NET框架中。

个性化常常围绕一个用户和这个用户承担的角色来进行,所以个性化体系结构可以与成员和角色基础结构紧密联系起来。存储所创建的个性化设置有几种方式。在Microsoft Access和SQL Server中存储这些设置的功能已内置到ASP.NET 2.0中。与成员和角色API的功能一样,可以使用灵活的提供程序模型,改变内置提供程序使用可用数据存储的方式,或者建立自己的定制数据提供程序,来实现全新的数据存储。个性化API也支持一系列数据存储,因此可以使用多个数据存储。

很容易使用这些新API为定制过程创建一个站点,所以这个特性对于所建立的任意应用程序来说都是有价值的。

3. ASP.NET入口框架

在使用ASP.NET 1.0时,开发人员可以进入ASP.NET小组的站点(http://www.asp.net),下载一些Web应用程序演示IBuySpy。这些演示叫做Developer Solution Kits,可以用作目前Internet上许多Web站点的基础。其中一些甚至扩展为开放源代码的框架,例如DotNetNuke。

IBuySpy的优点是,可以把它提供的代码作为基础,建立Web存储或入口。只需以基本代码作为起点,扩展它即可。例如,可以改变代码显示部分的外观和操作方式,或者在其模块体系结构中引入高级功能。Developer Solution Kits相当流行,因为它们使这些类型的操作非常容易实现。图1-4显示了INETA (International .NET Association)网站,它建立在IBuySpy入口框架的基础之上。

像IBuySpy这样的框架非常流行,因此, ASP.NET 2.0提供了内置功能,以使用Web Parts方便地建立入口。可以使用新Portal Framework建立的项目类型非常多。使用Web Parts建立项目的功能,就是允许终端用户根据自己的喜好完全定制入口。图1-5显示了一个使用Web Parts建立的示例应用程序。

image005.jpg

图  1-4

image006.jpg

图  1-5

4. 站点导航

ASP.NET小组成员认识到,终端用户希望方便地在整个应用程序中导航。以逻辑的方式进行导航的机制有时很难编码。该小组在ASP.NET 2.0中使用一系列基于导航的服务器控件解决了这个问题。

首先,在一个XML文件中为应用程序建立一个站点地图,特定的控件可以在该站点地图中工作。程序清单1-4显示了一个示例站点地图文件:

程序清单1-4  站点地图文件示例

<?xml version="1.0" encoding="utf-8" ?>

  

     

        

          url="News.aspx?cat=us" />

        

          url="News.aspx?cat=world" />

        

          url="News.aspx?cat=tech" />

        

          url="News.aspx?cat=sport" />

     

     

        url="Finance.aspx">

        

          url="Quotes.aspx" />

        

          url="Markets.aspx">

           

             description="Looking at the U.S. Market" url="MarketsUS.aspx" />

           

             description="The New York Stock Exchange" url="NYSE.aspx" />

         

        

          url="Funds.aspx" />

     

     

       url="Weather.aspx" />

  

有了站点地图之后,就可以把这个文件用作几个新站点导航服务器控件的数据源,如TreeView和SiteMapPath服务器控件。TreeView服务器控件允许在应用程序中放置可扩展的站点导航系统。图1-6显示了TreeView服务器控件的许多外观之一。

image007.jpg

图  1-6

SiteMapPath控件可以在应用程序中放置一些导航项,这样终端用户就可以查看应用程序当前采用的路径,并能轻松地导航到树型结构的上一级。图1-7显示了SiteMapPath服务器控件的一个例子。

image008.jpg

图  1-7

这些新站点导航功能为编程访问站点布局提供了极大的便利,甚至可以考虑像终端用户这样的角色如何确定显示站点的哪一部分这类事情。

新的编译系统

在ASP.NET 2.0中,代码以一种新方式构建和编译。ASP.NET 1.0中的编译总是一个很困难的过程。在ASP.NET 1.0中,要使用ASP.NET和Visual Studio建立应用程序的后台编码文件,部署它,然后在请求每个页面时,逐个观察.aspx文件是否已编译。如果在ASP.NET 1.0中对后台编码文件进行了修改,这些修改的内容将不能反映到应用程序中,除非重新建立了整个应用程序。也就是说,在重新编译整个应用程序之前,必须再次逐个页面地请求。

ASP.NET 1.0处理类和编译的方式在ASP.NET 2.0中都得到了改进。新编译系统的机制首先从页面在ASP.NET 2.0中的构建方式下手。在ASP.NET 1.0中,可以使用后台编码模型构建页面,也可以把所有的服务器代码放在.aspx页面的

ASP.NET 2.0提供了一个新的后台编码模型,因为.NET Framework 2.0提供了使用部分类(也称为部分类型)的功能。在编译时,各个文件将组合为一个产品,这将生成非常简洁的后台编码页面。类中Web Form. Designer Generated部分的代码与自己创建的后台编码类是分开的。而在ASP.NET 1.0中与此相反,.aspx页面需要从它自己的后台编码文件中派生,以表示一个逻辑页面。

ASP.NET 2.0应用程序可以包含一个\App_Code目录,以放置类的源代码。放在这里的所有类都是动态编译的,并在应用程序中反映出来。在进行修改时,不需要像ASP.NET 1.0那样使用独立的建立过程,这是一个“只要保存了就可以使用”的部署模型,类似于传统ASP 3.0中的部署模型。Visual Studio Web Developer也为\App_Code目录中的对象提供了IntelliSense,因此可以使用后台编码模型,也可以在线编码。

ASP.NET 2.0还提供了一些工具,可以预先编译ASP.NET应用程序,包括.aspx页面和后台编码,这样第一次检索页面时,应用程序中的所有页面都不会出现延迟现象。如果页面中有错误,即使没有调用每个页面,也可以找出这些错误。

ASP.NET 2.0应用程序的预先编译非常简单,只需在部署之后,调用应用程序根目录下的precompile.axd假想文件。这个假想文件会预先编译整个应用程序。如果在应用程序中发现错误,我们就会收到错误通知。还可以预先编译应用程序,再给部署服务器传送已创建好的程序集,从而防止代码在部署后被盗窃、修改和损坏。本书后面会列举这方面的示例。

页面框架的新增内容

ASP.NET页面框架有几个非常显著的新变化,可以把这些功能包含在自己的应用程序中。其中最惊人的变化是可以根据可视化继承来建立ASP.NET页面。这在Windows Forms中已经实现,但使用ASP.NET很难实现。使用主题很容易给应用程序中的各个页面应用统一的外观和操作方式。过去使用ADO.NET时的许多困难现在因为增加了一系列新的数据源控件都克服了,这些数据源控件可以从许多数据存储集中访问和检索数据。新控件并不只这些,许多新服务器控件形成了一个更大的ASP.NET页面框架。

1. Master页面

ASP.NET 2.0中引入了Master页面,现在可以在ASP.NET应用程序中使用可视化继承了。因为许多ASP.NET应用程序中的页面都有类似的结构,所以创建一个页面模板,把这个模板应用于整个应用程序就是很合理的。

在ASP.NET 2.0中,Master页面创建为.master页面,如图1-8所示。

Master页面包含标题、脚标、以及所有页面都有的其他元素。每个继承和使用这个模板的页面都要有这些元素。除了这些核心元素之外,还可以在Master页面中包含用于子页面(或内容页面)的服务器控件,以改变Master页面模板的特定区域。子页面的编辑如图1-9所示。

终端用户调用一个子页面时,就是在查看用该子页面及其继承的Master页面编译的单个页面。这也意味着页面的服务器和客户代码在新的页面上是激活的。

Master页面的优点是,可以在一个地方进行影响整个站点的修改,而不需要修改应用程序中的每个页面。

image009.jpg

图  1-8

image010.jpg

图  1-9

2. 主题

ASP.NET 2.0中引入了主题,便于为整个站点提供统一的外观和操作方式。主题是简单的文本文件,在这个文件中,定义了整个站点或一个页面上使用的统一服务器控件外观,或者某个特定服务器控件的外观。除了服务器控件的定义之外,还可以轻松地合并图形和层叠样式表。

主题存储在应用程序根目录下的/App_Theme目录中。主题的一个重要功能是可以使用ASP.NET 2.0提供的新个性化服务,动态地应用它们。入口或应用程序的每个用户都可以选择自己的个性化外观和操作方式。

访问数据的新对象

ASP.NET 1.0中一个代码量较大的任务是数据的检索。在许多情况下,这意味着使用许多对象。如果读者以前使用过ASP.NET,就知道这个过程涉及到在 DataGrid服务器控件中显示Microsoft SQL Server表中的数据。例如,首先要创建许多新对象,包括SqlConnection对象和SqlCommand对象。有了这些对象之后,还要创建一个 SqlDataReader对象,把结果绑定到DataGrid上来填充DataGrid。最后,显示一个表,其中包含了我们检索的数据内容(例如 Northwind数据库中的Customers表)。

ASP.NET 2.0引入了一系列专门处理数据访问和检索的新对象,去除了这个涉及许多代码的过程。这些新的数据控件非常易于使用,不需要编写任何代码,就可以访问和检索数据,以填充ASP.NET服务器控件。程序清单1-2中有一个例子,在这个例子中,服务器控件在 SQL Server中检索Northwind数据库的Customers表中的数据行。这个SqlDataSource服务器控件通过使用GridView控件中的简单属性,绑定到新的GridView服务器控件上。没有比这更容易的了!

这个新功能的优点是,它不仅能用于 Microsoft的SQL Server,实际上,还有几个数据源服务器控件也有这个功能。还可以创建自己的数据源服务器控件。除了SqlDataSource服务器控件之外, ASP.NET 2.0还引入了AccessDataSource、XmlDataSource、ObjectDataSource和SiteMapDataSource 服务器控件。本书的后面将使用这些新数据控件。

新的服务器控件

到目前为止,我们介绍了建立ASP.NET 2.0页面时可以使用的许多新服务器控件。例如,上一节讨论了所有的新数据源服务器控件,它们可以用于访问各种数据库。我们还可以使用GridView服务器控件,它是ASP.NET 1.0中DataGrid控件的改进版本。

除了本章前面介绍的控件之外,ASP.NET 2.0还提供了50多个新服务器控件!实际上,这么多新的服务器控件导致建立ASP.NET应用程序的下一代IDE的诞生,即Visual Studio 2005,因为必须重新组织存储服务器控件的工具箱。这些服务器控件现在按照类别来放置,而不是像Visual Studio .NET或ASP.NET Web Matrix那样放在一个列表中。新的Visual Studio 2005工具箱如图1-10所示。

image011.jpg

图  1-10

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-214875/,如需转载,请注明出处,否则将追究法律责任。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值