ASP.NET MVC 實務精要 - 入門第一課

給 Web Forms 開發者


ASP.NET 的 Web Forms 開發模式掀起伺服器動態網頁的開發革命,內建伺服器控制項與邏輯程式碼的分離設計,大幅降低ASP.NET的開發門檻,開發人員利用伺服器控制項快速配置網頁,並且將邏輯程式碼分離在獨立的類別檔,最後依賴ASP.NET將所有的內容轉換成對應的HTML畫面,傳送至前端瀏覽器進行呈現。

Web Forms 直覺式的開發設計,雖然減輕了開發人員的負擔,卻犧牲了網頁設計的彈性,當網頁功能的需求愈來愈複雜,Web Forms設計模式難以滿足開發的需求,於是外掛技術 Silverlight因應而生,為 ASP.NET 的發展開闢出一條全新的方向。

近年 Web 應用的發展,除了雲端科技的普及,行動裝置取代 PC 成為使用者接觸 Web應用的主流,外掛技術因為安全與資源耗用的問題,被摒棄在行動平台之外,Web 開發重新聚焦於最根本的網頁技術-HTML、JavaScript 與 CSS ,而  MVC 重新打造 ASP.NET 專案的開發架構 ,有助於開發人員透過純粹的 HTML 技術打造現代化的 Web 應用。

因應行動網路的來臨,網頁介面的設計早已非 Web Forms 預先配置的標準控制項所能應付,更遑論打造支援敏捷回應的行動操作介面,ASP.NET開發人員跳脫傳統 Web Forms 開發模式跳、借重 MVC 架構迎接新時代的挑戰已是必然的選擇。

|ASP.NET MVC 原理初探

MVC是Model-View-Control的縮寫,它是一種開發框架,套用此種框架開發Web應用相較Web Forms 並不是那麼直觀,卻更適於以HTML技術為視覺介面的現代Web應用。

除了MVC架構本身,實際的Web應用開發同時涵蓋了Entity Framework資料模型、甚至HTML5等相關技術,接下來我們將從最基礎的ASP.NET MVC專案開始,逐步討論如何透過ASP.NET MVC整合相關技術,建立Web商業應用程式。

開始利用ASP.NET MVC開發Web應用程式之前,首先必須理解的第一件事是控制器。
當使用者於瀏覽器傳送一個需求(例如輸入一段網址、點了一個超連結或是按下表單的傳送按鈕),這個需求從瀏覽器跨越網路傳送進伺服器,伺服器上ASP.NET MVC的控制器程式會負責接收這個需求並進行處理,最後回傳處理結果。


控制器在接收到網路傳送過來的要求時,可能進行各種不同的運算,最簡單的就是回傳要求的目標網頁,除此之外,在回傳結果之前通常還會進行其它預先指定的運算,例如資料存取等等。

一旦牽涉資料的存取,控制器會進一步透過資料模型進行操作,控制器與資料模型負責 ASP.NET最重要的伺服器端運算。



伺服器回傳的運算結果可能是使用者需要的網頁內容,或是要更新的部份資料,而這些結果最後以轉換成HTML網頁形式傳送至使用者電腦上,並由瀏覽器呈現。



控制器是MVC中的C,V表示所要呈現的網頁內容,M 則是資料模型,與資料的存取作業有關,V與M會根據需求與控制器協同運作,而 MVC是以控制器(C)為中樞的 Web 應用程式開發模式。
因為控制器的特性,網頁的開發從原來以網頁為目標轉變以控制器為目標,這是 Web Forms 與 MVC 最重要的差異,考慮以下的圖示:


在傳統Web Form 的架構下,ASP.NET 根據指定的網址,執行伺服器中對應的網頁檔案,最後的結果轉換成 HTML傳送至瀏覽器解譯,開發人員針對所要提供的功能,逐一建立對應的網頁。
MVC網址對應的不是網頁而是控制器檔案,此檔案包含所需的運算邏輯程式碼,並在接受瀏覽器的要求之後,進行邏輯運算,回傳運算後的結果。



沒有留言: