【问题标题】:Classic ASP in ASP.NET MVC (C#)ASP.NET MVC (C#) 中的经典 ASP
【发布时间】:2009-03-25 20:46:52
【问题描述】:

我有一个想要(最终)转换为 ASP.NET MVC 的应用程序。我想做一个全面的服务升级(到 ASP.NET),但想使用当前的 asp 东西来运行当前的功能,这样我就可以在对新框架进行增量升级的同时升级小部件。该站点严重依赖于不太成熟的 VB6 DLL,因此我们最终也希望对其进行升级,可能会用 Web 服务替换当前功能。是否有快速修复或此任务是 3 个月 + 任务?另外,我确信之前已经考虑过,MVC 的美妙之处在于我认为有一种方法可以解决这个问题,尽管我不确定从哪里开始。转换此应用程序的最快方法是什么(大约 40 小时),我可以在其中进行小的配置更改并使其在 ASP.NET MVC 中工作?

【问题讨论】:

    标签: c# asp.net-mvc vb6 asp-classic


    【解决方案1】:

    简短的回答是……你不能。经典的 asp 和 asp.net 之间的差异相当大,不仅在语法上,而且在整体设计上。 MVC 不仅仅是与经典 asp 类似的实现,尽管它看起来可能是这样的。任何转换都需要时间、思想和努力才能使其完全发挥作用。

    不过,好消息是您可以在 SxS 中运行它们,因此您实际上可以在设置为 ASP.NET 或 ASP.NET MVC 站点的站点下运行经典的 asp 代码。因此,使用一些管道胶带,您可以将升级后的解决方案部分拼凑在一起。

    【讨论】:

    • 我不想暗示我认为它们无论如何都是相似的。谢谢你。请问,在并行选项中,有没有一种方法可以停止注册 VB6 DLL 并使其可热部署。
    • 据我所知,除非您重新编写它,否则您仍然需要注册 DLL(至少就经典 VB 代码而言)。使用 .NET,您可能能够摆脱创建互操作并在本地引用它,尽管这对依赖它的经典代码没有帮助。
    【解决方案2】:

    将您的 VB6 DLL 重写为 COM 可调用的 .NET 程序集。然后,您可以从 ASP 和 ASP.NET 中引用它。

    希望大部分繁重的工作都在 VB6 DLL 中。如果是这样,您可以根据需要开始将页面迁移到 ASP.NET MVC。你必须注意页面到页面的通信——比如会话和 Cookie。 Cookie 几乎可以按原样工作,但您需要将 Session 移动到 MVC 和 ASP 之间可共享的东西,例如 Sql Server。不幸的是,这需要将 ASP 中的 Session 调用重写为其他东西(可能又是一个围绕 .NET 组件的 COM 包装器)。不过,搜索和替换应该可以解决问题。

    至于这需要的时间线和工作量 - 这取决于您现有应用程序中意大利面条的数量、DLL 与 ASP 中的逻辑量以及您要迁移的页面数量。

    p>

    我不认为 40 小时是熟悉 .NET、MVC 和重写的合理时间 - 尽管我认为可能需要 2-3 个月。

    【讨论】:

    • 取决于开发人员、他们拥有什么样的培训资源以及他们需要如何“跟上进度”。我会将上限推到 6-8 个月
    【解决方案3】:

    我从事类似项目已经有一段时间了;我们有一个经典的 ASP 应用程序,并希望将其移至 ASP.Net(使用 WebForms)。我们一次做一个,如果我们要添加一个新页面,我们会在 .Net 中进行,并且只是在 .asp 文件和 .aspx 文件之间重定向用户。使用 MVC 应该没有什么不同。

    我们遇到的最大问题是安全性;该站点需要登录,并且会话当然不会在两者之间共享。我们通过将我们关心的会话位持久化到数据库中的表并通过查询字符串传递 GUID 来处理这个问题(我们只在登录时这样做一次,然后从数据库中删除记录以降低安全风险)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-05-05
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 2013-05-17
      • 1970-01-01
      • 2011-08-28
      相关资源
      最近更新 更多