如何将旧式ASP应用程序转换为ASP.NET?

时间:2020-03-06 14:30:24  来源:igfitidea点击:

我们有一个大型的ASP(经典ASP)应用程序,我们希望将其转换为.NET以便继续发布。继续使用ASP是没有意义的,因为它已经过时了,我们不想从头开始重写它(Joel Spolsky告诉我们原因)。

有没有一种方法可以将其自动从ASP转换为ASP.NET?

解决方案

微软在MSDN上发表了一篇文章,讨论了将ASP页面迁移到ASP.NET。他们基本上告诉我们在计算机/服务器上安装.net并一次转换一页。 ASP和ASP.NET可以共存,因此我们可以随时将每个页面重命名为" aspx"。但是,我们应该注意,ASP和ASP.NET页之间不共享会话状态和应用程序状态(有关此问题的解决方法,请参阅@mdb的答案。)

也有从ASP到ASP.NET的迁移助手,但是我不确定项目/程序是否仍处于活动状态。我们可以通过从以下页面下载进行尝试:

http://www.asp.net/downloads/archived/migration-assistants/asp-to-aspnet/

即使有在经典ASP和ASP.NET之间转换的工具,它们也不会产生很好的结果:这两种环境在根本上根本不同。快速的Google展示了一些结果,其中大多数是"我们将在印度让我们的人做到"的结果。

我的建议是暂时不要触摸我们现有的ASP代码。 Microsoft在可预见的将来将为运行时环境提供支持,因此没有迫切的迁移需求。相反,开始研究ASP.NET中的新功能:这样,我们就不会再受传统概念的束缚,并且可以以任何方式使用框架提供的新功能(包括ASP.NET MVC之类的功能)合身。

当然,新代码将需要与现有的ASP环境一起使用。在ASP和ASP.NET之间共享会话状态很可能是首要要求之一,但是我们很快就会发现更多类似的问题。

解决此类问题的"正确"解决方案将完全取决于我们当前的代码和要求:有时,我们可以将.NET代码包装在COM对象中,以供ASP代码使用,有时,部分移植/迁移可能是解决方案。

但是,平均而言,"两个世界"方法应该完全可行,并允许我们开发令人兴奋的新功能,而不必担心旧代码。

2009年12月,原始答案之外:刚遇到ASP Classic Compiler,这是一个主动维护的VBscript编译器,它将经典ASP页转换为可在ASP.NET上本地运行的代码。它具有几个很酷的功能,例如能够将其用作ASP.NET MVC自定义ViewEngine,因此尽管处于beta状态,但绝对值得关注……

出色地,
我曾经在所有Web应用都是经典ASP的公司工作。
当决定迁移到.NET时,我们必须找到一种方法来将168(!)Web应用程序转换为这个新框架。
我尝试了当时可用的所有工具,但都失败了。

最好的方法是构建新的Web服务器并从头开始构建,这样我们可以确保升级将快速进行,并且由于新旧集成而不会出现任何问题。我们将能够选择保留哪些功能和外观,以及更改哪些功能和外观。
不要将时间浪费在将旧的ASP文件/站点升级到NET平台的自动工具上。到目前为止,没有一个能正常工作。

最重要的是,如果后端具有数据库,则我们会遇到从Web应用程序到数据库的连接问题。