技术总奸

也谈ASP.NET Web Form与MVC

看了博客园里一篇关于Web Form与MVC比较的文章,感同身受,也写两句。

从技术层面上看,MVC应该是服务器端解决方案的最佳选择(这里强调服务器端解决方案,是为了区别于客户端方案 如纯AJAX客户端(如Exjs)、Silverlight、Flex)。微软做产品做技术一贯的原则就是简单易用,当初选择Web Form而非MVC可能就是这一原则指导下的产物。做产品,简单易用是王道,但做技术就未必如此。使用越简单往往导致扩展上的麻烦和自定义的缺失,比如服务器端控件。讲到这里就会有很多人争论“Repeater vs GridView”问题,其实“Repeter“所代表优点恰恰就是MVC的优点,而MVC绝不仅仅在于对HTML的完全控制,松耦合才是它的优雅之处。在实际应用中,webform的优势在于可以在别人的劳动成果之上(已有的第三方控件)继续自己的工作,而UI与业务逻辑的捆绑,以及layout的定制成本很快会在日常的开发维护中抵消前面的优势。写出效率较高的webform页面程序需要开发人员有着较为丰富的经验,要对页面或控件的生命周期有较深的理解。服务器端控件在提供了方便的同时,也提供了很多黑盒子,同等学习成本下,webform下很容易写出一个效率差的应用,而mvc下相对不会,就好象在一个正确的框框里你永远是正确的,在一个错误的框框里你肯定永远是错误的,那么在一个模糊的框框里,你可能就比较容易犯错误。微软现今终于推出了自己的MVC框架,虽然官方的解释说是应社区的广泛要求,并坚持称webform与mvc是并肩的两个选择,但我更愿意认为这是微软承认了webform的诸多先天缺陷,不得已而回归正途,当然,这都是我的个人揣测^_^

本文使用Blog_Backup未注册版本导出,请到soft.pt42.com注册。

posted on 2008-11-09 09:03  阿福  阅读(190)  评论(0编辑  收藏  举报