我正在使用ASP.Net WebForms开发工业项目。 我们认真考虑将应用程序切换到ASP.NET MVC。
这需要一些时间,所以您认为ASP.Net WebForms是一种不好的做法,转换到MVC所花费的时间会在以后获得吗?
答案 0 :(得分:8)
WebForms,如果使用适当的设计模式和实践进行编码,则非常好。如果满足下列条件之一,我只会投资转换到MVC:
目前的表现严重不足。在这种情况下,重写可能是不可避免的,并且切换到MVC(这可能会迫使您对问题进行适当的分离)可能是一个不错的选择。
由于当前的解决方案处于无法维护的状态,您期望执行重大升级。在这种情况下,切换也是一个合理的选择。
通常,您可以在WebForms和MVC中编写编写良好且编写得很好的应用程序(尽管我说MVC使得编写不良应用程序稍微困难一些。)如果您有一个可接受的可执行和可维护的WebForms应用程序,不要浪费你的美元转换它。
答案 1 :(得分:7)
我是一位热心的MVC。
当WebForms出现时,我是唯一一个说“皇帝没穿衣服”的人,因为我不明白ViewState如何扩展,以及将JS指令从代码隐藏发送到前端的噩梦。尝试将旧的WinForms方法引入Web世界是一种糟糕的方式,而MVC是一个真正的祝福,因为它是一种更好的Web开发方式。
话虽如此,正如@dlev所说,只有在遗留代码库不佳和/或使迁移时间得到回报的长期计划方面有真正的理由时,才应将应用程序迁移到MVC。
答案 2 :(得分:2)
关于WebForms的最好的事情是:
如果您打算制作一段时间处于活动状态的应用程序,并且您不介意学习更多关于Web的知识,那么我认为MVC是一种更好的方法。
切换现有项目是不同的,因为预先有工作和不确定性。如果将来仍会开发这个项目,我建议进行迁移,但要零碎地进行:您不必一次转换所有现有页面。您可以使用MVC创建新页面和流,在WebForms中保留旧页面和流程,并逐个更改它们。您甚至可以在WebForms页面中呈现MVC部分视图,并在MVC视图内部控制WebForms(没有viewstate,这意味着没有服务器端交互的控件)。
我在一个大型项目上完成了这项工作并且非常成功:我们没有结束所有WebForms页面的切换,因为其中一些从未被触及过。页面需要工作的那一刻,也是时候转换它了。
答案 3 :(得分:2)
您可能还想查看Webforms MVP(Model-View-Presenter)。 http://webformsmvp.com/
这是一种更好的Web表单方式,因此逻辑可以轻松进行单元测试等。如果您无法完全切换,这可能是一个很好的折衷方案。
答案 4 :(得分:0)
另一件需要考虑的事情是,您的项目时间表是否具有足够的灵活性以允许额外的时间将您带入学习MVC的水平,这意味着您可以正确地完成此项目?如果你去学习就有风险,你会想要回去修复你在开始时编写的代码,现在让你感到畏缩。
另一件事是您现有的应用程序可能已部署和已经使用了X的时间量?这表示错误修复的X时间量&用户的可用性测试(即使他们没有意识到他们一直在做的事情)。你现在要把所有这些扔出去产生一大堆新bug。当然,一些修复&从旧应用程序中吸取的经验教训可以继续使用。但是在进行任何完全重写之前,你需要考虑到这一点。
西蒙