我是一名ASP.NET程序员(Webforms),我应该转向MVC吗?

7

我喜欢对底层的控制(采用MVC方式),但是我也很懒,不喜欢写大量的JavaScript GUI代码。 我应该切换到MVC吗? 谢谢, Nestor


如果你喜欢掌控,那么MVC是你的选择。如下所述,jQuery会大大降低你在Javascript中编写的复杂性和代码行数。 - Chuck Conway
3
请注意,jQuery可能会减少您编写的代码行数,但不一定会减少在浏览器中执行的代码行数。这可能会对性能产生影响,特别是在早期(<8)的IE版本中。 - Richard Ev
5个回答

8
这要看情况。如果您擅长编写Webforms应用程序,已经有许多ASP.NET服务器控件可供使用,并且您的应用程序不需要太多精细的代码(即:代码后台),那么Webforms可能是更好的选择。
另一方面,如果您喜欢具有高性能和清晰架构的应用程序,需要对标记具有精确控制力,并希望您的应用程序可测试,则ASP.NET MVC是更好的选择。
ASP.NET MVC有许多易于使用的JQuery小部件可用,因此您对JavaScript的不喜欢不应该阻碍您。但是,MVC有一个学习曲线,因此如果您不愿意学习新事物,我建议您坚持使用Webforms。

1
大多数情况下(+1),但需要注意的是,在小型到中型企业内部网络中,如果视图状态是一项资产而不是负担,则WebForms的性能优于MVC。 - Joel Coehoorn
1
如果你不喜欢学习新事物,那么你需要开始寻找新的职业,软件开发就是关于学习新东西的。 - Chuck Conway
@Joel 对于ViewState和内部网络性能的观察很好。 - Chuck Conway

7

是的,你应该这样做。WebForms 是一个巨大的泄漏抽象层,试图让你相信编写 Web 应用程序就像编写 Windows 应用程序一样,这是错误的。

首先,处理 PostBack 是一件很痛苦的事情。它会在 HTML 中生成大量垃圾代码。


1
+1 我完全同意。我预测Web Forms很快将被视为传统代码。 - Chuck Conway
1
PostBack让我浪费了很多很多时间去解决烦恼和调试。最初,我发现在页面内编写代码让我回到了旧的ASP时代,但是一旦你克服了这个问题,并且只返回需要很少UI编码的数据,它就是最好的选择。而且没有页面生命周期的限制,例如必须重新创建所有控件才能获取它们的值! - griegs

2
ASP.NET MVC绝对值得了解!您将完全掌控您的html,学习许多好习惯,并探索神奇的jquery世界。
最后试一试吧……定期学习新知识是很好的。

1
如果您正在编写功能复杂的网站,其中所要实现的功能与经典的Windows应用程序相似,那么我认为WebForms可能是最好的选择。ViewState通常被滥用而不顾后果(如大量回传等)。然而,大多数WebForms控件的质量以及最近新增的ListView控件使其成为一个非常高效的平台。
另一方面,如果您正在与设计团队合作,他们正在指定要呈现的确切HTML和实际功能较简单,则MVC可能是一个很好的选择。MVC还会引导您沿着默认更适合可测试性的编码模型进行开发。有很多jQuery插件可以提供丰富的用户界面特性,无需冗长的编码,但我使用过的一些插件存在一些质量问题。此外,大多数时候我并不需要水印或日历控件的“选择” - 我只想要一个可正常工作的控件!
总结起来 - 我认为这取决于您是在编写一个网站还是一个网络应用程序。

0
你也可以考虑使用MVP(Model View Presenter)模式:它提供了与MVC相同的逻辑和表示分离,同时仍允许您使用ASP.NET服务器控件。 "Model View Presenter",MSDN杂志上的文章。
Model-View-Presenter Pattern,来自MSDN上Web客户端软件工厂文档。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接