解析Web開發(fā)模式的顛覆者:ASP.NET MVC_.Net教程
推薦:怎樣使用ASP.Net加密CookieCookie是ASP.NET應(yīng)用程序中很重要的一個全局變量,它可以用來保存用戶登錄信息、用戶會話信息,以及一些全局變量或數(shù)據(jù)。為了提高應(yīng)用程序的安全性,加密Cookie是很有必要的。本實例介紹在ASP.NET應(yīng)用程序中加密Cookie的方法。 本實例介紹如何使用在ASP.NET
2008年3月微軟針對ASP.NET 3.5發(fā)布的MVC框架(Preview 2 版本)是一個真正意義上的ASP.NET MVC框架。至今,短短4個月內(nèi)此框架已經(jīng)發(fā)展到Preview 4版本。許多國內(nèi)外業(yè)界人士稱該框架為其前基于Web表單開發(fā)模式的歷史性“顛覆”。本文站在對ASP.NET MVC框架與傳統(tǒng)ASP.NET Web表單開發(fā)模式進(jìn)行簡明理論對比的角度對ASP.NET MVC框架的發(fā)展前景作出初步展望。
一、引言
一直以來,軟件架構(gòu)師們在開發(fā)軟件的方法及架構(gòu)方面爭論不休。這樣的一些典型的例子包括針對ORM與存儲過程、REST與SOAP結(jié)構(gòu)的討論,等等。最近一段時間,在微軟社區(qū)內(nèi)又展開了一場有關(guān)ASP.NET Web表單與ASP.NET MVC框架的討論。許多人認(rèn)為ASP.NET MVC框架最后將會取代Web表單機(jī)制,而也有一些人堅持認(rèn)為ASP.NET MVC框架未來不可能取代如今已經(jīng)牢牢占據(jù).NET平臺上ASP.NET開發(fā)統(tǒng)治地拉的Web表單技術(shù)。那么,究竟ASP.NET MVC框架是否會取代Webforms呢?
值得注意的是,從一開始,微軟的眾多權(quán)威人士都一致表示:ASP.NET MVC框架僅僅將作為Web表單方案的一種可能的替代方案,而不會徹底取代它,而Web表單也不可能取代ASP.NET MVC。因此,真正的發(fā)展趨勢將是:ASP.NET MVC與Web表單將共同存在,ASP.NET MVC決不會成為Web表單的取代者。所以,如果你比較喜歡ASP.NET MVC,你可以選擇使用它;而如果你感到Web表單更易于上手,你也可以盡情地按照你的傳統(tǒng)方式繼續(xù)使用它。也就是說,兩種途徑都只是針對不同的選擇、不同的方法而已,而提供給開發(fā)者不同的選擇本身是一件好事,僅此而已。當(dāng)然,不同的選擇也完全可以應(yīng)用于其他的平臺,特別是另一塊比較火的Java開發(fā)平臺。
二、ASP.NET Web表單方案存在的問題
ASP.NET Web表單方案存在哪些方面的不足呢?Web表單的指導(dǎo)思想是把Windows桌面應(yīng)用中的表單模型引入到Web應(yīng)用程序的開發(fā)中。這種模型很快就吸引了大批的傳統(tǒng)Windows桌面應(yīng)用開發(fā)程序員,特別是以前的VB 6.0程序員。今天,許多VB 6.0開發(fā)者已經(jīng)轉(zhuǎn)到了ASP.NET Web開發(fā)領(lǐng)域,但是他們并沒有基本的HTTP與Web基本知識。為了模擬傳統(tǒng)型Windows桌面應(yīng)用程序中的表單開發(fā)體驗,Web表單引入了事件驅(qū)動的方法,而且還引入了Viewstate和Postback等相關(guān)概念。最終,Web表單技術(shù)知徹底地攻克了Web中無狀態(tài)特征這個難關(guān)。隨之而來的是,Viewstate和Postback帶來了大量的問題,從而提高了Web應(yīng)用程序開發(fā)的復(fù)雜性。例如,即使一些非常簡單的Web頁面也有可能產(chǎn)生大于100KB尺寸的Viewstate,這當(dāng)然會在某些情況下嚴(yán)重影響系統(tǒng)的性能。此外,開發(fā)人員還無法控制Web表單生成的HTML;而且,ASP.NET服務(wù)器控件生成的HTML既混雜有內(nèi)聯(lián)方式也包含不符合標(biāo)準(zhǔn)的過時的標(biāo)簽。Web表單所帶來的另一個問題是,與JavaScript框架的集成比較困難,這主要是因為生成的HTML的命名慣例所造成的。此外,Web表單相應(yīng)的頁面生命周期太復(fù)雜了,在整個ASP.NET框架中所有內(nèi)容都是緊耦合型的并且僅使用一個類來負(fù)責(zé)顯示輸出和處理用戶輸入。因而,單元測試幾乎是一項不可能的任務(wù)。而我們都知道,在現(xiàn)代軟件開發(fā)中,特別是當(dāng)我們遵循敏捷軟件方法論及相應(yīng)慣例開發(fā)軟件時,單元測試是很重要的。既然Web是無狀態(tài)的,那么,Postbacks和Viewstate就不會完美的解決方案。
分享:淺談ASP.NET MVC框架內(nèi)置AJAX支持編程技術(shù)傳統(tǒng)型ASP.NET Web Forms是基于同時包含了表現(xiàn)層和后臺代碼的Web頁面,所以,緊隨其后出現(xiàn)的ASP.NET AJAX,特別是這個框架的服務(wù)器端控件并沒有像它們本應(yīng)該的那樣光芒四射。于是,很多跟隨AJAX時髦的ASP.NET開發(fā)者只是向ASP.NET頁面中隨意地放置一些UpdateP
- asp.net如何得到GRIDVIEW中某行某列值的方法
- .net SMTP發(fā)送Email實例(可帶附件)
- js實現(xiàn)廣告漂浮效果的小例子
- asp.net Repeater 數(shù)據(jù)綁定的具體實現(xiàn)
- Asp.Net 無刷新文件上傳并顯示進(jìn)度條的實現(xiàn)方法及思路
- Asp.net獲取客戶端IP常見代碼存在的偽造IP問題探討
- VS2010 水晶報表的使用方法
- ASP.NET中操作SQL數(shù)據(jù)庫(連接字符串的配置及獲取)
- asp.net頁面?zhèn)髦禍y試實例代碼
- DataGridView - DataGridViewCheckBoxCell的使用介紹
- asp.net中javascript的引用(直接引入和間接引入)
- 三層+存儲過程實現(xiàn)分頁示例代碼
- 相關(guān)鏈接:
- 教程說明:
.Net教程-解析Web開發(fā)模式的顛覆者:ASP.NET MVC
。