【问题标题】:Best practise to migrate Web Forms to ASP.NET Core MVC将 Web 窗体迁移到 ASP.NET Core MVC 的最佳实践
【发布时间】:2016-10-30 04:11:42
【问题描述】:

我正在尝试将项目从经典 ASP.Net Web 窗体迁移到 ASP.NET MVC。

虽然我已经阅读了http://www.codeproject.com/Articles/38778/ASP-NET-WebForms-and-ASP-NET-MVC-in-Harmony。我对如何完成代码结构、库和路由有一个基本的想法。

供您参考,我现有项目的范围约为 400 页和 300 个表格。

在我的头上,我有两种方法:

  1. 从拉伸开始,重写整个系统 - 显然这需要大量工作并且需要很长时间。对现有系统进行的任何更改都需要对新系统进行重复更改。
  2. 每个迁移一个页面 - 我仍然要重建整个核心库(用于访问数据库),并逐个迁移页面。为此,我假设有两个核心库(新的和旧的)同时运行,不同的页面连接到其中一个。

有没有人有类似的经验并建议一个正确的开始方式?

对于这次彻底的改造,我可能还会针对最新的技术 - .NET Core 和 MVC6,如果采用这些技术,我会获得额外的优势,还是需要处理一些障碍?

感谢任何建议和意见。干杯。

【问题讨论】:

  • 只是好奇,你最后做了什么?我处于类似的位置 - 旧版 WebForms 应用程序。我想将其转换为 MVC/.Net 核心。
  • @costa 我在两家公司的三个系统上有过类似的经验,最终完全重写。考虑了维护现有系统的稳定性并最大限度地降低开发复杂性。
  • 有趣。对我们来说,重写整个应用程序不是一种选择。我们将不得不逐步将页面转换为新技术,即您帖子中的选项 2。您是否迁移到 .Net 核心或 MVC?我不愿意更新到 .Net Core。人们似乎遇到了问题。
  • .NET Core 将是您希望从开源和跨平台中受益的方向。祝你改写好运,也可以考虑建立一个新系统并桥接每个页面。
  • 现在您将完成此迁移。我正在寻找相同类型的迁移并找到 DotVVM 和 Blazor。现在你可以更好地为我提出一些建议。

标签: asp.net asp.net-mvc webforms migration


【解决方案1】:

Microsoft 在这个问题上有点,但 WebForms 引擎可能永远不会进入 ASP.NET Core。有人可能会认为 MS 正在等着看社区是否正在呼吁一个端口,但我认为他们正试图谨慎地扼杀它(不像 Silverlight)。

为什么?因为从长远来看它被证明是一个坏主意,一开始很容易使用,但掌握起来非常复杂(因为视图状态和页面生命周期),并且倾向于让普通开发人员构建非常乏味的应用程序(在法语中我们比如说蒸汽工厂)。此外,它对现代 Web 开发(Ajax、单元测试、IoC)的适应性也很差。他们试图通过一些调整来修复它,但整体架构并不适合这种事情。相比之下,MVC 是一种享受!

要回答您的问题,实际上不可能将 WebForms 迁移到 MVC,因为它们是完全不同的架构,当然架构是应用程序所依赖的,所以如果您更改它,您不妨重写从头开始。

如果您的应用分为多个层(业务、数据访问、用户界面),那么对您有很大帮助。如果不是这种情况,您可以从这样做开始,将 UI 项目与其他项目正确分离。那么您只需必须重写 ASP.NET 项目,而不是其余的。

【讨论】:

  • 感谢您的信息。对了,似乎没有一个理想且妥协的选择,我们可以进行迁移,重写可能是一种方式。
  • 遇到同样的问题,感谢您确认我的想法。
  • 业务逻辑和数据访问(Entities DB First)可以原样传输吗?
  • 我想与 StackOverflow 社区分享一些有用的资源,以防您在决定做什么时遇到困难: - 现有 Web 表单应用程序的现代化 - 迁移到 MVC 或 Core - 或者是否在 Web Forms、MVC 和 Core 上开始一个新项目。给你:telerik.com/blogs/…
【解决方案2】:

我想与 StackOverflow 社区分享一些有用的资源,以防您在决定做什么时遇到困难:

  • 现有 Web 表单应用的现代化改造
  • 迁移到 MVC 或 Core
  • 或者是否在 Web 窗体、MVC 和 Core 上启动一个新项目。

给你:

【讨论】:

    【解决方案3】:

    我遇到了以下链接

    https://www.youtube.com/watch?v=CZuqMrWSano https://www.dotvvm.com/blog/59/Modernizing-ASP-NET-Web-Forms-applications-with-DotVVM

    DotVVM 包帮助我们将 ASP.Net Web Forms 迁移到 ASP.NET Core 而无需完全重写。

    我还没有尝试过任何生产应用程序。仍然尝试了一些示例页面。你可以试试这个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-05-27
      • 1970-01-01
      • 2010-09-15
      • 2015-08-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多