C# 从ASP.NET WebForms迁移到MVC

C# 从ASP.NET WebForms迁移到MVC,c#,asp.net,asp.net-mvc,webforms,C#,Asp.net,Asp.net Mvc,Webforms,我读过很多问题和文章,指出从ASP.NET Webforms转换到MVC几乎是不可能的。然而,我认为我的情况不同 大约一年前,我愚蠢地在Webforms中开始了一个项目,但我所采用的方法(据我所知)非常类似于MVC。我已禁用表单验证,不使用任何回发,使用URL重写,所有页面更改都是加载ContentPlaceholder页面内容的AJAX请求(使用小技巧,覆盖RenderControl方法)。我也在单独的项目中使用了我自己的ORM和RESTful服务API,在网站中引用 现在系统运行得非常好,页

我读过很多问题和文章,指出从ASP.NET Webforms转换到MVC几乎是不可能的。然而,我认为我的情况不同

大约一年前,我愚蠢地在Webforms中开始了一个项目,但我所采用的方法(据我所知)非常类似于MVC。我已禁用表单验证,不使用任何回发,使用URL重写,所有页面更改都是加载ContentPlaceholder页面内容的AJAX请求(使用小技巧,覆盖
RenderControl
方法)。我也在单独的项目中使用了我自己的ORM和RESTful服务API,在网站中引用

现在系统运行得非常好,页面部分刷新很好,并且在进行ajax调用时url也发生了更改,因此当页面刷新时,看起来完全一样

现在有人告诉我,我需要为一个新的大项目学习MVC(但我必须先完成另一个项目),但我已经读了一些关于这个主题的书,并启动了一些Hello World应用程序,看来ASP.NET MVC的想法与我已经创建的几乎完全一样


StackOverflow还会建议不要将Webforms应用程序转换为MVC吗?除了最佳实践之外,转换为MVC还有其他好处吗?

我有一个非常大的旧ASP.NET WebForms应用程序(它最初是为.NET 1.1编写的!),并使MVC能够在其中并行工作。我一直在使用MVC编写新功能,并将旧的WebForms功能转换为MVC控制器和视图

我遇到了一些关于URL授权和在IIS集成模式下运行的小问题,但是一旦我理解了这些问题,它们就相当容易解决了。那么几乎不可能?当然不是

我无法告诉您是否值得花时间转换它,因为我不知道应用程序的大小、范围或性质,也不知道任何业务限制。然而,迁移到MVC对于简化开发和提高质量来说是一个相当大的好处(因为它更容易划分和单元测试)。更不用说,我在MVC中编写(或重写)的功能比WebForms等同物更干净、更快、响应更快

我很高兴将它从MVC v2移动到v3,并转换为Razor视图。我也会吗?如果我是你,我有时间,我会做的


下面是我发布的一个问题,概述了转换过程以及我在转换过程中遇到的一个更重要的问题

我最近将一个中型项目从WebForms转换为MVC。我不建议在你的第一个MVC项目中这样做,但一旦你掌握了窍门,就没有什么能阻止你(逐渐地)将WebForms应用程序转换为MVC

我注意到的一个主要好处是速度。通过摒弃viewstate、数据绑定和web控件的古怪特性,您将得到一个更快的应用程序

当然,还有一些更好的好处,比如可测试性和对生成的html的完全控制


WebForms和MVC共享相同的基本ASP.NET平台,因此它们并不像您所读到的那样不兼容。

您当然可以将WebForms“转换”为MVC,但这个过程将涉及大量的复制/粘贴/重写。在我看来,问题是“除了最佳实践之外,转换为MVC还有其他好处吗?”是这个问题其余部分的另一个问题。如果它工作得很好,不要重写它。@Erix-很多“有经验”的程序员都使用这个概念,我坚信这是错误的态度。如果我写了一些蹩脚的代码,可以快速工作,然后它会扩展,以后我可能会让我或其他开发人员使用相同的代码,如果我按照一定的标准重新编写,这将为我节省大量的时间和金钱。这个项目是一个个人项目,是一个相当大的网络,这是我职业生涯中最大的学习曲线。我在工作中学到的一切,我都回家实施了,甚至重新设计了这个项目,让它变得更好。时间不是这个问题,因为没有最后期限,我也没有为此得到报酬。有一件事(这一次!)似乎让我受益匪浅,那就是我喜欢重新编写轮子——所以我使用自己的ORM(这就是模型?),用户控件(视图和控制器?),登录/注册框架,RESTful API框架。我想,你会喜欢使用MVC。这真是一场爆炸。我从一开始就讨厌WebForms(但喜欢ASP.NET的体系结构),我感觉你在“重新发明轮子”的事情上。完全由用户控制生成的HTML会很好。我讨厌在我的用户控件中加入
覆盖字符串ClientID{get{return ID;}}