MVC模式是一個大家很熟悉的設計模式,微軟的asp.net mvc framework是給asp.net web forms提供了一個可替換的asp.net方案。
- Models:Model對象是程式的資料域,主要是為了儲存程式的狀態資訊,經常的資料會存放到資料庫中。
- Views:View是顯示程式UI的,UI通過Model資料建立的,這裡要說一下Model在一些小的應用裡只是一個邏輯上的概念,不一定有一個物理的存在。
- Controllers: Controllers是通過Model工作,Controllers包含應用程式邏輯的操作模式,處理使用者互動,並選擇View顯示到瀏覽器
asp.net mvc framework的代碼是在命名空間System.Web.Mvc中的,它是System.Web命名空間的一部分。基本上以後也是.net的核心,asp.net mvc的好處可以把一個應用可以分成幾塊不同部分-商務邏輯,UI邏輯和輸入邏輯,達到松耦合的目的。這樣便於單元測試,我們也知道傳統的asp.net web forms的單元測試是很麻煩的。
asp.net mvc vs asp.net web forms
那我們什麼時候選擇用asp.net mvc,什麼時候選用asp.net web forms呢?
老外有了一張圖表可以做個參考 這裡是我的翻譯:
需求 |
得分 |
Selection |
乾淨的HTML |
+4 |
|
使用RAD(快速應用程式開發)設計 |
-5 |
|
使用TDD(測試驅動開發) |
+8 |
|
可測試性 |
+7 |
|
資料依賴應用(??)Data-heavy application |
-10 |
|
從Web Forms升級 |
-25 |
|
需要和windows froms程式相同的事件驅動模型 |
-7 |
|
在敏捷Team Dev工作 |
+4 |
|
需要分離模組開發 |
+10 |
|
建立一個概念證明或原型?? Creating a proof of concept or prototype |
-6 |
|
SEO-搜尋引擎最佳化 |
+3 |
|
RESTful interface |
+3 |
|
需要儲存請求狀態 |
-2 |
|
建立一個Internet應用 |
+3 |
|
建立一個Intranet應用 |
-3 |
|
需要通過mobile,web,和REST API在相同的應用中支援多個視圖 |
+7 |
|
需要使用第三方的asp.net web forms的控制項 |
-10 |
|
需要控制URL的產生 |
+5 |
|
根據你項目的要求 對應旁邊的分數進行相加 得到的結果 對照下面的分數 可以做個選擇了:
分數 |
推理 |
< -50 |
顯而易見 使用Web Forms |
-25 |
強烈推薦使用Web Froms |
-10 |
推薦使用Web Forms |
-3 |
基本推薦使用Web Forms |
0 |
Web Forms 和 MVC隨便取 |
+3 |
基本 MVC |
+10 |
推薦MVC |
+25 |
強烈MVC |
> +50 |
顯而易見 使用MVC |
這個表 基本上是歪歪出來的,使用需謹慎