当前位置: 首页 > 图文教程 > 网络编程 > ASP.NET > 从ASP迁移至ASP+

ASP.NET
使用函数传递参数来执行相应的数据库操作
如何实现在窗体和窗体之间进行传递数据
ASP.NET中文显示之两种解决方法
ASP.NET、JSP及PHP之间的抉择
ASP.NET 2.0发送电子邮件中存在的问题
谈谈HtmlControl与WebControl的区别与用途
从ASP.NET 1.1升级到ASP.NET 2.0要考虑的Cookie问题
通过系统配置来提高ASP.NET应用程序的稳定性
妙用ASP2.0中的URL映射改变网址
AJAX实现web页面中级联菜单的设计
ASP.NET跨页面传值技巧总结
再议ASP.NET DataGrid控件中的“添加新行”功能
Geometry 对象浅析
重构CollapsibleSplitter
如何利用.NET Framework使用RSS feed
ASP.NET获取IP与MAC地址的方法
在ASP.NET 2.0中使用样式、主题和皮肤
ASP.NET中为GridView添加删除提示框
ASP.NET 2.0,无刷新页面新境界
看看一个.net版对话框控件

ASP.NET 中的 从ASP迁移至ASP+


出处:互联网   整理: 软晨网(RuanChen.com)   发布: 2009-11-03   浏览: 46 ::
收藏到网摘: n/a

最初的考虑(一)
作 者 : 雨晨


   它包括运行平台的配置,pagelet的建立,新的ADO+的使用,如何使用新的DataSet进行数据访问,HTML表格到DataList的转变,以及其他多种新的服务器端控件的使用技巧……还等什么?现在就来感受一下ASP+的全新魅力吧!)

   自从微软在2000年7月的专业开发人员会议上宣布了ASP+以来, 一个相同的问题一直困扰着许多新闻组及讨论论坛:“我需要怎样做以使现有的web应用程序从ASP转换成asp+?” 专业开发人员会议的发言人称:代码方面无须作较大改动,整个转换过程也并不太难。真是这样吗?在本文中,我们将一探究竟。

   要运行ASP+的alpha版本,你需要:

   Windows 2000 Professional server, 或者Advanced Server

   IIS5.0

   Internet Explorer5.5

   ..Net框架运行时(.Net Framwork Runtime)

   (未来发行的ASP+将可以在windows NT及9x上运行)

   如果你是一位ASP开发者,你当前使用的技巧如VBScript将轻松转换到Visual Basic .Net来为你的ASP+页面

   编写代码。你也可能使用其他的语言如:C#,Managed C++甚至Cobol。 在本文中,我会介绍将一个小型web应用程序从ASP升级到ASP+所需的详细步骤。示例代码使用Visual Basic .Net。

   尽管ASP与ASP+可以彼此交互共存,我们还是选择将整个站点迁移至ASP+。被迁移的是一个示例站点,该站点被用来演示入门级的web开发 。我们觉得该站点代表了当前互联网上相当一部分典型的中,小型站点。该站点网址是: http://www.codejunkies.net/eVille/, 它是一个虚拟招生网站, 招收的学生们将学习IT相关课程。该站点架设于Windows2000 Server上,由Access2000数据库驱动,使用VBScript, 客户端JavaScript以及ASP3.0,没有使用COM。

   在同一台运行IIS5.0的WEB服务器上,ASP与ASP+被设计成为支持并行运行(最终发行版本将支持IIS其它版本)。这意味着我们可以一次一页地来迁移整个站点。最初的页面仍然可以在ASP3.0下继续运行,而新的页面将被转换成为使用ASP+服务器控件与函数。

   我们要做的第一步就是要使IIS能够将default.aspx作为一个有效的缺省文件。这一步相当简单,在Internet Service Manager中:

   * 打开IIS虚拟目录中的‘属性’对话框

   * 点击‘文件’标签中的‘添加’按钮

   * 输入Default.aspx

   * 点击‘确定’两次

   做示例用的eVille站点没有使用COM,因此所有的数据访问都是通过ASP或者include文件中的ADO来完成的。我们初始的目标之一就是要将ADO转换成ADO+以获得由ADO+ Managed Provider带来的更好执行效果。ASP+支持传统ADO的使用,然而迁移到ADO+将受益更多。比方说:从单个DataSet中获取多个表(table),更快的执行速度,将数据绑定到服务器控件。ASP+页面中的数据访问可以通过ADO,ADO+或是SQL Managed Provider来完成。由于示例站点没有使用SQL Server,而我们又想对执行进行优化,所以ADO+成了我们最好的选择。

   本站的每个页面都涉及到数据访问,所以它将在转换工程中占最大的比例。基本上,每一页都必须作一些代码修改以获取并显示该页所需的数据。在eVille的结构中有一个connect.inc文件,该文件包含ADO连接代码,并且每个页面中都有该文件。连接已经建好并且可以使用了。由于在ASP+中,连接到数据库和绑定到ASP+数据控件的过程由新的Page_Load事件来完成,现在我们得采取一种稍微不同的方法。


最初的考虑(二)
作 者 : 雨晨


   运用和在一个单独模块中创建一个普遍性的连接相同的构想,我们创建了一个Pagelet。Pagelet使开发人员可以创建伪控件,伪控件和对象一样可以用来显示属性,方法以及事件。我们的方案是:创建一个显示ConnectToDB方法的Pagelet,该方法返回一个ADOConnection对象(与ADO的语法稍有不同)。我们用下面的代码创建Pagelet,将它存为connect.aspc(扩展名表明它是一个Pagelet)

   < %@ Import Namespace="System.Data" %>

   < %@ Import Namespace="System.Data.ADO" %>

   < script language="VB" runat="server">

   Public Function ConnectToDB() As ADOConnection

   ConnectToDB = New ADOConnection("DSN=evilleDSN")

   End Function

   < /script>

   你会注意到我们导入了两个Namespaces,即System.Data和System.Data.ADO。为了使用ADO+ Managed Provider这些Namespaces是必须的。许多人就此问了我许多问题,因为目前多数示例都使用基于Microsoft SQL Server 2000数据库的SQL Managed Provider。对于非SQL Server 数据库,ASP+可以使用ADO+ Managed Provider,这和目前你在程序中使用ADO的方式大致相同。导入Namespaces和在VB程序中创建参考(Reference)有异曲同工之妙。

   Pagelet的运用使我可以维护当前的站点计划,一旦在模块中创建了连接,我们