首頁 培訓計劃 培訓課程 企業內訓 學員論壇 技術文章 成功案例 師資簡介 關于我們 在線留言  
行業新聞
ASP.NET開發人員需要學習ASP.NET MVC么?

文章來源:/www.kuqin.com 作者: 發布日期:2009-12-25
打 印】【關 閉

最近幾周,在博客、Twitter和論壇上如火如荼地展開了一場討論。討論的內容是:開發人員是否應該使用或學習ASP.NET MVC。從“不推薦學習”到“所有ASP.NET開發人員都應該學習”,各種不同的觀點層出不窮。InfoQ對其中部分討論內容進行了總結。

Rob Conerey(SubSonic之父,目前是微軟ASP.NET MVC團隊的一員)解釋了為什么開發人員應該學習ASP.NET MVC。在文章的開始,他稱WebForms是一個“巨大的謊言”。

WebForms是個謊言,它是一個被種種謊言和欺騙所包圍著的抽象機制。你對WebForms所做的一切都與Web無關 - 它幫你做了本該你自己做的事。

朋友們,這可是件大事(至少對我來說):你工作在謊言中。Web是“無”狀態的,它依賴一種叫做HTML的東西,并使用另一種叫做HTTP的東西通過電纜將HTML發來發去-你需要了解它、熱愛它并在骨子里感受它。

Rob列舉了7個使用ASP.NET MVC的理由,或者用他的話說“避免被稱為怪人的7個理由”:

  1. 可測試性
  2. 完全控制HTML
  3. 可擴展
  4. 促使你思考
  5. 易于客戶端Javascript編程
  6. 可以學到新的東西
  7. 有趣

然后總結到:

結論:Web編程再一次充滿了樂趣,至少對我和我的貓來說。當然這又是一個關于WebForms和MVC的比較,但是更直接一些。你幾乎無法找到不學習MVC的理由 - 當然,對你來說可能還是有一兩個理由,促使你繼續使用WebForms。

Joe Brinkman(DotNetNuke的全職開發人員)迅速的做出了回應,批評Rob沒有找到一個“好”的學習MVC的理由,并列出了他自己的:

  1. 學習一種不同的架構
  2. 強迫你熟悉HTML和HTTP
  3. MVC促進了單元測試
  4. MVC將使你意識到你對WebForms有多少是想當然的

Joe總結道:

你真的應該試一試MVC,但不是因為Rob所列舉的那些原因。你應該嘗試,MVC是因為最終你會學到一些東西,它可以使你成為更好的Web開發人員,這與你最后選擇了哪個平臺無關。

Rob和Joe基本上都同意,ASP.NET開發人員應該學習ASP.NET MVC,但是對于學習的原因還有爭議。然而Karl Seguin持有不同的觀點,他質疑道:“ASP.NET MVC是一個半成品么?”:

能夠以更清晰的方式構造復雜的系統是一個好的開始,但是對于一般的Web開發,特別是與其他平臺比較來說,ASP.NET MVC還是要落后很多(Perl是我能想到的唯一一個更糟糕的)。

最大的問題在于,它只是一個VC - 沒有對Model的考慮、支持和相關的工具。當你將自己寫的數千行repository/dal/linq/nhibernate代碼與其他MVC平臺(通常只需要你的model繼承一個類)比較時,你顯然已經在生產力方面處于嚴重的劣勢。但是深層次的影響更糟 - 你失去了controller和view上的內聚性,沒有任何方法可以從Model的屬性來自動生成HTML標簽或者是客戶端驗證。

……

當然ASP.NET MVC也有好的方面,它的體系結構是可重用的,這使得像S#arp Architecture這樣的項目得以實現。然而我仍然懷疑,這樣的項目是否真的能夠比集成的更好的框架更成功。

Jeremy D. Miller(FubuMVC的創造者之一)列出了一些正面的和負面的因素:

負面的:

……除非你愿意卷起袖子構建你自己項目的體系結構來充當“M"、獲取更好的測試性、擁有更簡單的視圖同步機制以及更高效的Html helpers,否則ASP.NET MVC的生產力并不高……

正面的:

使用這個MVC框架很簡單和直接,還可以根據需要進行定制。

Jeremy總結道:

我覺得ASP.NET MVC最終會是一種比“被種種謊言和欺騙所包圍著的抽象機制”更好的Web程序開發方式,但是現在它僅僅適合那些樂于嘗鮮的人。

Jeffrey Palermo(目前正在撰寫“ASP.NET MVC in action”)發表了“你不應該使用ASP.NET MVC, 如果”:

  • 你對多態不是“非常”的熟悉
  • 你不喜歡在這個框架上構建應用程序
  • 你依賴于很多第三方的UI控件
  • 你不喜歡使用開源的程序

他繼續說道:

ASP.NET MVC不是一個“束縛你手腳”的框架,也不是一個“ASP.NET入門”框架,你可以完全控制所有的東西。在Web的世界里,UI還沒有標準化到可以使用框架來控制,并以一種“標準”的方式來生成。相反數據訪問已經可以了,我們知道我們需要創建、讀取、更新、刪除、級聯存儲、延時加載等等。很多ORM都支持這些操作,很多開發人員放棄了對數據訪問的完全控制,因為這和ORM(Hibernate/NHibernate)工作的方式非常相似。

雖然還有其他很多人也表達了自己的觀點,但是InfoQ認為本文已經覆蓋了絕大多數對于學習/使用ASP.NET MVC的觀點。

查看英文原文: Should ASP.NET Developers Learn ASP.NET MVC?
本文來自:http://www.infoq.com/cn/news/2009/05/should-devs-learn-aspnetmvc

打 印】【關 閉

上一篇:直接調用VS.net2005中的配置界面
下一篇:C#動態特性的更多消息
相關新聞
版權所有©威課網 粵ICP備13058727號