2011年2月17日 星期四

ASP.NET 4.0新功能剖析 – ASP.NET的過去與未來

前言:
2010年的第一刻鐘,我和台灣很多人一樣,在電視機前看著各大新聞台轉播著的全台各地煙火盛況,盯著當時還是全球第一高樓的101上饒富趣味的『Taiwan Up』,和大家一同送走2009年。心裡想著的則是,2010將是微軟開發技術大幅改版的一年,今年迎接著我們的,將會是怎樣的一年呢?

ASP.NET的過去與未來

 

        如果以10年為一個單位來看,從千禧年到現在,又過了整整10個年頭。對於資訊技術的演進來說,10年不可謂不長,特別是身為開發人員的我們,回頭看過去這10年,即便不能說是滄海桑田,卻也是經歷了一段天翻地覆的轉變。

        回頭看.NET技術的誕生,是2002那年。那一年微軟正式的推出了.NET Framework,同時把Visual Studio冠上了.NET這個版本編號。作為力抗Java 2開發平台的重要技術框架,微軟投入了不少的人力、時間、和金錢,企圖和當時看似如日中天的Java及相關Web開發技術正面抗衡。
        當年是各種Web開發技術蓬勃發展的一年,ASPPHPJSP等不同的Web開發技術,在市場上各有擁護的支持者,微軟02年隨著.NET Framework 1.0所推出的ASP.NET,將物件導向與事件驅動程式設計的概念帶入Web應用程式開發的領域,試圖讓傳統的Windows應用程式開發人員能夠在最短的時間內跨足Web開發領域,此舉多少也象徵著微軟開始承認Internet Application勢不可擋的趨勢(對照當前同樣火紅的Cloud Computing,不知是否一樣令人期待)

        然而當時市場卻不領情,特別是固有的ASP開發人員對於立即轉換到ASP.NET上也顯得興趣缺缺。加上ASP.NET 1.0技術本身似乎也有一些問題,導致開發人員卻步不前,直到2003年四月釋出的ASP.NET 1.1才開始逐漸好轉。而整個故事的分水嶺,可以從2005年開始算起,0511月,微軟正式推出了ASP.NET 2.0,其中琳瑯滿目的新功能,諸如Master-Page、新的資料存取技術與控制項、Login ControlsProfileNavagation…等機制,成功擄獲了相當多Web開發人員的心,正式為Web應用程式開發開啟了嶄新的一頁。

        這一過,又是五個年頭,儘管中間不乏ASP.NET 3.5ASP.NET 3.5 SP1這兩個版本,而且微軟還分別提出了ASP.NET AJAXASP.NET MVCDynamic Web SiteWeb相關開發技術,但ASP.NET真正的大幅度改版(或說是大幅度整合),則是今年即將推出的ASP.NET 4.0

ASP.NET 4即將登場

 

        過去ASP.NET的每一個版本,都成功的達成了每一個階段性的任務,ASP.NET 1.0透過Code-behind技術一舉推翻了過去ASP開發時代HTML與程式碼夾雜的狀況,同時把物件導向程式設計的精神與事件驅動(Event-Driven)帶入了Web應用程式開發的世界。ASP.NET 2.0則透過新的資料庫存取技術讓Web資料庫應用程式的開發大幅簡化,並且透過新增的控制項有效地提高開發人員的產能。(很多老闆是看上了這一點才讓開發人員投入了ASP.NET懷抱的)
        ASP.NET 3.5則隨著.NET 3.5的推出,將微軟重要的查找技術LINQ以及LinqToSql加入了ASP.NET當中,並且把ASP.NET AJAX正式納入成為產品的一環;而ASP.NET 3.5 SP1則宣示了透過Dynamic Data技術建構高延展性的Web資料庫作業應用程式的可能性。
        回顧這一切,你會看到在ASP.NET 2.0正式的站穩了腳步之後,微軟在中間釋出3.5/3.5 SP1這兩個版本,其中的ASP.NET AJAX套件迅速回應了市場對於AJAX技術迫切的需求,而ASP.NET Dynamic Data機制以及ASP.NET MVC則是宣示意味較重的展示性產品,旨在告訴Web應用程式的開發人員:『ASP.NET不僅如此而已,接下來要出現的才是回應企業大型Web應用程式開發需求的重頭戲』。而今年將推出的ASP.NET 4.0,則是集Web應用程式開發技術之大成於一身的開發技術解決方案。

