1. 程式人生 > 實用技巧 >ASP。NET MVC vs ASP。NET WebForm效能比較

ASP。NET MVC vs ASP。NET WebForm效能比較

內容 超出範圍的測試程式碼的意圖測試是如何進行的?測試asp的效能標準結論。NET MVC作為解決方案閱讀1 Web mvc形式 閱讀2 webform mvc 閱讀3 webform mvc 閱讀4 webform mvc 閱讀5 webform mvc 讀6 webform mvc (MUF)必須使用特徵測試的方法選擇強制進一步閱讀歷史 本測試目的 本文的目的是比較ASP和ASP之間的效能。NET WebForms和ASP。淨MVC。從Webforms到MVC的主要原因是效能,效能和效能。 供參考:如果你是MVC教程的新手,你可以從文章最後給出的視訊開始。 測試程式碼 為了這個測試,我們建立了兩個專案,一個在ASP中。asp.net MVC和其他asp.net MVC。淨Webforms。我們保持了絕對簡單的測試。這兩個專案都顯示了20個文字框,並且有一個裝載了1000條記錄的網格。 下面是ASP。與網格伺服器控制元件繫結的asp.net Webform程式碼。 隱藏,複製Code

        protected void Page_Load(object sender, EventArgs e)
        {
for(int i=0;i<1000;i++)
            {
obj.Add(DateTime.Now.ToString());
            }
            GridView1.DataSource = obj;
GridView1.DataBind();
        }
    }

在ASPX UI上,我們有20個使用ASP伺服器控制元件的文字框。淨Webforms。 隱藏,複製Code

<asp:TextBox
ID="TextBox1"runat="server"BackColor="#FF66FF"></asp:TextBox> <asp:TextBoxID="TextBox2"runat="server"BackColor="#FF66FF"> <asp:TextBoxID="TextBox3"runat="server"BackColor="#FF66FF"> ……. <asp:TextBoxID="TextBox6"runat="server"BackColor="#FF66FF">

在ASP。NET MVC專案,我們也有類似的邏輯。我們有20個文字框建立使用HTML控制元件和一個簡單的迴圈建立一個HTML表。 隱藏,複製Code

<input id="Text1" type="text" style="background-color:#FF66FF" />

<input id="Text1" type="text" style="background-color:#FF66FF" />

<input id="Text1" type="text" style="background-color:#FF66FF" />

@{
List<string> obj = new List<string>();
for (int i = 0; i < 1000; i++)
{
obj.Add(DateTime.Now.ToString());
}
}

@{
foreach (string str in obj)
      {

      }
}
<table>
Item@str

