作者:Dflying Chen (http://dflying.cnblogs.com/)
Microsoft ASP.NET Atlas的出現幾乎顛覆了整個傳統的ASP.NET開發概念,理論上講,最“純粹”的Atlas應用程序將把一切表現層全部移到客戶端進行,服務器端僅僅是提供客戶端需要的服務。而目前為止這種客戶端編程模型還沒有很強大的IDE支持(想想編寫,調試JavaScript的時候是多麼的痛苦……),同時考慮到還存在著好多現有的ASP.NET程序,並且開發人員還需要一定的適應/學習時間。這樣Atlas在提供純粹的客戶端面向編程模型的同時,也允許控件開發者以服務器端控件的形式開發Atlas組件,讓傳統的ASP.Net開發者在開發時不會覺得有什麼不同之處,他們會同樣得到Visual Studio的設計期支持,編譯期檢查等特性,平緩了程序開發者的學習曲線。
Atlas的服務器端控件大都可以以Extender的形式提供,所謂Extender,顧名思義,就是對現有的控件的功能,行為等進行擴充的組件。例如,為現有的TextBox控件加上自動完成(auto complete)功能,為現有的Button控件加上確認對話框等。其中Atlas官方發布的Control Toolkit就是若干個這樣的Extender的集合,您可以到這裡:"Atlas" Control Toolkit更新發布(Version 1.0.60504.0),以及Atlas Control ToolKit 發布得到更詳細的信息。
對於這種非常常見的開發Extender的需求,Atlas為我們提供了一個Extender的基類以及相應的Visual Studio中的Project Template。在這個系列中,讓我們一起學習如何通過使用Atlas的Extender的基類以及相應的Visual Studio中的Project Template開發我們的自定義Extender。
在整個系列中,我將通過一個控件的完整開發過程來講解,這裡我選擇的Extender的功能是,在用戶填寫注冊信息時,使用AJax方式實時驗證用戶名是否被注冊,關於這個功能的詳細介紹以及客戶端Atlas Behavior的實現,請參考:使用ASP.Net Atlas開發實時驗證用戶名是否被注冊的自定義Behavior。我推薦對這個系列感興趣的朋友把這篇文章看懂,其中的概念也弄明白,將會在未來的開發中節省好多時間。
在開發這個控件前,我們需要安裝如下的組件/程序集:
Atlas April CTP,請參考:ASP.Net Atlas April CTP發布,當然,您可以只使用其中的Atlas.dll,但我還是建議您安裝Atlas Web Site的Template,這樣可以在開發的過程中實時測試您的控件。
Atlas Control Toolkit,請參考:"Atlas" Control Toolkit更新發布(Version 1.0.60504.0),以及Atlas Control ToolKit 發布,下載好運行自解壓文件AtlasControlToolkit.exe,您將得到三個目錄,其中在目錄AtlasControlExtender下有一個AtlasControlExtender.vsi文件,如果您不想手動創建Control項目以及眾多的相關文件/引用,那麼最好還是運行安裝一下這個Visual Studio的Project Template(噢,當然,Visual Studio還是必要的)。
如果一切順利的話,上述兩個步驟以後您在新建Web Site的時候就可以看到Atlas Web Site的Template了;同樣在新建項目的時候也能看到Atlas Control Project的選項。
順便也說一下,AtlasControlToolkit.exe解壓後的三個目錄中的另外兩個:
AtlasControlToolkit目錄中有這個Control Toolkit提供的若干個Extender,都帶有源代碼(不過沒有注釋)。這將是您在開發過程中不可缺少的示例程序!
SampleWebSite目錄中有上述Extender的使用文檔以及演示程序。您可以在這裡學到如何使用開發好的Extender。
這個Control Toolkit中的所有Extender以及提供的Extender的基類都遵守Microsoft Permissive License協議,這是個非常寬松的協議,基本沒有任何限制,請參見http://www.microsoft.com/resources/sharedsource/licensingbasics/permissivelicense.mspx 。
(今天就到這裡吧,不好意思寫了這麼短的文章。實在是有點累了……這個系列大概還要兩三篇左右。順祝各位兒童節快樂)