四劍客分庭抗禮

 

        從技術層面來看, ASP.NET 4.0終於龐大到可以正式區分為ASP.NET WebFormsASP.NET AJAXASP.NET MVCASP.NET Dynamic Data四大塊的程度了。不像過去MVCDyanmic Data等技術以套件的形式出現,這次微軟正式地把這些技術納入ASP.NET 4當中,成為Web應用程式開發技術中重要的一環。在這次4.0的版本當中,除了將Web開發技術一舉整合之外,每一塊都有著各自功能的增強與更新。

        先從ASP.NET WebForms來說,除了效能的大幅增強之外,新版的ASP.NET 4將會有效的降低開發人員的負擔,讓開發人員可以用更短的時間來開發出更理想的Web應用程式(諸如加強版的snippetIntelliSense功能),同時也增強了對搜尋引擎的支援(例如Page.MetaKeywordsPage.MetaDescription的支援),開發人員也能夠更加妥善的控制ViewStateClientID等、以及其他琳瑯滿目的控制項新功能,像是開發人員期待很久的Chart Control、配合著LinqToSqlADO.NET Entity輕鬆過濾資料的QueryExtender Control、以及URL-Routing的支援等,都是可以有效幫助ASP.NET開發人員提高生產力的機制。

        ASP.NET 4.0中所納入的AJAX技術,不僅僅是過去你在ASP.NET AJAX套件中看到的UpdatePanelScriptManager等控制項,這次ASP.NET 4當中更加入了許多用戶端的AJAX技術,諸如Client-side template renderingLive data binding…等,這些機制讓ASP.NET開發人員可以輕易的撰寫一個以用戶端為出發點的應用程式,將postback(submit)的使用降到最低;我們甚至可以輕易寫出一個完全不需要postback的純用戶端Web應用程式,僅僅透過Web/WCF Services亦可和用戶端瀏覽器上的網頁進行遠端資料繫結,此舉顛覆了過去ASP.NET的伺服器端事件驅動的行為概念,讓pure client-side web application變為可能。

        同時微軟也將擴充了新功能的一整組ASP.NET AJAX framework libraries(Client端類別函式庫)進行重構(Code refactoring)以提高其執行效能並降低程式碼大小以節省下載時間。

ASP.NET MVC 2

 

        ASP.NET 4.0當中的MVC 2則是另一個引人注目的焦點,這次ASP.NET MVC 2儘管被正式的蒐錄在ASP.NET 4.0當中,但是微軟依舊不忘強調一個觀念,ASP.NET MVC是開發人員可以選擇的Web應用程式開發技術『之一』,ASP.NET MVC一點也沒有取代ASP.NET WebForms的態勢或意圖。

        同時開發人員必須明白,使用ASP.NET MVC儘管可以帶來諸如便於Unit Test、易於實行TDD、能夠擁有良好的應用程式開發架構、以及有效降低程式碼相依性等等優點,但是這並不代表著MVC可以完全取代WebForms技術成為未來Web應用程式開發的主流(或唯一)選擇,ASP.NET  MVC架構的出現僅僅是為了提供另一種選擇性,開發人員必須依照自己的需要(以及專案的性質)來選擇適合的開發技術。(當然,這也表示WebFormsMVC是互斥的兩種開發架構)

        由於ASP.NET MVC中沒有任何的控制項(Web Control)可以使用,因此ASP.NET MVC 2這個版本將提供更多的Helper,讓UI層的設計更加的簡便,同時基於AJAX Style Web Application的需求,非同步的Controller也是重點的支援項目之一。除此之外,Dynamic Data技術中超受歡迎的Data-Annotation Attribute這次也被納入了MVC 2當中。

        總的來說,整個ASP.NET MVC架構的目的在讓開發人員能夠建構出大型Web應用程式,同時能夠保有良好的開發架構,便於日後的維護、提高重用性、降低程式碼間的相依性,能夠讓應用系統的延展性大幅提升,有效的降低更新與維運的成本。

Dynamic Data

 

        ASP.NET 4當中的Dynamic Data技術,可以讓我們建立所謂的data-driven applications,其中的Data-Annotation AttributeControl TemplateField Template等機制,讓開發人員可以透過模板技術建立出一套面對不同資料庫Schema依舊可運行的Web應用程式,而不會像過去WebForm的資料庫存取技術在面對不同的資料表時常常需要重新截取資料庫結構或重新設計Template Field的窘境,讓我們有機會能夠用同一套版型來建立出可適用於多種不同資料表結構的資料庫應用程式。

        在實務上我們常常會需要針對不同資料表建立CRUD等功能,如果能夠用一個模板(僅僅開發一次),在面對不同的資料表時可以完全不需要修改程式碼一樣即可運行,豈不是便利至極? 這就是Dynamic Data將提供給開發人員的好處。
ASP.NET 4.0中的Dynamic Data技術增加了更多的新功能,諸如支援新的Display Attribute,還有ADO.NET Entity Framework中的Many-to-Many Relationships 以及針對現有網站的支援等,讓Dynamic Data技術可以更廣泛的應用在已開發的專案當中。

        總括來說,ASP.NET到了4.0版,已經不是過去2.0時代單單只是為了快速建構Web應用程式的開發技術,除了效能與現有功能的提升之外,ASP.NET將引領開發人員進入大型商用應用程式開發的領域,讓Web開發人員手中有足夠的武器來面對各種不同形式的Web應用程式設計需求。從下一期開始,我們將陸續為您介紹ASP.NET 4.0當中的每一項新功能,與您一同進入更豐富的Web應用程式設計領域。

沒有留言:

張貼留言