的範圍 在這個測試中,我們沒有使用JSON、Jquery、Ajax,因為我們只是想測試這些平臺的效能,而不是它們與HTML 5、Ajax等其他技術相沖突時的效能。 測試是如何進行的? 使用VSTS和telerik負載測試軟體,按照以下規範進行測試: 使用者載入25個使用者。執行測試持續時間為10分鐘。機器配置戴爾8 GB記憶體,核心i3專案託管在IIS 8。專案使用MVC 5建立。假設網路LAN連線。所以這個測試暫時不能解釋網路延遲。瀏覽器在測試中選擇了Chrome和Internet Explorer。在測試期間多次讀取未知事件的平均值。在這篇文章中所做的閱讀和所有發表的閱讀都是閱讀1,2,等等。 效能標準 效能是通過兩個標準度量的:平均頁面響應時間和以位元組為單位的響應內容。 平均頁面響應時間:這個值是在執行負載測試時25個使用者獲得頁面輸出的平均時間。 響應內容長度:每個請求傳輸的平均總位元組數。之所以採用這個標準,是因為我們懷疑與編寫自定義HTML相比,伺服器控制元件生成的HTML數量更多。 結論的測試 響應時間 MVC的響應時間比Webform好得多。我們發現ASP。NET MVC的響應時間是Webforms的兩倍。 原因很明顯。當一個請求被髮送到Webforms時,有一個複雜的ASP。NET頁面的生命週期,在後面的程式碼中執行。這段程式碼背後是沒有什麼,但sort of轉換邏輯轉換ASP。NET伺服器控制元件到HTML。 在ASP。NET MVC,沒有背後的程式碼,也沒有這樣的轉換是必需的,因為控制元件本身是HTML格式。 內容長度 對於相同型別的邏輯,從Webform生成的HTML內容長度比MVC要長兩倍。 當我們檢視檢視源時,我們看到了Webform生成的大量檢視狀態資料,這在MVC中是不存在的。這意味著我們上網時會消耗更多的頻寬。與asp.net Webform站點相比。淨MVC網站。 ASP。NET MVC作為解決方案 如果您看到負載測試的結論,我們需要一個沒有程式碼和伺服器控制元件的解決方案。當你建立ASP。NET MVC專案,你將不會發現NOcode背後和伺服器控制元件。 下面是MVC檢視的快照,您可以看到有。cshtml,但沒有CSHTML.CS。 如果你去一個MVC檢視並點選工具箱,它只有HTML選項卡和所有的伺服器控制元件已經完全關閉。 你也可以閱讀這篇詳細的文章,它討論了我們在ASP中錯過的東西。NET MVC從Webforms。 下面是為Webform和MVC貼上的所有7個讀數。這些讀數將使您更深入地瞭解這些技術之間的效能因素。 閱讀1 Web表單 負載測試總結 測試執行資訊 負載測試名稱loadtest1描述,結束時間上午開始時間1/11/2015 9:49:56 1/11/2015 9:59:56是熱身時間就是時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒19.2測試失敗0 avg。測試時間(sec) 1.26事務/秒0 avg。事務時間(sec) 0頁/秒19.2 avg。頁面時間(sec) 1.25請求/秒19.2 requests失敗的請求快取比例0 avg。響應時間(sec)內容長度(位元組)96,425 1.25 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / WebForm / WebForm……2.30 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest1 2.32 測試結果 名字總測試失敗的測試場景(%)總額的avg。測試時間(sec) webtest1 scenario1 11,510 0 (0) 1.26 頁面的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/webform/webform1。aspx scenario o1 webtest1 1.25 11,510 交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統測試資源 機器名稱%測試完成時可用記憶體時間(Mb) 控制器和代理資源 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者- pc 43.8 855 錯誤 型別子型別計數最後訊息 MVC 負載測試總結 測試執行資訊 負載測試名稱loadtest2描述,結束時間下午開始時間1/11/2015 12:13:49 1/11/2015 12:23:49點熱身時間就是時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒46.0測試失敗0 avg。測試時間(sec) 0.49事務/秒0 avg。事務時間(sec) 0頁/秒46.0 avg。頁面時間(sec) 0.48請求/秒46.0請求失敗的請求快取比例0 avg。響應時間(sec)內容長度(位元組)58,923 0.48 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / LoadTest / SomePa……1.13 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest2 1.14 測試結果 名字總測試失敗的測試場景(%)總額的avg。測試時間(sec) webtest2 scenario1 27,619 0 (0) 0.49 頁面的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/LoadTest/ somepage scenario o1 webtest2 0.48 27,619 交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統測試資源 機器名稱%測試完成時可用記憶體時間(Mb) 控制器和代理資源 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者pc 63.0 1,012 錯誤 型別子型別計數最後訊息 閱讀2 Webform 負載測試總結 測試執行資訊 負載測試名稱loadtest1描述,結束時間上午開始時間1/11/2015 10:25:53 1/11/2015 10:35:53是熱身時間就是時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒11.1測試失敗0 avg。測試時間(sec) 2.22事務/秒0 avg。事務時間(sec) 0頁/秒11.1 avg。頁面時間(sec) 2.20請求/秒11.1請求失敗的請求快取比例0 avg。響應時間(sec)內容長度(位元組)100,276 2.20 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / WebForm / WebForm……5.77 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest1 5.80 測試結果 名字總測試失敗的測試場景(%)總額的avg。測試時間(sec) webtest1 scenario1 6,640 0 (0) 2.22 頁面的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/webform/webform1。aspx scenario o1 webtest1 2.20 6640 交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統測試資源 機器名稱%測試完成時可用記憶體時間(Mb) 控制器和代理資源 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者pc 61.2 841 錯誤 型別子型別計數最後訊息 MVC 負載測試總結 測試執行資訊 負載測試名稱loadtest2描述,結束時間下午開始時間1/11/2015 1:03:06 1/11/2015 1:13:06熱身時間下午00: 00:00持續時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒52.2測試失敗0 avg。測試時間(sec) 0.39事務/秒0 avg。事務時間(sec) 0頁/秒52.2 avg。頁面時間(sec) 0.39請求/秒52.2請求失敗的請求快取比例0 avg。響應時間(sec)內容長度(位元組)46,281 0.39 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / LoadTest / SomePa……1.02 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest2 1.03 測試結果 名字總測試失敗的測試場景(%)總額的avg。測試時間(sec) webtest2 scenario1 31,330 0 (0) 0.39 頁面的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/LoadTest/ somepage scenario o1 webtest2 0.39 31,330 交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統測試資源 機器名稱%測試完成時可用記憶體時間(Mb) 控制器和代理資源 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者pc 65.6 855 錯誤 型別子型別計數最後訊息 閱讀3 WebForm 負載測試總結 測試執行資訊 負載測試名稱loadtest1描述,結束時間上午開始時間1/11/2015 11:04:01 1/11/2015 11:14:01是熱身時間就是時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒9.66測試失敗0 avg。測試時間(sec) 2.54事務/秒0 avg。事務時間(sec) 0頁/秒9.66 avg。頁面時間(sec) 2.52請求/秒9.66請求失敗的請求快取比例0 avg。響應時間(sec)內容長度(位元組)99,769 2.52 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / WebForm / WebForm……9.77 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest1 9.77 測試結果 名字總測試失敗的測試場景(%)總額的avg。測試時間(sec) webtest1 scenario1 5,795 0 (0) 2.54 頁面的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/webform/webform1。aspx scenario o1 webtest1 2.52 5795 交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統測試資源 機器名稱%測試完成時可用記憶體時間(Mb) 控制器和代理資源 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者pc 61.0 875 錯誤 型別子型別計數最後訊息 MVC 負載測試總結 測試執行資訊 負載測試名稱loadtest2描述,結束時間下午開始時間1/11/2015 1:28:54 1/11/2015 1:38:54點熱身時間就是時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒16.1測試失敗0 avg。測試時間(sec) 1.50事務/秒0 avg。事務時間(sec) 0頁/秒16.1 avg。頁面時間(sec) 1.49請求/秒16.1請求失敗的請求快取比例0 avg。響應時間(sec)內容長度(位元組)57,923 1.49 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / LoadTest / SomePa……2.93 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest2 2.94 測試結果 名字總測試失敗的測試場景(%)總額的avg。測試時間(sec) webtest2 scenario1 9,647 0 (0) 1.50 頁面的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/LoadTest/ somepage scenario o1 webtest2 1.49 9,647 交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統測試資源 機器名稱%測試完成時可用記憶體時間(Mb) 控制器和代理資源 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者pc 31.7 862 錯誤 型別子型別計數最後訊息 閱讀4 WebForm 負載測試總結 測試執行資訊 負載測試名稱loadtest1描述,結束時間上午開始時間1/11/2015 11:28:39 1/11/2015 11:38:39是熱身時間就是時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒11.8測試失敗7 avg。測試時間(sec) 2.08事務/秒0 avg。事務時間(sec) 0頁/秒11.8 avg。頁面時間(sec) 2.06請求/秒11.8請求失敗7請求快取比例0 avg。響應時間(sec)內容長度(位元組)100,205 2.06 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / WebForm / WebForm……5.58 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest1 5.60 測試結果 名字總測試失敗的測試場景(%)總額的avg。測試時間(sec) webtest1 scenario1 7,073 7 (0.099) 2.08 頁面的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/webform/webform1。aspx scenario o1 webtest1 2.06 7073 交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統測試資源 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者pc 75.8 922 錯誤 型別子型別計數最後訊息http錯誤500 -內部servererror 7 500 -內部servererror MVC 負載測試總結 測試執行資訊 負載測試名稱loadtest2描述,結束時間下午開始時間1/11/2015 1:17:12 1/11/2015 1:27:12點熱身時間就是時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒30.8測試失敗0 avg。測試時間(sec) 0.65事務/秒0 avg。事務時間(sec) 0頁/秒30.8 avg。頁面時間(sec) 0.64請求/秒30.8請求失敗的請求快取比例0 avg。響應時間(sec)內容長度(位元組)50,657 0.64 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / LoadTest / SomePa……1.70 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest2 1.72 測試結果 名字總測試失敗的測試場景(%)總額的avg。測試時間(sec) webtest2 scenario1 18,483 0 (0) 0.65 頁面的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/LoadTest/ somepage scenario o1 webtest2 0.64 18484 交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統測試資源 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者- pc 43.3 854 錯誤 型別子型別計數最後訊息 閱讀5 Webform 負載測試總結 測試執行資訊 負載測試名稱loadtest1描述,結束時間下午開始時間1/11/2015 1:40:52 1/11/2015 1:50:52點熱身時間就是時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒18.8測試失敗0 avg。測試時間(sec) 1.32事務/秒0 avg。事務時間(sec) 0頁/秒18.8 avg。頁面時間(sec) 1.31請求/秒18.8請求失敗的請求快取比例0 avg。響應時間(sec)內容長度(位元組)100,607 1.31 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / WebForm / WebForm……2.55 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest1 2.56 測試結果 名字總測試失敗的測試場景(%)總額的avg。測試時間(sec) webtest1 scenario1 11,261 0 (0) 1.32 頁面的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/ webform/webform1.aspx場景1 webtest1 1.31 11,261 交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統在測試資源下 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者pc 60.8 891 6錯誤 型別子型別計數最後訊息 MVC 負載測試總結 測試執行資訊 負載測試名稱loadtest2描述,結束時間下午開始時間1/11/2015 2:30:38 1/11/2015 2:40:38點熱身時間就是時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒34.3測試失敗0 avg。測試時間(sec) 0.68事務/秒0 avg。事務時間(sec) 0頁/秒34.3 avg。頁面時間(sec) 0.68請求/秒34.3請求失敗的請求快取比例0 avg。響應時間(sec)內容長度(位元組)57,923 0.68 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / LoadTest / SomePa……1.60 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest2 1.61 6測試結果 名字總測試失敗的測試場景(%)總額的avg。測試時間(sec) webtest2 scenario1 20,603 0 (0) 0.68 6頁的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/LoadTest/ somepage scenario o1 webtest1 0.68 20603 6交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統在測試資源下 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者pc 54.4 915 6錯誤 型別子型別計數最後訊息 讀6 Webform 負載測試總結 測試執行資訊 負載測試名稱loadtest1描述,結束時間下午開始時間1/11/2015 2:15:21 1/11/2015 2:25:21點熱身時間就是時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒10.7測試失敗0 avg。測試時間(sec) 1.98事務/秒0 avg。事務時間(sec) 0頁/秒10.7 avg。頁面時間(sec) 1.96請求/秒10.7請求失敗的請求快取比例0 avg。響應時間(sec)內容長度(位元組)101,007 1.96 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / WebForm / WebForm……3.77 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest1 3.79 測試結果 名字總測試失敗的測試場景(%)總額的avg。測試時間(sec) webtest1 scenario1 6,395 0 (0) 1.98 頁面的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/webform/webform1。aspx scenario o1 webtest1 1.96 6,395 交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統測試資源 機器名稱%測試完成時可用記憶體時間(Mb) 控制器和代理資源 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者pc 60.4 188 錯誤 型別子型別計數最後訊息 MVC 負載測試總結 測試執行資訊 負載測試名稱loadtest2描述,結束時間下午開始時間1/11/2015 2:41:57 1/11/2015 2:51:57點熱身時間就是時間00:10:00控制器本地執行的代理1設定用於執行Settings1執行 整體結果 馬克斯25使用者負載測試/秒20.4測試失敗0 avg。測試時間(sec) 0.67事務/秒0 avg。事務時間(sec) 0頁/秒20.4 avg。頁面時間(sec) 0.66請求/秒20.4請求失敗4請求快取比例0 avg。響應時間(sec)內容長度(位元組)57,904 0.66 avg 關鍵資料:前5個最慢的頁面 頁面URL(連結到更多細節)95%時間(sec) http://192.168.15.141:98 / LoadTest / SomePa……1.38 關鍵統計:前5個最慢的測試 名字95%測試時間(sec) webtest2 1.39 測試結果 將場景命名為“總測試失敗測試”(佔總測試的百分比)12220 4 (0.033) 0.67 6頁的結果 URL(連結到更多細節)場景測試平均頁面時間(sec)計數http://192.168.15.141:98/LoadTest/ somepage scenario o1 webtest2 0.66 12220 6交易結果 命名場景測試響應時間(sec)執行時間(sec)計數 系統在測試資源下 機器名稱%測試完成時可用記憶體時間(Mb) 6控制器和代理資源 機器名稱%處理器時間可用記憶體在測試完成(Mb)使用者pc 59.0 852 6錯誤 一個現有的連線被遠端主機強制關閉 如果你確信ASP。NET MVC是前進的道路,現在就開始學習MVC怎麼樣?下面是一個很棒的ASP。NET MVC視訊,其中教MVC在16小時平。 (MUF)必須採用特徵法進行測試 許多開發人員會對上面的測試表示驚訝: 我們可以選擇禁用viewstate,可以選擇使用HTML而不是伺服器控制元件等等。 是的,我們完全同意webforms可以被調整以一種最優的方式執行,它們可以擁有幾乎和ASP一樣的效能。淨MVC。 但是這個測試遵循了最常用的特性方法。通常,當Webform被使用99%的時候,開發人員不會禁用viewstate,他們使用後面的程式碼,他們使用伺服器控制元件左右等等。 因為如果我們按照這種方式進行測試,那麼ASP。NET MVC也有很多最佳實踐,如jQuery、JSON等來提高效能。 所以這個測試是為了保持Webform和MVC中最常用的特性。這兩種技術都保留在世貿中心遺址,並在市場上使用它們最常用的功能進行比較。 選擇與衝動 如果你被帶到一個酒吧,讓你選擇喝葡萄酒或果汁。你很有可能會喝酒,誘惑,人性,不管你怎麼稱呼它。 但是如果你被帶到一家果汁店,你沒有選擇,你被迫只喝果汁。 ASP。NET Webform為您提供了一個選項,而MVC強制您遵循最佳實踐。因此,對於Webform,我可以選擇使用HTML和禁用viewstate,但是RAD對人的誘惑太大了,大多數時候人們最終會使用這些特性。 另一方面,MVC並沒有提供後臺程式碼、伺服器控制元件、檢視狀態等選項,因此迫使你使用純HTML,沒有後臺程式碼架構。 進一步的閱讀 我們鼓勵你閱讀下面的文章來增強你的ASP。進一步瞭解asp.net MVC知識。 WebForms vs MVC,為什麼MVC更好? 如果你想開始學習MVC,這篇MVC文章教ASP。NET MVC逐步在7天。 如果你想知道MVC和Webforms的細節,這兩篇文章是很好的讀物。 如果你正在準備MVC面試,不要錯過100 ASP。NET MVC面試問題系列。 歷史 2015年1月13日:初版 本文轉載於:http://www.diyabc.com/frontweb/news1805.html