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中那樣,需要改動架構的核心代碼才能實現。看來蘿蔔青菜各有所愛,喜歡什麼的都有啊。