《高等學校計算機教材:ASP.NET 3.5實用教程》包括教程、配套的實驗和綜合應用實習。教程部分包括13章,比較系統地介紹ASP。NET3。5,每一章一般都有小綜合應用實例,用以消化當前和此前的主要內容和知識,最后有ASP。NET綜合實例,就是一個綜合應用。由于專人重新閱讀《高等學校計算機教材:ASP。NET3。5實用教程》,試做書中所有實例、所有實驗和綜合運用,一般來說,讀者應該能夠看得懂,做得通,并且通過網絡免費提供課件、書中的源代碼和比較完整的應用系統。這樣,用于教學比較方便。
《高等學校計算機教材:ASP.NET 3.5實用教程》是較早介紹ASPNET3.5的教材,吸取了以前編寫ASP.NET教程的經驗。只要閱讀《高等學校計算機教材:ASP.NET3.5實用教程》,結合實驗進行練習,就能在較短的時間內基本掌握ASP.NET3.5及其應用技術。歡迎讀者比較選擇。
第1部分 實用教程
第1章 ASP.NET開發技術概述
1.1 Web工作原理
1.1.1 Web服務器
1.1.2 Web客戶端
1.2 HTML與HTTP
1.2.1 HTML標記語言
1.2.2 CSS樣式表
1.2.3 腳本語言
1.2.4 HTTP協議
1.2.5 URL
1.2.6 HTML表單與Web請求
1.3 Web開發技術的發展
1.3.1 靜態網頁與動態網頁
1.3.2 客戶端動態技術
1.3.3 服務器端動態技術
1.4 .NET Famework與ASP.NET
1.4.1 .NET Famework基本概念
1.4.2 ASP.NET 3.5概述
1.5 Visual Studio 2008集成開發工具簡介
1.5.1 Visual Studio 2008新特性
1.5.2 編譯和運行Web應用程序
1.5.3 部署Web應用程序
1.5.4 使用幫助系統
1.6 簡單的ASPNET程序實例
1.6.1 創建Web應用程序的一般步驟
1.6.2 一個簡單的ASPNET程序實例
習題
第2章 ASP.NET應用程序基礎
2.1 ASPNET應用程序
2.1.1 Web應用程序
2.1.2 移動Web應用程序
2.1.3 Web服務
2.2 ASP.NET應用程序結構
2.2.1 應用程序目錄結構
2.2.2 應用程序生命周期
2.3 ASP.NET頁面框架
2.3.1 aspx頁面代碼模式
2.3.2 aspx頁面元素
2.3.3 ASP.NET頁面布局
2.3.4 頁面指令
2.3.5 頁面生命周期
2.3.6 頁面事件
2.4 綜合應用
習題
第3章 ASP.NET內置對象
3.1 Response對象
3.1.1 Response對象常用屬性和方法
3.1.2 Response對象的應用
3.2 Request對象
3.2.1 Request對象常用屬性和方法
3.2.2 Request對象的應用
3.3 Server對象
3.3.1 Server對象常用屬性和方法
3.3.2 Server對象的應用
3.4 Application對象
3.4.1 Application對象常用屬性、方法和事件
3.4.2 Application對象的應用
3.5 Session對象
3.5.1 Session對象常用屬性、方法和事件
3.5.2 會話狀態模式的配置
3.5.3 優化會話性能
3.5.4 Session對象的應用
3.6 Cache對象
3.7 Page對象
3.7.1 Page對象常用屬性、方法和事件
3.7.2 Page對象的應用
3.8 綜合應用
習題
第4章 ASP.NET服務器控件和客戶端腳本
4.1 控件概述
4.2 HTML服務器控件
4.2.1 HTML服務器控件的層次結構
4.2.2 HTML服務器控件的基本語法
4.2.3 HTML服務器控件的屬性、方法和事件
4.2.4 HTML服務器控件的應用
4.3 標準控件
4.3.1 輸入與顯示控件
4.3.2 按鈕控件
4.3.3 選擇和列表控件
4.3.4 HyperLink控件
4.3.5 Table控件
4.3.6 AdRotator控件
4.3.7 Calendar控件
4.3.8 Image和ImageMap控件
4.3.9 MultiView和View控件
4.3.10 Wizard控件
4.4 驗證控件
4.4.1 客戶端驗證和服務端驗證
4.4.2 RequiredFieldValidator控件
4.4.3 RangeValidator控件
4.4.4 CompareValidator控件
4.4.5 RegularExpressionValidator控件
4.4.6 CustonValidator控件
4.4.7 ValidationSummary控件
4.4.8 關閉客戶端驗證功能
4.4.9 使用驗證組
4.5 用戶控件與自定義服務器控件
4.5.1 用戶控件
4.5.2 自定義控件
4.6 用JavaScript處理頁面和服務器控件
4.6.1 在控件上直接應用JavaScript
4.6.2 使用Page.ClientScript屬性
4.7 客戶端回調
4.7.1 回送和回調
4.7.2 使用回調
4.8 文件的上傳和郵件發送
4.8.1 文件上傳
4.8.2 郵件發送
4.9 綜合應用
習題
第5章 網站設計
5.1 母版頁
5.1.1 母版頁和內容頁概述
5.1.2 創建母版頁
5.1.3 創建內容頁
5.1.4 母版頁和內容頁的運行機制
5.1.5 訪問母版頁控件和屬性
5.1.6 動態加載母版頁
5.1.7 母版頁應用范圍
5.1.8 緩存母版頁
5.2 主題和皮膚
5.2.1 主題概述
5.2.2 創建主題
5.2.3 應用主題
5.2.4 動態加載主題
5.3 網站導航
5.3.1 站點地圖
5.3.2 用SiteMapPath控件導航
5.3.3 用Menu控件導航
5.3.4 用TreeView控件導航
5.4 綜合應用
習題
第6章 ASPNET數據庫編程
6.1 數據訪問技術
6.1.1 數據訪問概述
6.1.2 數據源控件簡介
6.1.3 數據綁定控件簡介
6.2 數據源控件
6.2.1 SqlDataSource控件
6.2.2 AccessDataSource控件
6.2.3 XmIDataSource控件
6.2.4 SiteMapDataSource控件
6.2.5 ObjectDataSource控件
6.2.6 LinqDataSource控件
6.3 數據綁定控件
6.3.1 GridView控件
6.3.2 ListView控件
6.3.3 DetailsView控件
6.3.4 FormView控件
6.3.5 其他數據綁定控件
6.3.6 內部數據綁定語法
6.4 ADO.NET數據訪問編程模型
6.4.1 ADO.NET數據訪問模型簡介
6.4.2 ADO.NET數據提供程序
6.4.3 .NET數據集
6.4.4 利用ADO.NET查詢數據庫
6.4.5 利用ADO.NET更新數據庫
6.4.6 事務處理
6.5 LINQ查詢
6.5.1 LINQ to Objects
6.5.2 LINQ to XML
6.5.3 LINO to SQL
6.6 綜合應用
習題…
第7章 ASP.NET網站開發架構
7.1 B/S架構設計理念
7.2 單層設計架構
7.3 二層設計架構
7.3.1 “門面模式”簡介
7.3.2 二層開發設計架構
7.4 三層設計架構
7.4.1 簡單三層設計架構
7.4.2 用Visual Studi02008創建三層設計架構
7.4.3 理解三層設計架構
7.4.4 引入實體項目的三層設計架構
7.4.5 跨數據庫實現的三層設計架構
習題
第8章 ASP.NET高級技術
8.1 ASP.NET配置
8.1.1 ASP.NET配置概述
8.1.2 配置文件的結構
8.1.3 常用配置
8.1.4 保護配置設置
8.2 身份驗證與授權
8.2.1 身份驗證概述
8.2.2 設置驗證方式
8.2.3 Forms身份驗證
8.2.4 用戶授權
8.3 ASP.NET XML編程
8.3.1 XML基本概念
8.3.2 XML數據訪問
8.3.3 XML數據顯示
8.4 綜合應用
習題
第9章 Web服務
9.1 Web服務的基本概念
9.1.1 基于組件的分布式計算概念
9.1.2 什么是WebService
9.1.3 Web Service使用的標準協議
9.2 創建ASPNET Web服務
9.2.1 @WebService指令
9.2.2 Web服務類
9.2.3 WebService特性
9.2.4 定義Web服務方法
9.2.5 測試Web服務
9.3 使用ASP.NET Web服務
9.3.1 添加Web引用
9.3.2 客戶端調用Web服務
9.4 綜合應用
習題
第10章 ASP.NET AJAX簡介
10.1 ASP.NET AJAX概述
10.1.1 為什么使用AJAX
10.1.2 Visual Studio 2008與ASP.NET AJAX
10.1.3 ASP.NET AJAX客戶端技術
10.1.4 ASP.NET AJAX服務器端技術
10.2 建立ASP.NET AJAX應用程序
10.2.1 建立不使用AJAX的頁面
10.2.2 建立包含AJAX的頁面
10.3 ASP.NET AJAX服務器端控件
10.3.1 ScriptManager控件
10.3.2 ScriptManagerProxy控件
10.3.3 UpdatePanel控件
10.3.4 Timer控件
10.3.5 UpdateProgress控件
10.4 ASP.NET AJAX控件工具集簡介
10.5 綜合應用
習題
第11章 ASPNET綜合實例
11.1 系統功能設計
11.2 系統流程
11.3 數據庫設計
11.4 數據訪問層設計
11.5 添加確發器
11.6 業務邏輯層設計
11.7 表示層設計
11.7.1 母版頁設計
11.7.2 站點導航地圖文件設計
11.7.3 頁面設計
11.7.4 全局變量
11.8 系統擴展
……
第2部分 實驗
驗證控件檢查輸入到其他控件中的數據,然后發出通過或失敗信息。這種檢查類型的范圍從簡單的檢查到非常復雜的模式匹配。驗證控件類似于其他ASP.NET 3.5控件,其屬性設置方式與其他標準Web控件相同。ASP.NET 3.5中的整個驗證模式只需要頁面設計者很少的自定義工作。如果添加驗證控件并設置它們的相關屬性,則驗證可在沒有編碼的情況下工作。
ASP.NET 3.5包含6個驗證控件。
(1)RequiredFieldValidator-用于要求用戶在表單字段中輸入必需的值。
(2)RangeValidator-用于檢測一個值是否在確定的最小值和最大值之間。
(3)CompareValidator—用于比較一個值和另一個值或執行數據類型檢查。
(4)RegularExpressionValidator-用于比較一個值和正則表達式。
(5)CustomValidator-用于執行自定義驗證。
(6)ValidationSummary-用于在頁面中顯示所有驗證錯誤的摘要。
不同的驗證控件主要在執行的檢查類型方面存在區別。這些驗證控件的大多數成員提供了相同的屬性集,因此在單獨研究每個驗證控件之前,將介紹這些一般性的屬性。這些屬性包括如下。
(1)ControlToValidate:標識頁面上的哪些控件應該由此驗證控件檢查。
(2)Text:若用戶輸入的數據違反了驗證規則,則將該字符串顯示給用戶。如果有ErrorMessage的值,但在Text屬性中沒有值,則ErrorMessage自動替換Text屬性。
(3)ErrorMessage和ValidationGroup:包含在Validation Summary中顯示的文本,當討論Validation Summary時將介紹這些屬性。
(4)Display:確定頁面在驗證控件顯示其Text消息時應如何處理它的布局。有3個選項,包括None、Static和Dynamic。
(5)SetFocusOnError:將頁面的焦點放置在產生錯誤的控件,讓用戶更容易修訂輸入。如果頁面上有多個驗證控件,并且多個驗證控件報告驗證失敗,則頁面上第一個失敗的驗證控件接收焦點。
(6)EnableClientScript:該屬性默認為True,表示允許客戶端驗證。
此外,每個控件中還有特定于測試類型的屬性。在后續內容中,將討論比較字段、值范圍和正則表達式的測試屬性。
4.4.1 客戶端驗證和服務端驗證
在窗體回送給服務器之前,對輸入該窗體上的數據進行的驗證稱為客戶端驗證。當請求發送到應用程序所在的服務器后,在請求/響應循環的這一刻,就可以為所提交的信息進行有效性驗證,這稱為服務器端驗證。驗證控件會在客戶端(瀏覽器)和服務器端都默認執行驗證。驗證控件使用客戶端JavaScript。從用戶體驗的角度來看,無論何時把一個無效的值輸入表單字段都能立即得到反饋。
對于驗證中的事件序列,有兩種情況:
(1)若客戶端支持JScript且驗證控件的EnableClientScript:true,則在客戶端和服務器上執行驗證。
(2)如果上面兩個條件的任何一個不滿足,則只在服務器上執行驗證。
如果在客戶端上執行驗證,則在被驗證的控件丟失焦點時進行驗證。注意,一般是在單擊Submit按鈕之前進行該操作。如果驗證失敗,則不會發送任何內容給服務器,但驗證控件將仍然通過使用JavaScript顯示關于失敗的文本消息。
當由服務器接收時,執行另一個驗證。如果頁面通過驗證,則頁面繼續執行它的其他任務。如果存在失敗,則將Page.IsValid設置為False,然后頁面執行腳本,但如果程序員檢查Page.IsValid狀態,則可以停止這些操作。頁面上的數據控件將不會執行任何寫入任務。然后,使用驗證錯誤消息重新構建頁面,并且以回送來響應。
比較安全的驗證形式是服務器端驗證。驗證總是在服務器上執行,無論是否執行客戶端驗證。這就防止了電子欺騙(黑客可借此偽造一個有效的服務器回送,從而繞開客戶端驗證)。添加客戶端選項可節省一些時間,因為如果在客戶端驗證中存在驗證失敗,則不需要建立來回的過程。
比較好的方法是先進行客戶端驗證,在窗體傳送給服務器后,再使用服務器端驗證進行檢查。這種方法綜合了兩種驗證的優點,總是執行服務器端驗證(對于ASP.NET 3.5驗證控件,無論如何都不可關閉這種驗證)。如果知道客戶端使用JavaScript,則客戶端驗證是額外的便利措施。如果一些客戶端沒有啟用JavaScript,仍然可以打開EnableClientScript,它將被瀏覽器忽略。