迁移到 ASP .NET:需考虑的重要问题

问题

简介
虽然 Microsoft ASP .NET 的设计者在保持 ASP 应用程序的向后兼容性方面做了大量不懈的努力,但在将 Web 应用程序由 ASP 向 ASP .NET 迁移之前,还是应该了解一下几个关键的问题。在 .NET 平台和 ASP .NET 中对现有技术进行了改进并采用了一些新技术,透彻理解这些技术有利于简化此迁移过程,但这需要经过一段漫长的时间。

本文探讨各方面的变化,以便让用户清楚地了解建立 ASP 应用程序并使其在 ASP .NET 环境中运行所必须进行的一些工作。同时,它还指出了 ASP .NET 的一些新特性,用户可以充分利用这些新特性改进现有的应用程序。但这决不是 ASP .NET 所有新特性的全面介绍,而只是着重探讨一下成功迁移时需考虑的一些问题。

我设想,由于大多数 ASP 应用程序都使用 Microsoft Visual Basic Scripting Edition (VBScript),所以大多数用户都会选择使用 Visual Basic .NET 迁移到 ASP .NET。显然,这不是必需的。但如果决定在迁移的同时更改语言,将需要进行一些额外的工作,而且很可能还会涉及到设计和结构方面的更改。

共存性
在讨论具体的兼容性和迁移问题之前,了解一下 ASP 和 ASP .NET 如何共存非常重要。ASP 和 ASP .NET 应用程序可以同时在服务器上运行,而互不影响。这主要是由于两种技术各自使用不同的文件扩展名(.asp 与 .aspx)和不同的配置模型(配置数据库/注册表与基于 XML 的配置文件)。这两种系统还各自具有相应的处理引擎。

让某个应用程序的一部分运行 ASP,而另一部分运行 ASP .NET,这是完全可能的。如果需要将一个快速发展的大型站点一次一小部分地迁移到 ASP .NET,这种特性将对您大有益处。某些用户可能会说,最好能一次性迁移和部署整个站点。对于某些类型的 Web 应用程序来说也许是如此,但我认为,有许多站点并不能这样:考虑到站点内容和外观的绝对大小、复杂程度以及迅速变化,这种方式非常缺乏灵活性。毕竟,对于一个盈利的网站来说,那些掏腰包的人不可能允许您停止他们的新增功能,而将整个网站迁移到这种热门的新技术。另外,如果把向 ASP .NET 迁移作为一项长期投资,您将希望利用此机会尽可能多地对结构和设计做一些改进。综合这些情况,分阶段的共存性迁移是绝对必要的。

兼容性问题
将应用程序向 ASP .NET 迁移可能不是一件容易的事情;但是,也不应该很困难。ASP .NET 与 ASP 的兼容性非常好,给用户的感觉就好象 ASP .NET 是 ASP 的一个完整翻版。ASP .NET 设计者的最初目标是实现与 ASP 百分之百的向后兼容性,但在随后的工作中,他们不得不改变了这一初衷,以便彻底地改进这一平台。不过不要担心,我们尽可能进行了大量改进,应该不会需要您进行太多的工作。所发生的实际变化可以归纳为下列几类:

核心 API 的变化
结构变化
Visual Basic 语言的变化
与 COM 有关的变化
应用程序配置的变化
状态管理问题
与安全性有关的变化
数据访问
下面将详细讨论上述各个方面的变化。

核心 API 的变化
ASP 的核心 API 由几个固有对象(Request、Response 和 Server 等)及其有关方法组成。除几处简单变化之外,这些 API 在 ASP .NET 下可以继续正常运行。所有变化都与 Request 对象有关,如表 1 所示:

表 1:API 的变化

方法 变化
Request(item) 在 ASP 中,此方法返回字符串数组。在 ASP .NET 中,它返回 NameValueCollection。
Request.QueryString(item) 在 ASP 中,此方法返回字符串数组。在 ASP .NET 中,它返回 NameValueCollection。
Request.Form(item) 在 ASP 中,此方法返回字符串数组。在 ASP .NET 中,它返回 NameValueCollection。

正如您所见,对于涉及到的所有方法,其变化基本上都相同。

如果访问的 item(项)只包含特定关键字的一个值,您将不必修改自己的代码。但是,如果给定的关键字具有多个值,您将需要使用其它方法返回值的集合。另请注意,Visual Basic .NET 中的集合都是基于 0,而 VBScript 中的集合是基于 1 的。

例如,在 ASP 中,将按下列方式访问 http://localhost/myweb/valuetest.asp?values=10&values=20 请求返回的各个查询字符串值:

<%
'输出“10”
Response.Write Request.QueryString("values")(1)

'输出“20”
Response.Write Request.QueryString("values")(2)
%>

在 ASP .NET 中,QueryString 属性返回 NameValueCollection 对象,在检索所需的实际项之前,将需要从该对象中检索 Values

时间: 2024-09-30 15:49:16

迁移到 ASP .NET:需考虑的重要问题的相关文章

