我正在尝试将项目从经典 ASP.Net Web 表单迁移到 ASP.NET MVC。
虽然我已阅读http://www.codeproject.com/Articles/38778/ASP-NET-WebForms-and-ASP-NET-MVC-in-Harmony。我对代码结构、库和路由应该如何完成有一个基本的想法。
供您参考,我现有项目的范围约为 400 页和 300 个表格。
我有两种方法:
有人有类似的经历并建议正确的开始方法吗?
对于这次彻底的改造,我可能还会瞄准最新的技术 - .NET Core 和 MVC6,通过采用这些技术我会拥有额外的优势,还是需要解决一些障碍?
如有任何建议和意见,我们将不胜感激。干杯。
微软在这个问题上有点嘘嘘,但 WebForms 引擎可能永远不会进入 ASP.NET Core。有人可能会认为 MS 正在等待社区是否需要一个端口,但我认为他们正试图谨慎地终止它(不像 Silverlight)。
为什么?因为从长远来看,它被证明是一个坏主意,一开始很容易使用,但掌握起来极其复杂(因为视图状态和页面生命周期),并且倾向于允许普通开发人员构建非常繁琐的应用程序(在法语中,我们比如说蒸汽工厂)。而且它不太适应现代 Web 开发(Ajax、单元测试、IoC)。他们试图通过一些调整来修复它,但整体架构并不适合这种事情。相比之下,MVC 真是一种享受!
回答你的问题,将WebForms迁移到MVC实际上是不可能的,因为它们是完全不同的架构,当然架构是应用程序所在的架构,所以如果你改变它,你不妨重写它刮擦。
对您有很大帮助的是,如果您的应用程序分为多个层(业务、数据访问、UI)。如果情况并非如此,您可以首先执行此操作,将 UI 项目与其余项目正确分离。那么您只需必须重写 ASP.NET 项目,而不是其余的。
我想与 StackOverflow 社区分享一些有用的资源,以防您在决定做什么时遇到困难:
给你:
我发现了以下链接
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,而无需完全重写。
我还没有尝试过任何生产应用程序。仍然尝试了一些示例页面。你可以试试这个。
我同意,在许多情况下,重写广泛使用 WebForms 的 ASP.NET 应用程序可能不会提供任何商业价值。
因此,我们决定利用我们在 ASP NET WebForms 方面的经验,为 ASP NET Core / .NET 6.0 开发高度兼容的 WebForms 端口。 我们在自己的基于 ASP NET WebForms 的产品和项目以及可授权组件库中使用该解决方案。
所以 Forms 仍然可以使用,您可以专注于 .NET CORE/6 迁移。
这里有一个 WebForms 到 .NET 8 的开源端口: github.com/simonegli8/WebFormsForCore.
使用此库,您可以直接在 .NET 8 中运行现有的 WebForms 项目。
这里有一个视频教程,介绍如何将示例 WebForms 站点转换为 .NET 8。