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:TextBoxID="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