ASP 迁移到 ASP .NET:需考虑的重要问题

简介虽然 Microsoft ASP .NET 的设计者在保持 ASP 应用程序的向后兼容性方面做了大量不懈的努力,但在将 Web 应用程序由 ASP 向 ASP .NET 迁移之前,还是应该了解一下几个关键的问题.在 .NET 平台和 ASP .NET 中对现有技术进行了改进并采用了一些新技术,透彻理解这些技术有利于简化此迁移过程,但这需要经过一段漫长的时间. 本文探讨各方面的变化,以便让用户清楚地了解建立 ASP 应用程序并使其在 ASP .NET 环境中运行所必须进行的一些工作.同时,它还

从ASP迁移至ASP+--最初的考虑(一)

asp+ 它包括运行平台的配置,pagelet的建立,新的ADO+的使用,如何使用新的DataSet进行数据访问,HTML表格到DataList的转变,以及其他多种新的服务器端控件的使用技巧--还等什么?现在就来感受一下ASP+的全新魅力吧!) 自从微软在2000年7月的专业开发人员会议上宣布了ASP+以来, 一个相同的问题一直困扰着许多新闻组及讨论论坛:"我需要怎样做以使现有的web应用程序从ASP转换成asp+?" 专业开发人员会议的发言人称:代码方面无须作较大改动,整个转换过程也

从ASP迁移至ASP+

asp+ 原作者: 雨晨最初的考虑(一) 它包括运行平台的配置,pagelet的建立,新的ADO+的使用,如何使用新的DataSet进行数据访问,HTML表格到DataList的转变,以及其他多种新的服务器端控件的使用技巧--还等什么?现在就来感受一下ASP+的全新魅力吧!) 自从微软在2000年7月的专业开发人员会议上宣布了ASP+以来, 一个相同的问题一直困扰着许多新闻组及讨论论坛:"我需要怎样做以使现有的web应用程序从ASP转换成asp+?" 专业开发人员会议的发言人称:代码方

从PHP迁移到ASP.NET

asp.net 简介 本文讨论了从 PHP (PHP:Hypertext Preprocessor 4) 到 ASP.NET 的迁移,并对 PHP 和 Microsoft Visual Basic .NET 的基本语法以及基本功能和体系结构进行了对比. 尽管使用 PHP 和 ASP.NET 都可以构建复杂的 Web 应用程序(例如电子商务站点.Intranet 和企业门户),但两者之间却存在若干重要差别.与 PHP 不同,ASP.NET 并不是一种语言或分析器,而是 Microsoft .NET

为什么你需要将代码迁移到ASP.NET Core 2.0?

随着 .NET Core 2.0 的发布,.NET 开源跨平台迎来了新的时代.开发者们可以选择使用命令行.个人喜好的文本编辑器.Visual Studio 2017 15.3 和 Visual Studio Code 来开发自己的 .NET Core 2.0 项目.同时,微软 .NET 开发工具组也宣布了 ASP.NET Core 2.0 的发布,并且此版本与 .NET Core 2.0.Visual Studio 2017 15.3 和新的 Razor Pages 页面优化范例兼容.相信目前技

从 PHP 迁移到 ASP.NET

简介 本文讨论了从PHP(PHP:HypertextPreprocessor4)到ASP.NET的迁移,并对PHP和MicrosoftVisualBasic.NET的基本语法以及基本功能和体系结构进行了对比. 尽管使用PHP和ASP.NET都可以构建复杂的Web应用程序(例如电子商务站点.Intranet和企业门户),但两者之间却存在若干重要差别.与PHP不同,ASP.NET并不是一种语言或分析器,而是Microsoft.NETFramework中的一组用于构建Web应用程序和XMLWebSer

从ASP迁移至ASP+--最初的考虑(二)

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

从ASP迁移至ASP+ --处理会话变量(Session Variables)

asp+|session|变量 现存的ASP版的eVille禁止对站点的某些部分的访问,除非用户已经登录.一些功能像查看将来的优惠特价,报名上课,以及了解自己当前的入学状况是受限制区域.如果想在未登录的状态下访问这类区域,你只会被重新导回到登录页面.用户在一份表格中输入他们的用户名与密码,然后与数据库的学生表进行比较,如果登录成功,一个名为blnLoggedIn的会话变量便被设为真.这种方法对这个站点是有效的,因为它架设在一台单一的服务器上.其它的方法将被用于web farms上的web应用程序

如何Cloud Service项目迁移到ASP.Net Web中

Windows Azure是一个基于Silverlight的软件,它的开发门户现在也已经焕然一新了.它的所有信息,所有的操作都可以在一个页面中完成.使用这个全新的门户,从配置guest操作系统到停止或重启一个服务,几乎在一个页面上,就可以把所有的事情完成.如果我们现在把现有的Web应用程序或ASP.Net MVC Web应用程序迁移到云中的话,我们则需要把云服务添加到现有的Web应用程序或ASP.Net MVC Web应用程序中. 我们有一个Web应用程序的解决方案,如下所示: 现在,在这个解决