對於習慣 Web Form 的開發人員來說,MVC 的提出是無法接受的,這等於叫我們再回到 ASP(沒有 .NET )的時代,你無法使用目前以控制項為基礎的 Web Form 機制,特別是這個機制又是當初 ASP.NET 能夠異軍突起,改變整個網頁開發習慣的革新之一。
網友 Alice 在「MVC … 或許將成為 ASP.NET 開發主流」這篇文章裏面給了一則留言,這讓我想要再提出一些想法。
「沒搞頭啊, 跟著潮流走容易迷失方向, Java 推 MVC 那麼久了也沒搞出個什麼玩意 …」
首先,MVC 不是一種潮流,它存在很久了,一種舊的設計樣式,為何 ASP.NET 會在 Web Form 廣為接受之後,再度被提出甚至發展出 ASP.NET MVC ,這一定有原因 …
再來, MVC 沒有大放異彩一個很重要的原因,在於它的威力,剛好在以網頁為基礎的 Web 應用程式開發時才足以顯現出來,這也是為何 Web Form 成熟之後,反而被 ASP.NET 開發團隊採用的主因之一,當然,一開始個人對於 MS 提出與 Web Form 機制背道而馳的 MVC 相當斥之以鼻,一直到最近撰寫新書的過程中才深深體會,自己終究是後知後覺之輩,完全就不是 MS 裏面那些天才的等級。
對於習慣 Web Form 的開發人員來說,MVC 的提出是無法接受的,這等於叫我們再回到 ASP(沒有 .NET )的時代,你無法使用目前以控制項為基礎的 Web Form 機制,特別是這個機制又是當初 ASP.NET 能夠異軍突起,改變整個網頁開發習慣的革新之一。
回頭想想,ASP 開發人員當初也無法接受 ASP.NET 控制項,它難以控制,特別是實作複雜功能的 GridView 之類的大型控制項。
對於 ASP 開發人員來說,實作視覺化介面很簡單,只要 Response.Write 寫出需要的 HTML 標記即可,這種作法還能讓你 100% 的控制前端 UI ,儘管在生產效能上比較不經濟 ...
好吧,ASP 開發人員可以接受 ASP.NET ,因為它確實比較容易開發,但是 Web Form => MVC ,要開發人員重新回到使用 HTML標記的世界,怎麼說都行不通 ,況且因為 Web Form 的特性,導致 ASP.NET 往發人員早已習慣了直接透過 C# 處理網頁的操作,而不是網頁本身真正的 HTML 與 JavaScript Code
然而真實的世界是,HTML 與 JavaScript Code 才是組成網頁真正的元素,只是微軟幫我們處理掉這一層了,所以很多 ASP.NET 開發人員會發現,當你要精細的控制網頁時,還是得透過手動處理 HTML 與 JavaScript,既然怎麼樣都躲不掉,乾脆一開始就學習直接從核心駕馭網頁更為單純一點,未來,從手機、電子書到平板,各種行動裝置將逐漸取代PC,成為人類使用網路的另外一種選擇,在那樣的世界來臨時,網頁將扮演至為關鍵的角色,而在那個時代,即便一般的商業系統,都必須考慮相當精細的網頁操作,就如同 WinForm 一般。
例如最傳統的庫存管理,你必須提供一個網頁實作的平板專用介面,可以讓工作人員直接在平板上庫存盤點,並且即時將資料送回總公司的伺服器,例如餐廰的即時點餐介面,會在服務人員點完餐直接傳送菜單給廚房與總公司伺服器記錄客戶的口味與用餐習慣,髮廊的客戶髮型即時配對模擬系統,甚至急救行動醫療系統…這些在 PC 時代還沒有出現或是還很笨拙的應用程式介面,很快的都會在行動裝置上現身, 而這些介面為了免去安裝與擺脫裝置的限制,將大量以網頁的型式呈現,屆時,無法直接透過 HTML 與 JavaScript 設計對開發人員來說將會是一場惡夢 …
當然,沒有完美的解決方案,對於現有的開發人員,處理目前的工作是最重要的,未來的事就交給未來吧,然而,如果是學生,那很好,你最大的武器就是時間,沒什麼好考慮的,直接學就對了,準備進入市場的新鮮人或是那些已經身為主管,肩負公司未來發展與技術評估重任的主管們,留意 MVC 是有益無害的, MVC 不是一種讓你用了就能如何的技術,也不是一種流行未經驗證的技術詞彙,它只是一種早已被提出來,甚至已經老舊的應用程式開發方式,一種能夠讓你更從容應付未來的方式 ~ :)
這一篇文章,著重在討論 MVC 直接透過 HTML 介面對 Web 開發影響的問題與個人觀感,當然,更進一步的,關於控制與模型這兩塊,利用它取代目前的 Web Form 設計模式還需要再談,下一篇見 …