七天學(xué)會(huì)ASP.NET MVC (一)
本文關(guān)鍵詞:MVC,由筆耕文化傳播整理發(fā)布。
系列文章
七天學(xué)會(huì)ASP.NET MVC (一)——深入理解ASP.NET MVC
七天學(xué)會(huì)ASP.NET MVC (二)——ASP.NET MVC 數(shù)據(jù)傳遞
七天學(xué)會(huì)ASP.NET MVC (三)——ASP.Net MVC 數(shù)據(jù)處理
七天學(xué)會(huì)ASP.NET MVC (四)——用戶授權(quán)認(rèn)證問題
七天學(xué)會(huì)ASP.NET MVC (五)——Layout頁面使用和用戶角色管理
七天學(xué)會(huì)ASP.NET MVC (六)——線程問題、異常處理、自定義URL
七天學(xué)會(huì)ASP.NET MVC(七)——創(chuàng)建單頁應(yīng)用
ASP.NET vs MVC vs WebForms
許多ASP.NET開發(fā)人員開始接觸MVC認(rèn)為MVC與ASP.NET完全沒有關(guān)系,是一個(gè)全新的Web開發(fā),事實(shí)上ASP.NET是創(chuàng)建WEB應(yīng)用的框架而MVC是能夠用更好的方法來組織并管理代碼的一種更高級(jí)架構(gòu)體系,所以可以稱之為ASP.NET MVC。
我們可將原來的ASP.NET稱為 ASP.NET Webforms,新的MVC 稱為ASP.NET MVC.
ASP.NET Web FormASP.NET 在過去的十二年里,已經(jīng)服務(wù)并成功實(shí)現(xiàn)Web 應(yīng)用的開發(fā)。我們首先了解一下為什么ASP.NET能夠如此流行,并成功應(yīng)用。
微軟編程語言從VB開始就能夠成為流行并廣泛應(yīng)用,都源于其提供的強(qiáng)大的Visual studio能夠進(jìn)行可視化的編程,實(shí)現(xiàn)快速開發(fā)。
使用VS時(shí),開發(fā)人員能夠通過拖拽UI元素,并在后臺(tái)自動(dòng)生成這些界面的代碼。稱為后臺(tái)代碼。在后臺(tái)代碼中開發(fā)人員可以添加操作這些UI元素的邏輯代碼。
因此微軟的可視化RAD架構(gòu)體系有兩方面組成,一方面是UI,一方面是后臺(tái)代碼。因此ASP.NET Web 窗體,包含ASPX和ASPX.CS,WPF包含XAML/XAML.CS等。
ASP.NET Web Form存在的問題 我們不得不考慮的問題是,既然ASP.NET Web Form 如此成功且具有優(yōu)勢(shì),為什么微軟還要推出ASP.NET MVC?主要是因?yàn)锳SP.NET Webform的性能問題。在Web應(yīng)用程序中從兩方面來定義性能: 1. 響應(yīng)時(shí)間: 服務(wù)器響應(yīng)請(qǐng)求的耗時(shí) 2. 帶寬消耗: 同時(shí)可傳輸多少數(shù)據(jù)。 響應(yīng)時(shí)間 我們可以理解為什么ASP.NET Webform比較慢,如圖我們做了一些小的加載測(cè)試。分別使用ASP.Net MVC和ASP.Net Webform,發(fā)現(xiàn)ASP.Net MVC的響應(yīng)時(shí)間比Webform快了兩倍。 接下來我們?cè)谒伎家粋(gè)問題為什么ASP.NET MVC的性能更好?看看下面這個(gè)示例,簡(jiǎn)單的UI代碼和UI的后臺(tái)代碼。 假如一個(gè)textbox的ASPX頁面: 對(duì)應(yīng)的UI后臺(tái)代碼:Page_Load(object sender, EventArgs e) 2: { 3: TextBox1.Text = "Make it simple"; 4: TextBox1.BackColor = Color.Aqua; 5: }
運(yùn)行結(jié)果: 如果查看HTML輸出,則會(huì)顯示如下代碼: 我們?cè)賮硭伎忌厦嫣岬降膯栴} 1. 這種HTML生成方式是否很有效?我們是否為了獲取如此簡(jiǎn)單的HTML而長(zhǎng)時(shí)間的消耗服務(wù)器 2. 開發(fā)人員是否可以直接編寫HTML?很難實(shí)現(xiàn)嗎?通過分析我們可以得知,每一次請(qǐng)求都有轉(zhuǎn)換邏輯,運(yùn)行并轉(zhuǎn)換服務(wù)器控件為HTML輸出。如果我們的頁面使用表格,樹形控件等復(fù)雜控件,轉(zhuǎn)換就會(huì)變得很糟糕且非常復(fù)雜。HTML輸出也是非常復(fù)雜的。由于這些不必要的轉(zhuǎn)換從而增加了響應(yīng)時(shí)間。該問題的解決方案就是擺脫后臺(tái)代碼,寫成純HTML代碼。 帶寬消耗 ASP.NET開發(fā)人員都非常熟悉Viewstates,因?yàn)樗軌蜃詣?dòng)保存post返回的狀態(tài),減少開發(fā)時(shí)間。但是這種開發(fā)時(shí)間的減少會(huì)帶來巨大的消耗,Viewstate增加了頁面的大小。在做的加載測(cè)試中,,與MVC 對(duì)比,我們發(fā)現(xiàn)Viewstate增加了兩倍的頁面存儲(chǔ)。以下是測(cè)試結(jié)果:
頁面尺寸的增加是因?yàn)関iewstate產(chǎn)生了額外的字節(jié)。下圖就是Viewstate的截圖。許多人可能會(huì)不同意此觀點(diǎn),但是眾所周知,開發(fā)人員是如何工作的,如果有選擇,他們肯定會(huì)采取別的選擇。
本文關(guān)鍵詞:MVC,由筆耕文化傳播整理發(fā)布。
本文編號(hào):48818
本文鏈接:http://www.wukwdryxk.cn/kejilunwen/jisuanjikexuelunwen/48818.html