Atlas—微軟的Ajax工具包(轉)

heying1229發表於2007-07-28

微軟現在已經進入了ASP.NET 2.0和Visual Web Developer 2005釋出版最後的RTM里程碑時刻。為了達到ZBB(Zero Bug Bounce),微軟已經鎖定了這些產品的特性,著重最佳化最終的質量、效能和可靠性。與此同時,微軟開始了下一個釋出版本的研發,其中一個重要的研究方向就是透過Ajax風格的程式設計在瀏覽器中實現日益流行的富客戶端應用。

今後的IE中將擁有Ajax所需的所有東西——DHTML、JScript和XmlHttp。實際上Outlook Web Access從1998年開始就已經提供了這種偉大的瀏覽體驗了。在ASP.NET 2.0中,微軟使用非同步回撥及舒適的Ajax風格的應用程式的編寫更加簡單,並且,微軟為此提供了大量的內建控制元件。

目前,幾乎所有的瀏覽器都提供了Ajax所需的技術,使用這種模式的富客戶端應用程式也不斷出現。今天,世界上出現了不計其數的Ajax風格的站點,包括Google的很多站點、A9和Flickr。微軟的很多站點也使用了這項技術,如Start.com和MSN Virtual Earth專案。

Ajax的風行說明使用者對於豐富的Web體驗的需求日益增長。然而,開發和除錯Ajax風格的Web應用程式是一項非常艱難的工作。要編寫一個豐富的Web UI,開發者需要詳細地掌握DHTML和JavaScript,並且還要掌握各種瀏覽器之間在設計細節上的不同。然而沒有哪些能夠簡化這些應用程式的設計和開發。最後,除錯和測試這些應用程式會變得異常困難。

微軟致力於簡化Ajax風格Web應用的開發,並提供豐富的、可互動的和個性化的使用者體驗。開發者可以對客戶端指令碼不甚瞭解;但他們可以無縫地將瀏覽器UI與他們編寫的其他應用無縫地整合在一起,並且他們可以很容易地開發和除錯這些應用程式。

出於這一目的,微軟啟動了一個新的專案,研發代號為“Atlas”。同時,微軟還啟動了一個站點來持續更新其核心進展和示例,並圍繞它建立一個活躍的社群。在9月份的PDC大會上,開發者可以看到Atlas的技術預覽版。以下是Atlas所擁有的特性。

Atlas客戶端指令碼框架

Atlas客戶端指令碼框架是可擴充套件的、100%物件導向的JavaScript客戶端指令碼框架,允許開發者很容易地構建擁有豐富的UI功能並且可以連線Web Services的Ajax風格瀏覽器應用程式。使用Atlas,開發者可以使用DHTML、JavaScript和XMLHTTP來編寫Web應用程式,而無須掌握這些技術的細節。

Atlas客戶端指令碼框架可以在所有的現代瀏覽器上執行,不論使用的是什麼Web伺服器。它還完全不需要安裝,只要在頁面中引用正確的指令碼檔案即可。

Atlas客戶端指令碼框架包含下列元件:

一個可擴充套件的核心框架,其中為JavaScript新增了很多新特性,如生存期管理、繼承、多播事件處理器和介面

一個基礎類庫,提供了通用特性,如豐富的字串操作功能、計時器和執行任務等

一個UI框架,可以跨瀏覽器實現HTML的動態行為

一個網路棧,用於簡化對伺服器的連線和對Web Services的訪問

一組具有豐富UI功能的控制元件,如自動完成文字框、彈出皮膚、動畫控制元件和拖放

一個瀏覽器相容的層(Layer),用於在不同瀏覽器中定位不同的指令碼行為

Atlas的ASP.NET伺服器控制元件

對於ASP.NET應用程式,微軟專門設計了一組Ajax風格的伺服器控制元件,並且加強了現有的ASP.NET頁面框架和控制元件,以便支援Atlas客戶端指令碼框架。

ASP.NET 2.0中有一項稱作非同步客戶端回撥(Asynchronous Client Callbacks)的新特性,使得構建從伺服器上更新內容時不會引發頁面中斷的ASP.NET頁面變得很容易。非同步客戶端回撥包裝了XMLHTTP,能夠在很多瀏覽器上工作。ASP.NET本身就包括了很多使用回撥的控制元件,包括具有客戶端分頁和排序功能的GridView和DetalsView控制元件,以及TreeView控制元件的虛擬列表支援。

Atlas客戶端指令碼框架將完全支援ASP.NET 2.0回撥,但微軟希望在今後進一步增強瀏覽器和伺服器之間的整合性。例如,你可以將Atlas客戶端控制元件的資料繫結並指定為伺服器上的ASP.NET資料來源控制元件,並且可以從客戶端非同步地控制Web頁面的個性化特徵。

ASP.NET Web Services整合

