我们有一个大型ASP(经典ASP)应用程序,我们希望将其转换为.NET以便进一步发布。继续使用ASP是没有意义的,因为它已经过时了,我们不想从头开始重写它(Joel Spolsky告诉你why)。
有没有办法将它自动从ASP转换为ASP.NET?
答案 0 :(得分:19)
即使有经典ASP和ASP.NET之间的转换工具,它们也不会产生非常好的结果:这两种环境根本不同。一个快速的谷歌出现了一些结果,主要是“我们将让我们在印度的人做”变种。
我的建议是暂时不要触及您现有的ASP代码。在可预见的未来,Microsoft将支持运行时环境,因此不需要迁移。相反,开始研究ASP.NET中的新功能:这样,您将不会被遗留概念所阻碍,并且可以以您看到的任何方式使用Framework提供的新酷(包括ASP.NET MVC之类的东西)配合。
当然,您的新代码需要使用现有的ASP环境。 Sharing session state between ASP and ASP.NET很可能是您的首要要求之一,但您很快就会发现更多类似的问题。
此类问题的“正确”解决方案将完全取决于您当前的代码和要求:有时,您将能够将.NET代码包装在COM对象中以供ASP代码使用,有时可能部分移植/迁移是解决方案。
但是,平均而言,“两个世界”的方法应该是完全可行的,并且允许您开发令人兴奋的新功能,而无需担心遗留代码。
<小时/> 2009年12月除原始答案外:刚刚遇到ASP Classic Compiler,这是一个积极维护的VBscript编译器,可将经典ASP页面转换为在ASP.NET上本机运行的代码。它有几个很酷的功能,例如能够将它用作ASP.NET MVC自定义ViewEngine,所以尽管它处于测试状态,但它肯定值得关注......
答案 1 :(得分:10)
那么, 我曾经为所有网络应用程序都是经典ASP的公司工作。 当决定迁移到.NET时,我们必须找到将168(!)web应用程序转换为这个新框架的方法。 我当时尝试了所有可用的工具,但都失败了。
最好的方法是构建一个新的Web服务器并从头开始,这样您就可以确保升级快速发生,并且由于新旧的集成而无需任何操作。您将能够选择要保留的功能和视觉外观以及要更改的功能和视觉外观。 不要浪费时间在自动工具上将旧的ASP文件/站点升级到.NET平台。到目前为止,没有人能够正常工作。
最重要的是,如果你在后端有数据库,你将遇到从网络应用程序连接到它的问题。
答案 2 :(得分:8)
微软在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/
答案 3 :(得分:1)
gmStudio是一个全面的VB6 / ASP / COM到.NET升级工具。它可以读取,分析,解释,重写和重组(如C#或VB.NET)单个页面+包含或整个站点。
该技术自2007年以来一直在积极开发中,我们使用它来帮助我们重写从几百页到几千页的网站。
该工具已通过on MSDN here.
(旧的)演示视频是on ScreenCast here.(我真的需要更新它!在此之前,如果您想要现场演示,请告知我们。)
还有更多要说的,请contact us if you are intrested.
免责声明:我为Great Migrations工作。