微軟現在已經(jīng)進(jìn)入了ASP.NET 2.0和Visual Web Developer 2005發(fā)布版最后的RTM里程碑時(shí)刻。為了達到ZBB(Zero Bug Bounce),微軟已經(jīng)鎖定了這些產(chǎn)品的特性,著(zhù)重優(yōu)化最終的質(zhì)量、性能和可靠性。
與此同時(shí),微軟開(kāi)始了下一個(gè)發(fā)布版本的研發(fā),其中一個(gè)重要的研究方向就是通過(guò)Ajax風(fēng)格的編程在瀏覽器中實(shí)現日益流行的富客戶(hù)端應用。
今后的IE中將擁有Ajax所需的所有東西——DHTML、JScript和XmlHttp。實(shí)際上Outlook Web Access從1998年開(kāi)始就已經(jīng)提供了這種偉大的瀏覽體驗了。在ASP.NET 2.0中,微軟使用異步回調及舒適的Ajax風(fēng)格的應用程序的編寫(xiě)更加簡(jiǎn)單,并且,微軟為此提供了大量的內建控件。
目前,幾乎所有的瀏覽器都提供了Ajax所需的技術(shù),使用這種模式的富客戶(hù)端應用程序也不斷出現。今天,世界上出現了不計其數的Ajax風(fēng)格的站點(diǎn),包括Google的很多站點(diǎn)、A9和Flickr。微軟的很多站點(diǎn)也使用了這項技術(shù),如Start.com和MSN Virtual Earth項目。
Ajax的風(fēng)行說(shuō)明用戶(hù)對于豐富的Web體驗的需求日益增長(cháng)。然而,開(kāi)發(fā)和調試Ajax風(fēng)格的Web應用程序是一項非常艱難的工作。要編寫(xiě)一個(gè)豐富的Web UI,開(kāi)發(fā)者需要詳細地掌握DHTML和JavaScript,并且還要掌握各種瀏覽器之間在設計細節上的不同。然而沒(méi)有哪些工具能夠簡(jiǎn)化這些應用程序的設計和開(kāi)發(fā)。最后,調試和測試這些應用程序會(huì )變得異常困難。
微軟致力于簡(jiǎn)化Ajax風(fēng)格Web應用的開(kāi)發(fā),并提供豐富的、可交互的和個(gè)性化的用戶(hù)體驗。開(kāi)發(fā)者可以對客戶(hù)端腳本不甚了解;但他們可以無(wú)縫地將瀏覽器UI與他們編寫(xiě)的其他應用無(wú)縫地集成在一起,并且他們可以很容易地開(kāi)發(fā)和調試這些應用程序。
出于這一目的,微軟啟動(dòng)了一個(gè)新的項目,研發(fā)代號為“Atlas”。同時(shí),微軟還啟動(dòng)了一個(gè)站點(diǎn)來(lái)持續更新其核心進(jìn)展和示例,并圍繞它建立一個(gè)活躍的社區。在9月份的PDC大會(huì )上,開(kāi)發(fā)者可以看到Atlas的技術(shù)預覽版。
以下是Atlas所擁有的特性。
Atlas客戶(hù)端腳本框架
Atlas客戶(hù)端腳本框架是可擴展的、100%面向對象的JavaScript客戶(hù)端腳本框架,允許開(kāi)發(fā)者很容易地構建擁有豐富的UI功能并且可以連接Web Services的Ajax風(fēng)格瀏覽器應用程序。使用Atlas,開(kāi)發(fā)者可以使用DHTML、JavaScript和XMLHTTP來(lái)編寫(xiě)Web應用程序,而無(wú)須掌握這些技術(shù)的細節。
Atlas客戶(hù)端腳本框架可以在所有的現代瀏覽器上運行,不論使用的是什么Web服務(wù)器。它還完全不需要安裝,只要在頁(yè)面中引用正確的腳本文件即可。
Atlas客戶(hù)端腳本框架包含下列組件:
l 一個(gè)可擴展的核心框架,其中為JavaScript添加了很多新特性,如生存期管理、繼承、多播事件處理器和接口
l 一個(gè)基礎類(lèi)庫,提供了通用特性,如豐富的字符串操作功能、計時(shí)器和運行任務(wù)等
l 一個(gè)UI框架,可以跨瀏覽器實(shí)現HTML的動(dòng)態(tài)行為
l 一個(gè)網(wǎng)絡(luò )棧,用于簡(jiǎn)化對服務(wù)器的連接和對Web Services的訪(fǎng)問(wèn)
l 一組具有豐富UI功能的控件,如自動(dòng)完成文本框、彈出面板、動(dòng)畫(huà)控件和拖放
l 一個(gè)瀏覽器兼容的層(Layer),用于在不同瀏覽器中定位不同的腳本行為
Atlas的ASP.NET服務(wù)器控件
對于ASP.NET應用程序,微軟專(zhuān)門(mén)設計了一組Ajax風(fēng)格的服務(wù)器控件,并且加強了現有的ASP.NET頁(yè)面框架和控件,以便支持Atlas客戶(hù)端腳本框架。
ASP.NET 2.0中有一項稱(chēng)作異步客戶(hù)端回調(Asynchronous Client Callbacks)的新特性,使得構建從服務(wù)器上更新內容時(shí)不會(huì )引發(fā)頁(yè)面中斷的ASP.NET頁(yè)面變得很容易。異步客戶(hù)端回調包裝了XMLHTTP,能夠在很多瀏覽器上工作。ASP.NET本身就包括了很多使用回調的控件,包括具有客戶(hù)端分頁(yè)和排序功能的GridView和DetalsView控件,以及TreeView控件的虛擬列表支持。
Atlas客戶(hù)端腳本框架將完全支持ASP.NET 2.0回調,但微軟希望在今后進(jìn)一步增強瀏覽器和服務(wù)器之間的集成性。例如,你可以將Atlas客戶(hù)端控件的數據綁定并指定為服務(wù)器上的ASP.NET數據源控件,并且可以從客戶(hù)端異步地控制Web頁(yè)面的個(gè)性化特征。
ASP.NET Web Services集成
和任何客戶(hù)端應用程序一樣,一個(gè)Ajax風(fēng)格的Web應用程序通常也需要訪(fǎng)問(wèn)Web服務(wù)器的一些功能。Atlas應用程序連接服務(wù)器的模型和其他平臺類(lèi)似,都是使用Web Services來(lái)實(shí)現。
通過(guò)ASP.NET Web Services集成,Atlas應用程序將可以在任何支持XMLHTTP的瀏覽器上通過(guò)Atlas客戶(hù)端用本框架來(lái)直接訪(fǎng)問(wèn)任何宿主了ASP.NET的asmx或Indigo服務(wù)。該框架將會(huì )自動(dòng)處理、代理和腳本到對象、對象到腳本的序列化問(wèn)題。通過(guò)使用Web Services集成,開(kāi)發(fā)者可以使用單一的編程模型來(lái)編寫(xiě)Web Services,并且在任何應用程序中使用它們,不論是基于瀏覽器的站點(diǎn)上還是智能客戶(hù)端應用程序中。
Atlas的ASP.NET構建塊
在ASP.NET 2.0中,微軟構建了一組豐富的構建塊服務(wù)(Building Block Services),這使得構建強大、個(gè)性化的Web應用程序變得不可思議的簡(jiǎn)單。這些構建塊極大地降低了在開(kāi)發(fā)通用的Web應用程序過(guò)程中需要編寫(xiě)的代碼數量,比如管理用戶(hù)、通過(guò)角色驗證用戶(hù)和存儲用戶(hù)的個(gè)性化設置信息等。
使用Atlas,我們可以在任何瀏覽器上的任何客戶(hù)端應用程序中向訪(fǎng)問(wèn)Web Services那樣訪(fǎng)問(wèn)這些功能。例如,如果你正在開(kāi)發(fā)一個(gè)站點(diǎn)來(lái)顯示用戶(hù)的TO-DO項目,你可以使用ASP.NET的Profile服務(wù)來(lái)將他們存放在服務(wù)器上的用戶(hù)自定義配置文件中。這樣,即使用戶(hù)從一臺機器轉移到另一臺機器上,也同樣可以訪(fǎng)問(wèn)這些項目。
微軟將提供的服務(wù)包括(全部是基于ASP.NET 2.0的):
l Profile:在服務(wù)器上存放每個(gè)用戶(hù)特有的數據
l UI個(gè)性化:在服務(wù)器上存放個(gè)性化的UI設置信息
l 驗證:驗證用戶(hù)
l 角色:基于用戶(hù)的角色驗證用戶(hù)任務(wù)和提供不同的UI
由于這些構建塊是基于服務(wù)器的,開(kāi)發(fā)者需要對他們應用和其他站點(diǎn)一樣的安全模型。這些服務(wù)不需要客戶(hù)端下載任何東西——只要在瀏覽器中引用腳本代理即可。
所有的ASP.NET 2.0構建塊服務(wù)都是可插拔的,這使用一種通用的提供者(Provider)模型可擴展模式在后臺實(shí)現。微軟提供的內建提供程序允許開(kāi)發(fā)使用SQL Server數據庫或Active Directory作為存儲容器,開(kāi)發(fā)者也可以很容易地插接自己的提供程序。例如,你可能希望使用集群而不是數據庫服務(wù)器來(lái)存放用戶(hù)的配置文件,這時(shí),你只需將你的提供程序插接進(jìn)來(lái)即可——這一切都由開(kāi)發(fā)者來(lái)決定。
客戶(hù)端構建塊服務(wù)
除了DHTML、JScript和XMLHTTP,微軟還提供了一組附加的服務(wù)來(lái)加強客戶(hù)端的功能,并提供增強的體驗。
對于這樣的服務(wù),本地瀏覽器緩存就是一個(gè)很好的例子。當啟用了本地瀏覽器緩存時(shí),Web站點(diǎn)就可以將內容存儲到緩存中,并在需要的時(shí)候很快地取出。但瀏覽器并未提供向緩存中存放數據的API,而且象Google Map或OWA這樣的應用程序不得不通過(guò)很多工作產(chǎn)生一個(gè)唯一的URL,才能使瀏覽器緩存它。在Atlas中,微軟提供了可編程的本地存儲/緩存,因此應用程序可以很方便、有效并且安全地在本地緩存數據。
同其它應用程序的集成是檢驗Web體驗是否豐富的另一個(gè)新的標準。例如,當一個(gè)用戶(hù)瀏覽一個(gè)拍賣(mài)網(wǎng)站并對一件商品出價(jià)時(shí),他可能想隨時(shí)知道這個(gè)拍賣(mài)什么時(shí)候結束,但他如何才能將這個(gè)事件添加到個(gè)人的日歷程序中?Atlas帶來(lái)了一系列客戶(hù)端構建塊服務(wù),當用戶(hù)選擇“添加到日歷”時(shí),瀏覽器將調用接駁點(diǎn)來(lái)獲取日歷數據,并將其傳遞到本地的日歷程序中。此時(shí)頁(yè)面上無(wú)須下載或運行任何特殊的代碼或執行任何初始化動(dòng)作,因此,這比ActiveX要安全得多。
下一步
隨著(zhù)我們的技術(shù)進(jìn)展,還會(huì )發(fā)生很多事情。我們現在已經(jīng)開(kāi)始研發(fā)、開(kāi)發(fā)和調試工具的下一個(gè)版本了,因此,我們將很快為這些類(lèi)型的豐富Web應用程序提供更加偉大的開(kāi)發(fā)體驗。
您可能會(huì )問(wèn)的一個(gè)問(wèn)題是:Atlas如何在Avalon和智能客戶(hù)端上使用?
我們可以看到,Atlas是編寫(xiě)豐富的、可交互的和個(gè)性化的Web瀏覽器應用程序的最好方式,而Avalon是微軟的下一代表現層模型,可以在Windows平臺上提供最豐富的用戶(hù)體驗。Avalon將使用最新的媒體集成功能和硬件加速設備,提供卓越的視覺(jué)體驗。Avalon將帶來(lái)超越瀏覽器的體驗。
當然,當你構建Avalon應用程序的時(shí)候,你依然可以重用ASP.NET和Atlas中的編程模型。例如,Avalon客戶(hù)端上依然可以使用ASP.NET構建塊服務(wù)和客戶(hù)端構建塊服務(wù)。這種模型可以使你平滑地過(guò)渡到下一代應用程序。
聯(lián)系客服