转几个关于ASP.NET MVC的讨论(英文)
ASP.NET MVC正在流行,有些人在犹豫是不是要学习或使用这个框架,而另一些人已经在项目中开始使用了,并且在使用中发现了MVC框架的一些问题。
Rob Connery, SubSonic的作者,写了一篇You should learn MVC,谈到了你应该学习MVC的7个理由:
1. 可测试2. 完全控制html
3. 可扩展
4. 让你有更多的思考
5. 可以方便的使用各种javascript库
6. 可以学到新的东西
7. It's Fun
而Joe Brinkman,则针对Rob Connery的这篇post,写了一篇针锋相对的Still waiting for a GOOD reason to learn MVC。在开篇阶段Joe几乎逐条反驳了Rob的观点,还说了一些MVC能做到的,WebForm也能做到之类的话,让人以为他是在反对学习MVC。可是后来他却话锋一转,谈到了你为什么应该学习MVC,原来他是认为Rob所说的理由不够好,这也是为什么标题中“GOOD"是大写的原因。
说完了为什么应该学习MVC,再说说MVC还有什么问题。
在这篇My Quick Oversimplified ASP.Net MVC Pros and Cons中,作者说了一些MVC的优点和问题,他认为ASP.NET MVC目前还是半成品,Model在框架中的缺失,以及羸弱的HtmlHelper方法等问题,使得MVC使用起来很费力气,需要自己定制太多的东西。
而在这篇Is ASP.NET MVC a half-baked solution?中,作者提出了类似的观点,认为ASP.NET MVC相比于RoR等MVC框架在Model这一块缺少支持,自己需要做大量的工作,在其他方面也需要集成很多的开源工具/库才能满足他的需要。
有意思的是,在comment一栏中,有一位曾经做过RoR的反过来说他更喜欢MVC的这种Model与框架结合不紧密的方式,这样他可以自己选择Model的实现,而不是像在RoR中那样,需要改动框架的核心代码才能实现。看来萝卜青菜各有所爱,喜欢什么的都有啊。