ASP.NET MVC并非用于替代WebForms。它们是不同的技术,针对不同的目的而设计。
笼统地说我只使用其中一个而不使用另一个是一种非常狭隘的方式,因为您会忽略每种技术的优缺点。
微软致力于继续发展这两种技术,并且WebForms 4.0中将有许多新特性。
我将同时使用WebForms和ASP.NET MVC,但会根据当前项目的需求来做出正确的决策。
我已经使用它几个月了。 我非常喜欢MVC。根据可用时间,转换现有项目可能并不现实。就我所知,Web Forms 模拟了旧的VB人群的Windows窗体开发。而MVC并不假装自己是什么,并更紧密地遵循Http过程。
我看到MVC有一些优点:
1)可以使用单元测试进行测试
2)完全控制Html。我们制作网站,怎么能接受不能控制我们所有的html呢?
3)没有viewstate负担
4)没有控制树来浪费时间渲染
5)自动绑定表单提交后的模型
6)可以非常吸引人
还有一些缺点:
1)没有更多的Web控件(许多丰富的第三方控件都会消失)
2)开发速度较慢
3)学习曲线陡峭
4)仍处于Beta版(不过CTP很快就会发布)
对于我的新项目,是可以的。但不适用于当前的生产软件。
是的,尽可能有条不紊。
MVC将.NET引入了敏捷开发的最佳实践领域。它特别解决了关注点分离和耦合/内聚性的问题。它还让我们编写更可移植的软件,而不会创建对任何供应商特定引用或组件的依赖。
无论你读到什么公关材料,它毫无疑问地是WebForms的继承者,与WPF一起。
维基百科页面 在更新为Microsoft的MVC之前已经清晰明了。
假设你更喜欢ASP.NET MVC而不是Web Forms,那么对于一个正在积极开发/维护的系统来说,这是值得的。
它们可以并存,因此可以迁移应用程序的部分(新的或选择的旧的),并查看其效果。如果成功了,就继续进行。
然而,“全有或全无”的迁移可能会非常灾难性——在没有快速反馈的情况下投入大量资金是巨大的风险。
WebForms是用于丰富用户界面的
使用MVC或WebForms可以完成同样的任务。在一年后,基于MVC的丰富工具包将推出(如果你喜欢YUI、ExtJS等技术,它们已经存在了),这将使这种争论无效。
迁移您当前的项目
将现有的WebForms项目迁移到MVC上并没有太多意义。你能获得什么?但根据您的需求,对于新项目使用MVC可能非常有意义。
我已经使用ASP.NET MVC几个月了,相比Web Forms,我更喜欢它。但是,我不打算将我的现有项目迁移到MVC上,因为这对我来说没有太大意义。不过,所有新的ASP.NET项目都应该使用MVC进行开发,因为它是一个更好(也更灵活)的框架。
个人而言,我将ASP.NET MVC限制为轻量级前端网站。
但仍在使用ASP.NET WebForms用于强大的后台应用程序,以利用Web Forms的丰富自定义控件和其他一些不错的功能。
MVC 的另一个优点是 JavaScript(如 jQuery)的实现要容易得多,因此如果您计划使用大量 JS,则 MVC 可能是最佳选择。