通過專業的循序漸進指導學習使用Visual Studio 2015開發ASP.NET
ASP.NET允許程序員建立更動態的網站、Web應用和Web服務,包含了最新更新,什么時間學習這門技術都為時不晚。ASP.NET和Visual Studio的最新版本能幫助開發人員提高效率,創建更強壯的應用程序,進一步拓寬技術。本書以循序漸進的方式提供了ASP.NET開發的專家級指導,從框架的最基礎知識到高級的安全性和數據處理主題,應有盡有。通過清晰的示例闡述重要的技術。從頭到尾、詳盡的描述使本書成為一本非常有價值的多合一參考書,適合初學者和需要提高效率的開發人員閱讀。
主要內容
◆ 講解ASP.NET和Visual Studio 2015的基礎知識,并構建一個示例應用程序
◆ 演示使用HTML和CSS設計Web頁面,包括高效的導航、用戶控件、一致性等
◆ 從頭開始解釋C#和VB.NET編程,包括代碼的組織、面向對象基礎和重要術語
◆ 討論ASP.NET Web Forms服務器控件和MVC輔助程序及擴展程序
◆ 探討使用ASP.NET AJAX、jQuery以及ADO.NET和Entity Framework進行高級數據處理
◆ 安全性、調試、部署、疑難解答等
本書面向希望建立健壯的、高性能、可伸縮的Web應用程序的讀者。雖然開發工具運行在Microsoft Windows下,但可以把應用程序自由地部署到當前幾乎任何操作系統上。因此,甚至沒有Microsoft服務器的公司,現在也能運行ASP.NET Web應用程序。
軟件開發新手學習本書也應該不成問題,因為本書的結構很適合初學者。經驗豐富、但不了解Web開發的人員,也會在本書中找到許多不同領域的興趣點和用法,尤其是當前不使用C#作為編程語言的人員。
前 言
據估計,截至2015年6月,世界人口的45%訪問過互聯網。互聯網用戶超過30億,而且這個數字還在不斷增加。這是一個巨大的互聯市場,可以得到我們需要的任何內容:可能是一個簡單的Web頁面,也可能是一個復雜的Web應用程序。
使簡單的Web頁面在線有很多方法,但構建Web應用程序的方法就少很多。其中一種Web應用程序技術是Microsoft 的ASP.NET。
ASP.NET是一個框架,支持構建健壯、高效的Web應用程序。可以把它看成汽車的結構支撐。可在這個結構上添加兩種不同的設計:ASP.NET Web Forms 和 ASP.NET MVC。這兩種設計都建立在ASP.NET的基礎上,依賴通過ASP.NET使用的公共功能。
Visual Studio 2015是創建和維護ASP.NET Web應用程序的主要工具。它有助于輕松地處理Web應用程序從應用程序的“外觀和操作方式”一直到部署的各個方面,并跳過之間的所有步驟。此外,因為Microsoft致力于支持ASP.NET開發人員,所以它是功能全面的免費版!
本書研究的是ASP.NET Web Forms 和 MVC。通過本書可以熟悉功能全面的Web應用程序的各種組件,在學習開發流程的不同部分時,創建一個示例應用程序。我們將學習這兩個框架如何工作,其中一些方法非常相似,而另一些則完全不同。然而要清楚,無論方法如何,它們都建立在相同的框架上。
0.1 本書讀者對象
本書面向希望建立健壯的、高性能、可伸縮的Web應用程序的讀者。雖然開發工具運行在Microsoft Windows下,但可以把應用程序自由地部署到當前幾乎任何操作系統上。因此,甚至沒有Microsoft服務器的公司,現在也能運行ASP.NET Web應用程序。
軟件開發新手學習本書也應該不成問題,因為本書的結構很適合初學者。經驗豐富、但不了解Web開發的人員,也會在本書中找到許多不同領域的興趣點和用法,尤其是當前不使用C#作為編程語言的人員。
最后,有經驗的ASP.NET開發人員也可在本書中找到很多感興趣的話題,特別是只有Web Forms或MVC經驗(而不是兩者兼有)的開發人員。本書提供了這兩種方法的說明,還演示了如何將這兩種方法集成到一個應用程序中。
0.2 本書內容
本書講授如何構建功能齊全的Web應用程序。讀者將使用ASP.NETMVC和ASP.NET Web Forms方法建立一個完整站點,以理解、熟悉ASP.NET的全部功能。每一章都將開發過程推進一步:
● 第1章“ASP.NET 6.0入門”: 介紹ASP.NET通用框架,具體論述Web Forms和MVC,還要下載并安裝Visual Studio 2015。
● 第2章“建立最初的ASP.NET應用程序”:該章創建初始項目,包括進行配置,以支持Web Forms和MVC。
● 第3章“設計Web頁面”:該章介紹HTML和CSS,以便建立有吸引力的、可以理解的網站。
● 第4章“使用C#和VB.NET編程”:ASP.NET是一個開發框架,在其中可以使用不同的編程語言,包括C#和VB.NET。該章介紹如何使用它們。
● 第5章“ASP.NET Web Forms服務器控件”:ASP.NET Web Forms以服務器控件的方式提供了許多不同形式的內置功能。這些控件允許用很少的代碼創建復雜、功能豐富的網站。該章包括了最常見的Web Forms服務器控件。
● 第6章“ASP.NET MVC輔助程序和擴展”:ASP.NET Web Forms 通過服務器控件提供功能,而ASP.NET MVC使用輔助程序和擴展提供了另一種支持,該章描述這種支持。
● 第7章“創建外觀一致的網站”:該章將學習ASP.NET如何使用母版頁和布局頁面,創建外觀和操作方式一致的Web應用程序。
● 第8章“導航”:該章學習創建菜單和其他導航結構的不同方式,并了解可以在Web Forms和MVC中構建的不同類型的鏈接。
● 第9章“顯示和更新數據”:希望在ASP.NET中使用數據庫時,最好選擇SQL Server。該章將安裝SQL Server,創建初始數據庫模式,并在應用程序中創建和顯示數據。
● 第10章“處理數據”:本章介紹處理數據的高級主題,包括分頁、排序和使用高級數據庫元素,例如存儲過程等,從數據庫中檢索特定的信息集。還將學習如何將數據存儲在不同位置,縮短響應時間。
● 第11章“用戶控件和局部視圖”:ASP.NET通過服務器控件和輔助程序來提供內置功能。該章學習如何創建自己的項,來提供跨多個頁面的公共功能。
● 第12章“驗證用戶輸入”:Web站點功能的主要部分是由用戶輸入到應用程序中的數據定義的。該章介紹如何使用Web Forms和MVC提供的工具,來接受、驗證和處理用戶輸入。
● 第13章“ASP.NET AJAX”:AJAX是一種技術,它允許更新頁面的一部分,而無須向服務器調用整個頁面。該章學習WebForms和MVC是如何做到這一點的。
● 第14章“jQuery”:前面的所有內容都基于服務器上的工作。該章介紹如何使用jQuery在客戶端工作,而不必回調服務器。
● 第15章“ASP.NET網站的安全性”:該章增加了用戶的概念,演示了如何要求訪問者登錄應用程序,以識別他們。
● 第16章“個性化網站”:該章將學習如何定制用戶信息,確保用戶在我們的網站上感到受歡迎。捕獲用戶的訪問信息還可以幫助更好地理解他們訪問網站時需要什么。
● 第17章“異常處理、調試和跟蹤”:可惜,很難編寫出完全沒有問題的代碼。該章學習如何處理這些問題,包括查找和修改它們,確保出問題時,給用戶提供為什么他們的操作沒有成功的相關信息。
● 第18章“使用源代碼控制”:在團隊中工作是成為專業開發人員的一個重要方面。源代碼控制提供了一種在用戶之間共享代碼的方法。它也負責用保存好的版本備份源代碼的工作。
● 第19章“部署網站”:完成構建應用程序的所有工作后,最后一步是把它放在用戶可以訪問它的Web上!
0.3 本書結構
本書的主要教學方法是用一組詳細的實踐步驟帶領讀者構建一個完整的應用程序。這些“試一試”練習展示了所討論的主題,之后的“示例說明”部分解釋了每一步實現的功能。每個“試一試”部分都建立在之前的工作基礎上,所以應按順序完成。
章后的練習題測試讀者對相應章節內容的理解程度,答案在附錄中。一些練習題比較具體,其他練習題則一般化。它們旨在幫助讀者鞏固本章的內容。
本書包含大量內容,涵蓋了有時似乎完全不同的兩種技術方法。如果希望更詳細地了解某個方法或產品,可參閱章節中的額外信息源。
0.4 使用本書的條件
為了學習各章及其練習,需要:
● Windows 7、8或10,或者Windows Server 2008或2012
● 安裝Visual Studio 2015的最低要求,包括RAM和硬盤空間
0.5 源代碼
在讀者學習書中的示例時,可以手工輸入所有代碼,也可以使用本書附帶的源代碼文件。本書使用的所有源代碼都可以從www.wrox.com/go/beginningaspnetforvisualstudio下載。源代碼片段都附帶一個下載圖標和表示程序名的注釋,這說明該代碼可以下載,而且很容易在下載文件中找到。登錄到站點,使用Search工具或使用書名列表就可以找到本書。接著單擊本書細目頁面上的DownloadCode鏈接,就可以獲得所有的源代碼。讀者還可訪問www.tupwk.com.cn/downpage來下載源代碼。
提示:
由于許多圖書的標題都很類似,所以按ISBN搜索是最簡單的,本書英文版的ISBN是978-1-119-07742-8。
下載代碼后,只需要用自己喜歡的解壓縮軟件對它進行解壓縮即可。另外,也可以進入http://www.wrox.com/dynamic/books/download.aspx上的Wrox代碼下載主頁,查看本書和其他Wrox圖書的所有代碼。
0.6 勘誤表
盡管我們已經盡了各種努力來保證文章或代碼中不出現錯誤,但錯誤總是難免的,如果你在書中找到了錯誤,例如拼寫錯誤或代碼錯誤,請告訴我們,我們將非常感激。通過勘誤表,可以讓其他讀者避免受挫,當然,這還有助于提供更高質量的信息。
要在網站上找到本書英文版的勘誤表,可以登錄http://www.wrox.com,通過Search工具或書名列表查找本書,然后在本書的細目頁面上,單擊Book Errata鏈接。在這個頁面上可以查看到Wrox編輯已提交和粘貼的所有勘誤項。完整的圖書列表還包括每本書的勘誤表,網址是www.wrox.com/misc-pages/booklist.shtml。
如果在Book Errata頁面上找不到自己找出的“錯誤”,可以進入www.wrox.com/contact/ techsupport.shtml,完成表單,給我們發送你找到的錯誤。我們就會檢查你的反饋信息,如果正確,就在本書的勘誤表中發送一條消息,并在本書的后續版本中更正錯誤。
0.7 p2p.wrox.com
要與作者和同行討論,請加入p2p.wrox.com上的P2P論壇。這個論壇是一個基于Web的系統,便于你張貼與Wrox圖書相關的消息和相關技術,與其他讀者和技術用戶交流心得。該論壇提供了訂閱功能,當論壇上有新的消息時,它可以給你傳送感興趣的論題。Wrox作者、編輯和其他業界專家和讀者都會到這個論壇上來探討問題。
在http://p2p.wrox.com上,有許多不同的論壇,它們不僅有助于閱讀本書,還有助于開發自己的應用程序。要加入論壇,可以遵循下面的步驟:
(1) 進入p2p.wrox.com,單擊Register鏈接。
(2) 閱讀使用協議,并單擊Agree按鈕。
(3) 填寫加入該論壇所需要的信息和自己希望提供的其他信息,單擊Submit按鈕。
(4) 你會收到一封電子郵件,其中的信息描述了如何驗證賬戶,完成加入過程。
提示:
不加入P2P也可以閱讀論壇上的消息,但要張貼自己的消息,就必須加入該論壇。
加入論壇后,就可以張貼新消息,響應其他用戶張貼的消息。可以隨時在Web上閱讀消息。如果要讓該網站給自己發送特定論壇中的消息,可以單擊論壇列表中該論壇名旁邊的Subscribe to this Forum圖標。
關于使用Wrox P2P的更多信息,可閱讀P2P FAQ,了解論壇軟件的工作情況以及P2P和Wrox圖書的許多常見問題。要閱讀FAQ,可以在任意P2P頁面上單擊FAQ鏈接。
William Penberthy自從.NET初次部署以來就從事微軟軟件開發工作,使用C#和VB.NET進行客戶端、服務和Web開發。他直接參與了135個應用程序的開發,包括記錄保留管理軟件、電子商務店面、地理信息系統、銷售網點系統以及介于它們之間的許多應用程序。
第1章 ASP.NET 6.0入門 1
1.1 ASP.NET vNEXT簡介 1
1.1.1 超文本傳輸協議 2
1.1.2 HTML5 4
1.1.3 ASP.NET Web Forms 8
1.1.4 ASP.NET MVC 12
1.1.5 Web Forms和MVC
的類似性 14
1.1.6 選擇最佳方法 14
1.2 使用VisualStudio 2015 14
1.2.1 版本 14
1.2.2 下載和安裝 15
1.3 示例應用程序 19
1.4 小結 19
1.5 練習 20
1.6 本章要點回顧 20
第2章 建立最初的ASP.NET
應用程序 21
2.1 用VisualStudio 2015
創建Web站點 21
2.1.1 可用的項目類型 22
2.1.2 創建新站點 23
2.2 在應用程序中使用文件29
2.2.1 ASP.NET MVC應用程序的
文件類型 30
2.2.2 ASP.NET MVC應用程序的
文件系統結構 32
2.2.3 ASP.NET Web Forms
應用程序的文件類型 33
2.3 MVC和WebForms文件的
區別 36
2.4 創建示例應用程序 37
2.5 小結 39
2.6 練習 39
2.7 本章要點回顧 39
第3章 設計Web頁面 41
3.1 HTML和CSS 41
3.1.1 同時使用HTML和
CSS的原因 42
3.1.2 CSS簡介 44
3.2 CSS的更多內容 47
3.2.1 選擇器 47
3.2.2 屬性 50
3.2.3 樣式的優先級 53
3.3 樣式表 55
3.3.1 在頁面中添加CSS55
3.3.2 創建嵌入式樣式表和
內聯樣式表 58
3.4 應用樣式 58
3.5 管理樣式 63
3.6 小結 68
3.7 練習 69
3.8 本章要點回顧 69
第4章 使用C#和VB.NET編程 71
4.1 編程簡介 71
4.1.1 數據類型和變量 72
4.1.2 轉換數據類型 76
4.1.3 使用數組和集合 79
4.1.4 決策操作 83
4.1.5 循環 87
4.2 組織代碼 91
4.2.1 方法:函數和子例程91
4.2.2 編寫注釋和文檔 93
4.3 面向對象編程基礎 95
4.4 重要的面向對象術語 95
4.4.1 類 95
4.4.2 字段 96
4.4.3 屬性 97
4.4.4 方法 100
4.4.5 構造函數 100
4.4.6 繼承 101
4.4.7 事件 103
4.5 小結 104
4.6 練習 105
4.7 本章要點回顧 106
第5章 ASP.NET Web Forms
服務器控件 107
5.1 服務器控件簡介 107
5.2 在頁面上定義控件 108
5.3 控件的類型 114
5.3.1 標準控件 114
5.3.2 HTML控件 118
5.3.3 數據控件 119
5.3.4 驗證控件 119
5.3.5 導航控件 120
5.3.6 登錄控件 120
5.3.7 AJAX擴展控件120
5.3.8 其他控件集 121
5.4 ASP.NET狀態引擎122
5.5 狀態引擎的工作方式122
5.6 小結 130
5.7 練習 130
5.8 本章要點回顧 131
第6章 ASP.NET MVC輔助程序和
擴展 133
6.1 MVC較少地控制
Web Forms的原因 134
6.2 不同的方法 134
6.2.1 Razor 137
6.2.2 控制器 141
6.3 表單建立輔助程序 145
6.3.1 表單擴展 145
6.3.2 Editor和EditorFor147
6.3.3 模型綁定 147
6.4 小結 161
6.5 練習 162
6.6 本章要點回顧 162
第7章 創建外觀一致的網站 163
7.1 用母版頁使頁面布局一致163
7.1.1 在ASP.NETWeb Forms
中創建和使用母版頁 165
7.1.2 在ASP.NETWeb Forms
中創建內容頁面 173
7.1.3 在ASP.NETMVC中
創建布局 176
7.1.4 在ASP.NETMVC中
創建內容視圖 178
7.2 使用集中的基本頁面182
7.3 小結 187
7.4 練習 187
7.5 本章要點回顧 187
第8章 導航 189
8.1 瀏覽站點的不同方式190
8.1.1 理解絕對URL和
相對URL 190
8.1.2 理解默認文檔 192
8.1.3 友好的URL 193
8.2 使用ASP.NET WebForms
導航控件 194
8.3 在ASP.NET MVC中導航 204
8.3.1 路由 204
8.3.2 創建導航結構 208
8.3.3 編程重定向 210
8.3.4 以編程方式把客戶
重定向到另一個頁面 210
8.3.5 服務器端重定向212
8.4 導航的實用須知 216
8.5 小結 216
8.6 練習 217
8.7 本章要點回顧 217
第9章 顯示和更新數據 219
9.1 使用SQL ServerExpress 220
9.1.1 安裝 220
9.1.2 SQL Server Management
Studio 226
9.1.3 在VisualStudio中連接 230
9.2 數據訪問的Entity
Framework方法 233
9.2.1 數據優先 233
9.2.2 代碼優先 234
9.2.3 從數據庫中選擇數據241
9.3 Web窗體中的數據控件243
9.3.1 DetailsView 243
9.3.2 GridView控件248
9.4 MVC中的數據顯示254
9.4.1 在MVC中顯示列表 254
9.4.2 DetailsViews 257
9.5 小結 260
9.6 練習 261
9.7 本章要點回顧 261
第10章 處理數據 263
10.1 排序和分頁 264
10.1.1 Web Forms服務器
控件中的排序和分頁 264
10.1.2 MVC列表中的排序和
分頁功能 268
10.2 更新和/或插入數據 277
10.3 數據庫訪問的非代碼
優先方式 284
10.4 緩存 293
10.4.1 在ASP.NET應用程序中
緩存數據的不同方式 293
10.4.2 緩存數據的常見問題297
10.5 小結 297
10.6 練習 298
10.7 本章要點回顧 298
第11章 用戶控件和局部視圖 301
11.1 用戶控件簡介 302
11.1.1 創建用戶控件302
11.1.2 添加用戶控件306
11.1.3 給用戶控件添加邏輯313
11.2 使用局部視圖 318
11.2.1 添加局部視圖319
11.2.2 管理局部視圖的
控制器 322
11.3 模板 328
11.4 小結 334
11.5 練習 335
11.6 本章要點回顧 335
第12章 驗證用戶輸入 337
12.1 從用戶那里收集數據337
12.2 在Web Forms中驗證
用戶輸入 338
12.3 在MVC中驗證用戶輸入 347
12.3.1 模型特性 347
12.3.2 客戶端驗證 353
12.3.3 ASP.NET MVC中的
請求驗證 361
12.4 驗證技巧 362
12.5 小結 362
12.6 練習 363
12.7 本章要點回顧 364
第13章 ASP.NET AJAX 365
13.1 AJAX概念簡介366
13.1.1 F12開發工具367
13.1.2 在WebForms中使用
ASP.NET AJAX 371
13.1.3 在MVC中使用AJAX 382
13.2 在AJAX網站中使用
Web服務 394
13.3 AJAX中的jQurey400
13.4 AJAX的實用提示405
13.5 小結 405
13.6 練習 406
13.7 本章要點回顧 406
第14章 jQuery 409
14.1 jQuery簡介 409
14.1.1 早期的JavaScript410
14.1.2 jQuery的作用410
14.1.3 包括jQuery庫 412
14.1.4 包 414
14.2 jQuery語法419
14.2.1 jQuery 核心420
14.2.2 使用jQuery實用方法 420
14.2.3 使用jQuery選擇選項 422
14.3 使用jQuery修改DOM 425
14.3.1 使用jQuery改變外觀 425
14.3.2 處理事件 428
14.4 調試jQurey436
14.5 jQuery的實用技巧439
14.6 小結 440
14.7 練習 440
14.8 本章要點回顧 441
第15章 ASP.NET網站的安全性 443
15.1 安全性簡介 444
15.1.1 身份:你是誰?444
15.1.2 身份驗證:用戶如何證明
他們自己的身份? 444
15.1.3 授權:允許做什么?444
15.1.4 使用ASP.NET登錄 445
15.1.5 配置Web應用程序的
安全性 448
15.1.6 在應用程序中利用
用戶 457
15.2 角色 464
15.2.1 配置應用程序以
處理角色 465
15.2.2 編程檢查角色469
15.3 安全性的實用技巧473
15.4 小結 473
15.5 練習 474
15.6 本章要點回顧 474
第16章 個性化網站 475
16.1 理解概要文件 476
16.1.1 創建概要文件476
16.1.2 使用概要文件483
16.2 個性化的實用技巧494
16.3 小結 494
16.4 練習 495
16.5 本章要點回顧 495
第17章 異常處理、調試和跟蹤 497
17.1 錯誤處理 498
17.1.1 不同類型的錯誤498
17.1.2 捕獲并處理異常502
17.1.3 全局錯誤處理和
定制的錯誤頁面 510
17.1.4 控制器中的錯誤處理515
17.2 調試基礎 516
17.2.1 調試的工具支持517
17.2.2 調試客戶端腳本524
17.3 跟蹤ASP.NETWeb頁面 533
17.3.1 給跟蹤添加自己的
信息 535
17.3.2 跟蹤和性能 538
17.4 日志記錄 538
17.5 小結 541
17.6 練習 541
17.7 本章要點回顧 542
第18章 使用源代碼控制 543
18.1 Team Foundation Services
簡介 543
18.1.1 使用源代碼控制的
原因 544
18.1.2 建立VisualStudio Online
賬戶 544
18.1.3 代碼的簽入和簽出549
18.1.4 與團隊成員合作557
18.2 分支和合并 558
18.3 小結 559
18.4 練習 560
18.5 本章要點回顧 560
第19章 部署網站 561
19.1 準備部署網站 562
19.1.1 避免硬編碼設置562
19.1.2 Web.config 文件 563
19.1.3 表達式語法 563
19.1.4 Web 配置管理器類 564
19.2 準備部署 569
19.3 發布站點 572
19.3.1 Web.config轉換 580
19.3.2 把數據移到遠程
服務器上 586
19.4 冒煙測試應用程序592
19.5 進一步學習 594
19.6 小結 594
19.7 練習 595
19.8 本章要點回顧 595
附錄 習題答案 597