【问题标题】:Converting ASP to ASP.NET - Easy or hard?将 ASP 转换为 ASP.NET - 简单还是困难?
【发布时间】:2024-01-06 07:49:01
【问题描述】:

我有一个客户,他的网站是用 ASP 完成的……他们想为网站添加很多额外的功能,但我认为继续用 Classic ASP 开发是不值得的,他们应该迁移到 . NET 或 PHP。

我对 .NET 了解不多,所以想知道 ASP 代码是否可以完全转换为 .NET 代码,如果可以的话,需要付出多少努力?

编辑:这是怎么回事? http://msdn.microsoft.com/en-us/library/ms973813.aspx

【问题讨论】:

  • 我认为,如果您完全重新编写网站,您的情况会更好。如果您不想这样做,我建议您将旧网站的一部分部分迁移到与旧 asp 有 90% 不同的新 asp.net 技术。
  • 我认为您的第一个问题应该是“我对 .NET 了解不多”。
  • @xanatos:公平点哈哈......如果我要重建网站,我可能会用 PHP 来做。 ;)

标签: asp.net .net asp-classic


【解决方案1】:

我对 .NET 了解不多 想知道 ASP 代码是否可以转换 到 .NET 代码 & 如果有的话 投入精力了吗?

两者之间几乎没有任何共同之处。您很可能正在考虑完全重写以进行升级。真正将其保留在 Classic ASP 中将开始阻碍他们扩展站点的能力。 Visual Basic 6(非 .Net)不再存在(假设核心逻辑是用编译的 VB dll 编写的)并且不会在 x64 IIS 实例中运行。

【讨论】:

  • 是否可以在 ASP 经典会话和 ASP.NET 会话之间共享状态、登录会话以及不能共享的内容?一次迁移一个站点并设法将其保持在一起是否合理?
  • 有两种方法可以在两者之间共享会话,但我相信这涉及手动将信息发布到 asp.net 和经典 asp 站点。自从我不得不做这样的事情已经有一段时间了,所以我的记忆可能有点模糊,但我知道有办法让它发挥作用。
  • 我最近的一个客户运行了一个 ASP/ASP.NET 解决方案,它运行良好。他们仍然有 ASP 中的登录页面和 ASP.NET 中的其他内容,因此会话状态是可共享的,这是肯定的。
  • 当然可以在 x64 iis 实例上运行 vb6 dll
【解决方案2】:

ASP.NET 与 ASP 大相径庭。然而,我不同意其他人似乎在说什么。

2002 年,我将一个大型 ASP 网站转换为 ASP.NET。如果您要从 VBScript 转到 VB.NET,那么实际上有很多遗留功能被继承下来。如果您不想,您甚至不必采用 ASP.NET Web 表单常见的代码隐藏架构。您甚至可以像使用 ASP 一样使用经典的 <!--#include--> 文件。

我的意思是,在迁移到 ASP.NET 时会出现很多问题。例如,数据访问就完全不同了。但也有很多可以结转的。

所以你有两个选择:

  1. 深入研究,看看有什么变化与最小的变化。这听起来可能不明智,但这是我所做的。借助 Visual Studio 帮助您解决编译时错误,您应该能够以这种方式更快地完成项目。
  2. 从头开始重写新的 ASP.NET 方式。这将使您可以花更多时间计费,并使您的应用程序更具前瞻性。

老实说,我今天更喜欢选项 #2。但我认为您应该知道转换是可能的(并且总体上需要更少的工作)。

【讨论】:

    【解决方案3】:

    您无法成功地将 ASP 网站转换为 ASP.NET 或 ASP.NET MVC 网站。

    但是,您可以重复使用 HTML 和图像等,即使它们可能已过时。

    【讨论】:

    • 我想这是一个方法,但是如果你保留 ASP 网站的结构和逻辑并让它运行,你最终会得到一个非常混乱的代码库。你最好重写整个事情。如今,您甚至可以找到非常完整的网站,您可以从这些网站开始构建,例如 Orchard CMS。
    【解决方案4】:

    他们一点都不像。您必须用新语言手动重新编码。

    这听起来可能很难做到,但值得学习一门现代服务器端语言。

    在这种特定情况下是否值得,取决于相关网站的复杂程度。

    【讨论】:

      【解决方案5】:

      查看 this Microsoft's presentation,了解如何将 ASP 应用程序迁移到 ASP.NET 2.0。

      总而言之,这并不简单,尽管他们提出了一些“如果你时间不够用”的迁移策略。

      【讨论】:

        最近更新 更多