解析Web開發模式的顛覆者:ASP.NET MVC_.Net教程

      編輯Tag賺U幣
      教程Tag:暫無Tag,歡迎添加,賺取U幣!

      推薦:怎樣使用ASP.Net加密Cookie
      Cookie是ASP.NET應用程序中很重要的一個全局變量,它可以用來保存用戶登錄信息、用戶會話信息,以及一些全局變量或數據。為了提高應用程序的安全性,加密Cookie是很有必要的。本實例介紹在ASP.NET應用程序中加密Cookie的方法。 本實例介紹如何使用在ASP.NET

      2008年3月微軟針對ASP.NET 3.5發布的MVC框架(Preview 2 版本)是一個真正意義上的ASP.NET MVC框架。至今,短短4個月內此框架已經發展到Preview 4版本。許多國內外業界人士稱該框架為其前基于Web表單開發模式的歷史性“顛覆”。本文站在對ASP.NET MVC框架與傳統ASP.NET Web表單開發模式進行簡明理論對比的角度對ASP.NET MVC框架的發展前景作出初步展望。

      一、引言

      一直以來,軟件架構師們在開發軟件的方法及架構方面爭論不休。這樣的一些典型的例子包括針對ORM與存儲過程、REST與SOAP結構的討論,等等。最近一段時間,在微軟社區內又展開了一場有關ASP.NET Web表單與ASP.NET MVC框架的討論。許多人認為ASP.NET MVC框架最后將會取代Web表單機制,而也有一些人堅持認為ASP.NET MVC框架未來不可能取代如今已經牢牢占據.NET平臺上ASP.NET開發統治地拉的Web表單技術。那么,究竟ASP.NET MVC框架是否會取代Webforms呢?

      值得注意的是,從一開始,微軟的眾多權威人士都一致表示:ASP.NET MVC框架僅僅將作為Web表單方案的一種可能的替代方案,而不會徹底取代它,而Web表單也不可能取代ASP.NET MVC。因此,真正的發展趨勢將是:ASP.NET MVC與Web表單將共同存在,ASP.NET MVC決不會成為Web表單的取代者。所以,如果你比較喜歡ASP.NET MVC,你可以選擇使用它;而如果你感到Web表單更易于上手,你也可以盡情地按照你的傳統方式繼續使用它。也就是說,兩種途徑都只是針對不同的選擇、不同的方法而已,而提供給開發者不同的選擇本身是一件好事,僅此而已。當然,不同的選擇也完全可以應用于其他的平臺,特別是另一塊比較火的Java開發平臺。

      二、ASP.NET Web表單方案存在的問題

      ASP.NET Web表單方案存在哪些方面的不足呢?Web表單的指導思想是把Windows桌面應用中的表單模型引入到Web應用程序的開發中。這種模型很快就吸引了大批的傳統Windows桌面應用開發程序員,特別是以前的VB 6.0程序員。今天,許多VB 6.0開發者已經轉到了ASP.NET Web開發領域,但是他們并沒有基本的HTTP與Web基本知識。為了模擬傳統型Windows桌面應用程序中的表單開發體驗,Web表單引入了事件驅動的方法,而且還引入了Viewstate和Postback等相關概念。最終,Web表單技術知徹底地攻克了Web中無狀態特征這個難關。隨之而來的是,Viewstate和Postback帶來了大量的問題,從而提高了Web應用程序開發的復雜性。例如,即使一些非常簡單的Web頁面也有可能產生大于100KB尺寸的Viewstate,這當然會在某些情況下嚴重影響系統的性能。此外,開發人員還無法控制Web表單生成的HTML;而且,ASP.NET服務器控件生成的HTML既混雜有內聯方式也包含不符合標準的過時的標簽。Web表單所帶來的另一個問題是,與JavaScript框架的集成比較困難,這主要是因為生成的HTML的命名慣例所造成的。此外,Web表單相應的頁面生命周期太復雜了,在整個ASP.NET框架中所有內容都是緊耦合型的并且僅使用一個類來負責顯示輸出和處理用戶輸入。因而,單元測試幾乎是一項不可能的任務。而我們都知道,在現代軟件開發中,特別是當我們遵循敏捷軟件方法論及相應慣例開發軟件時,單元測試是很重要的。既然Web是無狀態的,那么,Postbacks和Viewstate就不會完美的解決方案。

      分享:淺談ASP.NET MVC框架內置AJAX支持編程技術
      傳統型ASP.NET Web Forms是基于同時包含了表現層和后臺代碼的Web頁面,所以,緊隨其后出現的ASP.NET AJAX,特別是這個框架的服務器端控件并沒有像它們本應該的那樣光芒四射。于是,很多跟隨AJAX時髦的ASP.NET開發者只是向ASP.NET頁面中隨意地放置一些UpdateP

      來源:模板無憂//所屬分類:.Net教程/更新時間:2009-08-02
      相關.Net教程