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

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

问题描述:

我们有一个很大的ASP(传统ASP)应用程序,我们想将它转换为.NET以便在更多版本上工作。继续使用ASP是没有道理的,因为它已经过时了,我们不想从头开始重写它(Joel Spolsky告诉你why)。如何将遗留ASP应用程序转换为ASP.NET?

有没有办法将它从ASP自动转换为ASP.NET?

那么, 我曾经为所有网络应用都是传统ASP的公司工作。当决定迁移到.NET时,我们必须找到一种将168(!)web应用程序转换为新框架的方法。 我尝试了所有可用的工具来做到这一点,都失败了。

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

最重要的是,如果你有后端数据库,你会遇到与网络应用程序连接的问题。

微软在MSDN上有一篇关于Migrating ASP Pages to ASP.NET的文章。他们基本上告诉你在你的计算机/服务器上安装.net,并且一次只能转换一个页面。 ASP和ASP.NET可以共存,因此可以随时将每个页面重命名为“aspx”。您应注意,但是,会话状态和应用程序状态不是ASP和ASP.NET页面之间共享(参见@mdb's answer为对问题的方法。)

还有The ASP to ASP.NET Migration Assistant,但我不知道该项目/程序仍然有效。

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

即使有工具,以经典的ASP和ASP.NET之间的转换,他们不会产生很好的效果:您可以通过此页面下载尝试一下两种环境都只是根本不同。一个快速谷歌出现了几个结果,主要是“我们会让我们在印度的人这样做”的多样性。

我的建议暂时不会触及您现有的ASP代码。 Microsoft在可预见的未来将支持运行时环境,因此不需要迁移。相反,开始研究ASP.NET中的新功能:这样,您就不会被传统概念阻止,并且可以以任何方式使用框架提供的新酷(包括像ASP.NET MVC之类的东西)适合。

当然,您的新代码需要与现有的ASP环境一起工作。​​很可能是您的第一个要求之一,但您很快就会发现更多类似的问题。

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

然而,平均而言,'两个世界'的方法应该完全可行,并且允许您开发令人兴奋的新功能,而不必担心遗留代码。


2009年12月除了原来的答案:跨越 ASP Classic Compiler,这是一个积极维护VBScript编译器是传统的ASP页面转换成原生运行在ASP.NET代码刚刚来到。它有几个很酷的功能,比如将它用作ASP.NET MVC自定义ViewEngine的能力,所以尽管它的测试版状态,它肯定看起来值得一直关注...

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

自2007年以来,该技术一直在积极开发中,我们用它来帮助我们重写从几百页到几千页的网站。

该工具被认可on MSDN here.

A(旧)演示视频是on ScreenCast here.(我真的需要更新这个!在那之前,请让我知道如果你想有一个现场演示,了解最新的。)

还有很多要说的,请contact us if you are intrested.

免责声明:我为Great Migrations工作。