【发布时间】:2008-09-21 13:53:30
【问题描述】:
我们有一个大型 ASP(经典 ASP)应用程序,我们希望将其转换为 .NET 以用于后续版本。继续使用 ASP 是没有意义的,因为它已经过时了,我们不想从头开始重写它(Joel Spolsky 告诉你why)。
有没有办法自动将其从 ASP 转换为 ASP.NET?
【问题讨论】:
标签: asp.net asp-classic code-conversion
我们有一个大型 ASP(经典 ASP)应用程序,我们希望将其转换为 .NET 以用于后续版本。继续使用 ASP 是没有意义的,因为它已经过时了,我们不想从头开始重写它(Joel Spolsky 告诉你why)。
有没有办法自动将其从 ASP 转换为 ASP.NET?
【问题讨论】:
标签: asp.net asp-classic code-conversion
即使有工具可以在经典 ASP 和 ASP.NET 之间进行转换,它们也不会产生很好的结果:这两种环境根本不同。快速的 Google 会出现一些结果,主要是“我们将让我们的印度人来做”的各种结果。
我的建议是暂时不要碰您现有的 ASP 代码。在可预见的将来,运行时环境将得到微软的支持,因此无需紧急迁移。相反,开始在 ASP.NET 中开发新功能:这样,您就不会被遗留概念所阻碍,并且可以以您看到的任何方式使用框架(包括 ASP.NET MVC 之类的东西)提供的新酷适合。
当然,您的新代码需要与现有的 ASP 环境一起工作。 Sharing session state between ASP and ASP.NET 很可能是您的首要要求之一,但您很快就会发现更多类似的问题。
此类问题的“正确”解决方案将完全取决于您当前的代码和要求:有时,您可以将 .NET 代码包装在 COM 对象中以供 ASP 代码使用,有时部分移植/迁移可能成为解决方案。
但是,平均而言,“两个世界”的方法应该是完全可行的,并且允许您开发令人兴奋的新功能而不必担心遗留代码。
【讨论】:
嗯, 我曾经在一家所有 Web 应用都是经典 ASP 的公司工作。 当决定迁移到 .NET 时,我们必须找到一种将 168(!) Web 应用程序转换为这个新框架的方法。 我尝试了当时所有可用的工具来执行此操作,但都失败了。
最好的方法是构建一个新的 Web 服务器并从头开始,这样您可以确保升级会很快发生,并且由于新旧集成而不会出现任何问题。您将能够选择保留哪些功能和视觉外观以及更改哪一个。 不要将您的时间浪费在将旧的 ASP 文件/站点升级到 NET 平台的自动工具上。到目前为止,没有一个工作正常。
最重要的是,如果您在后端有数据库,您将遇到从 Web 应用程序连接到它的问题。
【讨论】:
Microsoft 在 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/
【讨论】:
gmStudio 是一个全面的 VB6/ASP/COM 到 .NET 的升级工具。它可以读取、分析、解释、重写和重组(如 C# 或 VB.NET)单个页面+包含或整个站点。
自 2007 年以来,该技术一直在积极开发中,我们使用它来帮助我们重写从几百页到几千页不等的网站。
该工具被on MSDN here.认可
一个(旧的)演示视频是on ScreenCast here.(我真的需要更新这个!在此之前,如果你想观看最新的现场演示,请告诉我。)
还有很多要说的,请contact us if you are intrested.
免责声明:我为 Great Migrations 工作。
【讨论】: