ASP.NET技術從1.0版本升級到1.1變化不是很大。然而,從ASP.NET 1.x升級到2.0,卻不是件輕而易舉的事情。ASP.NET 2.0技術增加了大量方便、實用的新特性。ASP.NET 2.0主要提供控件、頁面框架、服務與APIs等3個方面的技術特性。
控件
在ASP.NET 1.x時代,由於內置服務器控件數量有限、功能覆蓋面窄,因此,開發人員怨聲載道。為了消除這個技術軟肋,ASP.NET 2.0做出了突破性改進。在ASP.NET 2.0中,新增數十個服務器控件。根據控件功能特征,可分為:數據控件(包括數據源控件和數據綁定控件)、登錄系列控件、Web部件、站點導航控件和其他控件等。這些服務器控件對於提高工作效率,降低開發成本有著重要作用。
頁面框架
在頁面框架方面,ASP.NET 2.0同樣做出了重大改進,主要體現在以下4項技術特性:母版頁、主題和皮膚、編譯機制和本地化。母版頁特性在大型Web站點中應用廣泛,它能夠在一定程度上代替框架頁功能,從而迅速建立具有統一布局和外觀的頁面,並且有效降低維護人員的工作強度。主題和皮膚是ASP.NET 2.0的一項新增功能,使用此功能可以一次性設置一種類型的服務器控件外觀樣式。該外觀可方便地應用於單個頁面、整個Web應用程序,甚至整個服務器。在應用程序編譯方面,ASP.NET 2.0提供了幾種替代方案,從而擴大了編譯的選擇范圍,開發人員可以根據特定需要進行選擇。另外,ASP.NET 2.0在本地化方面也做出了一些改進。
服務與APIs
這個部分包括的新特性在ASP.NET 2.0中占有較大比例,主要包括成員資格管理、角色管理、用戶配置、數據緩存、配置與管理工具等。利用這些功能,可以快速實現用戶和角色管理、個性化用戶配置、數據緩存、應用程序可視化配置等任務。以成員資格和角色管理功能為例,在ASP.NET 1.x時代,實現這兩項功能是比較繁瑣和困難的;而在ASP.NET 2.0中不僅提供默認數據庫表,而且只需調用幾個簡單的方法,就能夠輕松地實現成員和角色管理功能。
一、新增服務器控件
在ASP.NET 1.x時代,有很多開發人員對其中的內置服務器控件提出批評。主要的觀點是ASP.NET 1.x提供的控件數量太少,難以滿足日益增長的開發需求,無法更快更好地開發應用程序。為了彌補ASP.NET 1.x的不足,ASP.NET 2.0新增了數十個服務器控件。根據控件功能,可以分為站點導航控件、數據控件(包括數據源控件和數據綁定控件)、登錄系列控件、Web部件和其他服務器控件等。熟練使用這些服務器控件對於提供工作效率、減低開發成本有著重要意義。
1、站點導航控件
在ASP.NET 1.x時期,微軟發布了一組IE Web Control控件(非內置控件),其中包括一個實現樹形結構的TreeView控件,它就是典型的站點導航控件。在ASP.NET 2.0中,不僅包含和擴展了原有的TreeView,而且還新增了另外兩個控件。
站點導航控件主要用於實現站點頁面導航功能。站點導航控件包括SiteMapPath、Menu和TreeView控件。SiteMapPath控件能夠根據站點導航信息,准確定位當前頁面所處整個Web站點的位置,同時,使用層次化表示方法,將位置信息顯示為有序的靜態文本或者超鏈接。另外,還可以通過調整相關屬性,自定義位置信息的外觀以及實現數據綁定等功能。Menu控件可構建與Windows應用程序類似的菜單。該控件不僅可與多種數據源控件集成,而且還可以支持自定義外觀、事件處理等功能。TreeView控件主要用於顯示樹形結構,該樹與Windows資源管理器中的樹類似。同時,該控件還支持數據綁定、自定義外觀等功能。
2、數據控件
ASP.NET 2.0的數據控件可細分為兩類:一類是數據源控件,另一類是數據綁定控件。數據源控件包括SqlDataSource、AccessDataSource、XmlDataSource、SiteMapDataSource和ObjectDataSource。這些控件主要實現連接不同數據源、數據檢索和修改功能,例如,查詢、排序、分頁、篩選、更新、刪除和插入等。數據綁定控件主要包括GridView、DetailsView和FormView等。這些控件可與數據源控件配合,將獲取的數據以不同形式顯示在頁面上。由於數據源控件和數據綁定控件支持良好的可視化設計時功能,因此,當利用Visual Studio 2005實現數據訪問時,甚至不需要編寫任何代碼就能夠完成任務。
3、登錄系列控件
很多Web站點都提供了用戶登錄驗證以及相關功能。常見功能包括用戶登錄、創建新用戶等。總體而言,實現這些功能的基本方法比較類似,然而,由於開發人員的水平差異,可能造成一些不必要的漏洞和錯誤。為了解決這個問題,ASP.NET 2.0將與登錄驗證相關的實現集成為登錄系列控件。這些控件包括:Login、LoginName、LoginView、LoginStatus、PasswordRecovery、ChangePassword和CreateUserWizard。利用這些控件可以輕松實現登錄驗證、創建新用戶、顯示登錄狀態、顯示登錄用戶名、更新和重置密碼等。出於靈活性考慮,登錄系列控件不僅提供了大量成員對象,而且還支持自定義模板功能(部分控件支持)。另外,登錄系列控件還加強了安全方面的控制。例如,默認情況下,登錄系列控件是以純文本形式工作於HTTP上。如果應用程序對安全性十分關注,那麼可以使用帶SSL加密的HTTPS。
Login控件用於實現用戶登錄驗證,CreateUserWizard控件用於創建新用戶。可能讀者會沿襲ASP.NET 2.0之前的思路,認為實現以上兩種應用需要添加多個文本框、按鈕等元素,並設計實現數據庫、數據訪問邏輯等。實際上,使用Login和CreateUserWizard控件實現以上應用,非常簡單,簡單到不需要編寫任何代碼,不需要自建數據庫,只需添加和設置控件即可。