如何将遗留的ASP应用程序转换为ASP.NET?

18
我们有一个大型的ASP(经典ASP)应用程序,我们想将其转换为.NET版本,以便进行进一步的更新。继续使用已过时的ASP没有意义,而我们也不想从头开始重写它(Joel Spolsky在这里告诉你为什么)。
是否有一种自动将ASP转换为ASP.NET的方法?
4个回答

20
即使有转换工具可以在经典ASP和ASP.NET之间进行转换,它们也不会生成非常好的结果:这两个环境太根本性不同了。快速谷歌搜索可以找到一些结果,主要是“我们的印度团队将完成它”。
我的建议是现在不要触碰您现有的ASP代码。运行时环境将由Microsoft支持,因此没有紧急需要迁移。相反,开始在ASP.NET中开发新功能:这样,您就不会被遗留概念所拖累,并且可以按照自己的方式使用Framework提供的新功能(包括诸如ASP.NET MVC之类的东西)。
当然,您的新代码需要与现有的ASP环境配合工作。在ASP和ASP.NET之间共享会话状态很可能是您的第一个要求,但您很快会识别出更多类似的问题。
对于这些问题,“正确”的解决方案完全取决于您当前的代码和要求:有时,您可以将.NET代码包装在COM对象中供ASP代码使用,有时部分移植/迁移可能是解决方案。
然而,在平均水平上,“两个世界”的方法应该完全可行,并且使您能够开发激动人心的新功能,而无需担心旧代码。 2009年12月关于原答案的补充:刚刚发现ASP Classic Compiler,它是一个活跃维护的VBScript编译器,将经典ASP页面转换为在ASP.NET上本地运行的代码。它有几个很酷的功能,例如将其用作ASP.NET MVC自定义ViewEngine的能力,因此尽管它处于测试状态,但它肯定值得关注...

13

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

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

此外,如果您的数据库位于后端,则将遇到与从Web应用程序连接到其的问题。


10

微软在MSDN上发布了一篇文章,介绍了将ASP网页迁移到ASP.NET。他们基本上告诉你在计算机/服务器上安装.NET,然后逐个页面进行转换。ASP和ASP.NET可以共存,所以你可以在转换时将每个页面重命名为“aspx”。但是需要注意的是,会话状态和应用程序状态在ASP和ASP.NET页面之间不共享(有关该问题的解决方法,请参见@mdb's answer)。

还有ASP到ASP.NET迁移助手,但我不确定该项目/程序是否仍处于活动状态。您可以通过从此页面下载它来尝试:

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


4

gmStudio 是一款全面的 VB6/ASP/COM 到 .NET 升级工具。它可以读取、分析、解释、重写和重新构建(作为 C# 或 VB.NET)单个页面+包含文件或整个站点。

该技术自 2007 年以来一直处于活跃开发状态,我们已经使用它来帮助我们重写了从数百页到数千页不等的站点。

这个工具在 MSDN 上得到了认可(点击此处)

有一个(旧的)演示视频在 ScreenCast 上(点击此处)。(我真的需要更新一下!在那之前,如果您想要最新版本的实时演示,请告诉我。)

还有很多内容需要介绍,请联系我们进行了解

免责声明: 我是 Great Migrations 的员工。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接