和任何客戶端應用程式一樣,一個Ajax風格的Web應用程式通常也需要訪問Web伺服器的一些功能。Atlas應用程式連線伺服器的模型和其他平臺類似,都是使用Web Services來實現。

透過ASP.NET Web Services整合,Atlas應用程式將可以在任何支援XMLHTTP的瀏覽器上透過Atlas客戶端用本框架來直接訪問任何宿主了ASP.NET的asmx或Indigo服務。該框架將會自動處理、代理和指令碼到物件、物件到指令碼的序列化問題。透過使用Web Services整合,開發者可以使用單一的程式設計模型來編寫Web Services,並且在任何應用程式中使用它們,不論是基於瀏覽器的站點上還是智慧客戶端應用程式中。

Atlas的ASP.NET構建塊

在ASP.NET 2.0中,微軟構建了一組豐富的構建塊服務(Building Block Services),這使得構建強大、個性化的Web應用程式變得不可思議的簡單。這些構建塊極大地降低了在開發通用的Web應用程式過程中需要編寫的程式碼數量,比如管理使用者、透過角色驗證使用者和儲存使用者的個性化設定資訊等。

使用Atlas,我們可以在任何瀏覽器上的任何客戶端應用程式中向訪問Web Services那樣訪問這些功能。例如,如果你正在開發一個站點來顯示使用者的TO-DO專案,你可以使用ASP.NET的Profile服務來將他們存放在伺服器上的使用者自定義配置檔案中。這樣,即使使用者從一臺機器轉移到另一臺機器上,也同樣可以訪問這些專案。

微軟將提供的服務包括(全部是基於ASP.NET 2.0的):

Profile:在伺服器上存放每個使用者特有的資料

UI個性化:在伺服器上存放個性化的UI設定資訊

驗證:驗證使用者

角色:基於使用者的角色驗證使用者任務和提供不同的UI

由於這些構建塊是基於伺服器的,開發者需要對他們應用和其他站點一樣的模型。這些服務不需要客戶端下載任何東西——只要在瀏覽器中引用指令碼代理即可。

所有的ASP.NET 2.0構建塊服務都是可插拔的,這使用一種通用的提供者(Provider)模型可擴充套件模式在後臺實現。微軟提供的內建提供程式允許開發使用SQL Server資料庫或Active Directory作為儲存容器,開發者也可以很容易地插接自己的提供程式。例如,你可能希望使用叢集而不是資料庫伺服器來存放使用者的配置檔案,這時,你只需將你的提供程式插接進來即可——這一切都由開發者來決定。

客戶端構建塊服務

除了DHTML、JScript和XMLHTTP,微軟還提供了一組附加的服務來加強客戶端的功能,並提供增強的體驗。

對於這樣的服務,本地瀏覽器快取就是一個很好的例子。當啟用了本地瀏覽器快取時,Web站點就可以將內容儲存到快取中,並在需要的時候很快地取出。但瀏覽器並未提供向快取中存放資料的API,而且象Google Map或OWA這樣的應用程式不得不透過很多工作產生一個唯一的URL,才能使瀏覽器快取它。在Atlas中,微軟提供了可程式設計的本地儲存/快取,因此應用程式可以很方便、有效並且地在本地快取資料。

同其它應用程式的整合是檢驗Web體驗是否豐富的另一個新的標準。例如,當一個使用者瀏覽一個拍賣網站並對一件商品出價時,他可能想隨時知道這個拍賣什麼時候結束,但他如何才能將這個事件新增到個人的日曆程式中?Atlas帶來了一系列客戶端構建塊服務,當使用者選擇“新增到日曆”時,瀏覽器將呼叫接駁點來獲取日曆資料,並將其傳遞到本地的日曆程式中。此時頁面上無須下載或執行任何特殊的程式碼或執行任何初始化動作,因此,這比ActiveX要得多。

下一步

隨著我們的技術進展,還會發生很多事情。我們現在已經開始研發、開發和除錯的下一個版本了,因此,我們將很快為這些型別的豐富Web應用程式提供更加偉大的開發體驗。

您可能會問的一個問題是:Atlas如何在Avalon和智慧客戶端上使用?

我們可以看到,Atlas是編寫豐富的、可互動的和個性化的Web瀏覽器應用程式的最好方式,而Avalon是微軟的下一代表現層模型,可以在Windows平臺上提供最豐富的使用者體驗。Avalon將使用最新的媒體整合功能和硬體加速裝置,提供卓越的視覺體驗。Avalon將帶來超越瀏覽器的體驗。

當然,當你構建Avalon應用程式的時候,你依然可以重用ASP.NET和Atlas中的程式設計模型。例如,Avalon客戶端上依然可以使用ASP.NET構建塊服務和客戶端構建塊服務。這種模型可以使你平滑地過渡到下一代應用程式。

[@more@]

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10172717/viewspace-928710/,如需轉載,請註明出處,否則將追究法律責任。

相關文章