本書提供源碼!(在書中第3頁前言部分)
基本信息
- 作者:
- 齣版社:
- ISBN:9787302465041
- 齣版日期:2017 年4月
- 開本:16開
- 頁碼:476
- 版次:1-1
- 所屬分類:
內容簡介
ASP.NET MVC 是微軟官方提供的以MVC模式為基礎的ASP.NET Web應用程序框架。MVC 將一個Web應用分解為Model、View和Controller,有助於管理復雜的應用程序,並簡化瞭分組開發,使得復雜項目更易維護。
本書共分為12章,以符閤初學者思維的方式係統地介紹ASP.NET MVC的應用技巧,並結閤實際項目詳細地介紹如何基於ASP.NET MVC構建企業項目。通過本書的學習,讀者可以全麵掌握ASP.NET MVC的開發,並從代碼中獲取軟件開發與架構設計的經驗與靈感。
本書具有很大的參考價值,既適閤ASP.NET MVC開發初學者閱讀,也適閤有一定基礎的ASP.NET MVC開發人員進行技術強化和經驗積纍,同時還適閤作為高等院校和培訓學校相關專業的教學參考書。
作譯者
鄒瓊俊,湖南人,.NET高級工程師,CSDN學院講師,專注於.NET Web開發,對.NET Web開發有較深研究。
目錄
第1章 MVC開發前奏 1
1.1 開發環境搭建 1
1.1.1 操作係統和開發工具 1
1.1.2 開發環境配置 3
1.1.3 VS常用快捷鍵 7
1.1.4 VS技巧 8
1.2 常用輔助開發工具介紹 10
1.2.1 Firebug 10
1.2.2 HttpRequester 12
1.3 知識儲備 13
1.3.1 必備知識介紹 13
1.3.2 樹立軟件開發信心 13
1.4 C#語法新特性 14
1.4.1 C# 2.0 新特性 14
1.4.2 C# 3.0/C# 3.5 新特性 16
1.4.3 C# 4.0新特性 26
1.4.4 C#5.0新特性 28
第2章 Entity Framework 29
2.1 Entity Framework簡介 29
2.1.1 與ADO.NET的關係 29
2.1.2 什麼是O/R Mapping 29
2.1.3 ORM in EF 30
2.1.4 EF的優缺點 30
2.2 Database First 開發方式 31
2.2.1 創建Dtabase First Demo 31
2.2.2 EF原理 34
2.3 Entity Framework增刪改查 37
2.3.1 附加數據庫 37
2.3.2 新建項目 39
2.3.3 新增 39
2.3.4 簡單查詢和延時加載 40
2.3.5 根據條件排序和查詢 42
2.3.6 分頁查詢 43
2.3.7 修改 43
2.3.8 刪除 45
2.3.9 批處理 46
2.4 EF查詢相關 48
2.4.1 IQueryable與IEnumberable接口的區彆 48
2.4.2 LINQ To EF 48
2.4.3 關於EF對象的創建問題 50
2.4.4 關於上下文的使用注意事項 51
2.4.5 EF 跨數據庫支持 51
2.5 Model First 開發方式 51
2.5.1 創建Model First Demo 52
2.5.2 經驗分享 60
2.6 Code First 開發方式 60
2.6.1 創建Code First Demo 61
2.6.2 關於EF實例的創建問題 68
第3章 初識MVC 69
3.1 MVC簡介與三層架構 70
3.1.1 MVC簡介 70
3.1.2 三層架構 71
3.2 ASP.NET的兩種開發方式 72
3.2.1 ASP.NET開發現狀 72
3.2.2 WebForms的開發方式 73
3.2.3 ASP.NET MVC的開發方式 74
3.3 一個ASP.NET MVC程序 75
3.3.1 創建項目 75
3.3.2 項目框架結構說明 77
3.3.3 路由——映射URL到Action 79
3.3.4 返迴string的MVC方法 81
3.3.5 簡單瞭解Razor視圖 81
3.3.6 ASP.NET MVC組件之間的關係 82
3.4 MVC的約定 82
3.4.1 控製器的約定大於配置 83
3.4.2 視圖的相關約定 83
第4章 MVC進階 84
4.1 View詳解 84
4.1.1 View和Action之間數據傳遞的方式 84
4.1.2 TempData、ViewData和ViewBag的區彆 85
4.2 Razor視圖引擎 88
4.2.1 什麼是 Razor 88
4.2.2 Razor 語法 89
4.2.3 Razor 布局——整體視圖模闆 92
4.2.4 Razor 布局——ViewStart 93
4.2.5 Razor 布局——部分視圖 93
4.2.6 視圖引擎 95
4.2.7 MVC視圖的“秘密” 96
4.3 Controller 98
4.3.1 Action方法參數與返迴值 98
4.3.2 Action指定使用視圖 100
4.3.3 View和Controller之間的關係 102
4.4 Model和驗證 104
4.4.1 Net MVC請求處理流程 104
4.4.2 MVC模型驗證 104
4.5 HtmlHelper 111
4.5.1 HtmlHelper的Action、錶單標簽 112
4.5.2 HtmlHelper的弱類型與強類型方法 113
4.5.3 HtmlHelper的RenderPartial 116
4.5.4 HtmlHelper的RenderAction 116
4.5.5 HtmlHelper擴展方法 117
4.6 ASP.NET MVC分頁 118
4.6.1 HtmlHelper 118
4.6.2 局部視圖 124
4.6.3 MvcPager 127
4.6.4 第三方UI組件 131
第5章 MVC核心透析 132
5.1 MVC Routing 132
5.1.1 Routing——URL 133
5.1.2 Routing的作用 134
5.1.3 Routing包含字麵值的URL 134
5.1.4 Routing測試 135
5.2 異步Ajax 137
5.2.1 傳統Ajax實現方式 137
5.2.2 Unobtrusive Ajax使用方式 140
5.2.3 AjaxHelper 141
5.2.4 請求Json數據 144
5.3 MVC Areas 146
5.3.1 Area使用入門 146
5.3.2 Area注冊類放到單獨程序集 148
5.3.3 Area注冊控製器放到單獨程序集 150
5.4 MVC Filter 151
5.4.1 Action 152
5.4.2 Result 153
5.4.3 AuthorizeAttribute 157
5.4.4 Exception 158
5.5 MVC整體運行流程 159
5.5.1 進入管道 159
5.5.2 路由注冊 162
5.5.3 創建MvcHandler對象 164
5.5.4 執行MvcHandler ProcessRequest方法 166
5.5.5 調用控製器裏麵的Action方法 169
5.5.6 根據Action方法返迴的ActionResult加載View 172
第6章 網站性能和安全優化 175
6.1 緩存 175
6.2 壓縮閤並css和js 178
6.3 刪除無用的視圖引擎 179
6.4 使用防僞造令牌來避免CSRF攻擊 181
6.5 隱藏ASP.NET MVC版本 182
6.6 Nginx服務器集群 182
6.6.1 Nginx是什麼 182
6.6.2 Nginx的應用現狀和特點 184
6.6.3 Nginx的事件處理機製 184
6.6.4 Nginx不為人知的特點 186
6.6.5 Nginx的內部模型 186
6.6.6 Nginx如何處理請求 188
6.6.7 Nginx典型的應用場景 188
6.6.8 Nginx的應用 189
6.6.9 Nginx常見配置說明 190
6.6.10 集群案例 195
6.7 常用的Web安全技術手段 197
第7章 NHibernate 199
7.1 NHibernate簡介 199
7.1.1 什麼是NHibernate 199
7.1.2 NHibernate的架構 199
7.1.3 NHibernate與其Entity Framework框架比較 200
7.2 一個NHibernate應用程序 201
7.2.1 搭建項目基本框架 201
7.2.2 編寫映射文件 206
7.2.3 添加數據訪問層類 209
7.2.4 添加業務邏輯層類 210
7.2.5 添加控製器和視圖 211
7.3 增刪改查詢 212
7.4 使用代碼映射 213
7.4.1 NHibernate入職Demo 214
7.4.2 NHibernate代碼映射高級功能 217
7.5 監聽NHibernate生成的SQL 224
7.5.1 使用show_sql 224
7.5.2 使用NHibernateProfile 225
第8章 IoC 、Log4Net和Quartz.Net 228
8.1 Unity 228
8.1.1 獲取Unity 228
8.1.2 Unity簡介 229
8.1.3 Unity API 229
8.1.4 使用Unity 229
8.2 Spring.Net 234
8.2.1 Web.config中的屬性注入 234
8.2.2 在單獨的配置文件中構造函數注入 238
8.3 Log4Net 240
8.3.1 配置Log4Net環境 240
8.3.2 Log4Net相關概念 244
8.4 Quartz.Net 244
8.4.1 Quartz.Net概述 244
8.4.2 參考資料 244
8.4.3 Quartz.Net使用示例 245
第9章 分布式技術 256
9.1 WebService 256
9.1.1 創建一個WebService並調用 256
9.1.2 調用天氣預報服務 259
9.2 WCF 262
9.2.1 什麼是WCF 262
9.2.2 理解麵嚮服務 263
9.2.3 WCF體係架構簡介 263
9.2.4 WCF的基礎概念介紹 264
9.2.5 創建一個WCF程序 269
9.2.6 WCF和WebService的區彆 276
9.3 Web API 276
9.3.1 創建WebAPI 277
9.3.2 調用WebAPI 278
9.3.3 WebAPI授權 282
9.3.4 WebAPI的調試 285
9.4 Memcached 285
9.4.1 Memcached簡介 285
9.4.2 Memcached 基本原理 287
9.4.3 Memcached服務端的安裝 288
9.4.4 C#操作Memcached 290
9.5 Redis 292
9.5.1 Redis簡介 292
9.5.2 Redis與Memcached的比較 292
9.5.3 Redis環境部署 293
9.5.4 Redis常用數據類型 296
9.5.5 給Redis設置密碼 302
9.5.6 Redis主從復製 303
9.6 MongoDB 306
9.6.1 MongoDB簡介 306
9.6.2 下載安裝和配置 307
9.6.3 使用mongo.exe 執行數據庫增刪改查操作 311
9.6.4 更多命令 313
9.6.5 MongoDB語法與現有關係型數據庫SQL語法比較 315
9.6.6 可視化的客戶端管理工具MongoVUE 315
9.6.7 通過C#的samus驅動進行操作 317
9.6.8 索引 320
第10章 站內搜索 323
10.1 SEO 323
10.1.1 SEO簡介 323
10.1.2 開發時要考慮SEO 324
10.1.3 關於搜索 326
10.2 Lucene.Net簡介和分詞 328
10.2.1 Lucene.Net簡介 328
10.2.2 分詞 329
10.2.3 盤古分詞算法的使用 332
10.3 簡單的搜索引擎代碼 334
10.4 搜索的一個版本 340
10.5 搜索的優化版 349
10.5.1 熱詞統計 349
10.5.2 熱門搜索 354
10.5.3 標題和內容都支持搜索並高亮展示 357
10.5.4 與查詢、或查詢、分頁 358
第11章 財務對賬係統 366
11.1 需求 366
11.2 前颱UI框架搭建 367
11.3 菜單特效 374
11.4 麵闆摺疊和展開 376
11.5 tab多頁簽支持 379
11.6 Controller和View的交互 381
11.7 增改查匹配 389
11.8 統計報錶 407
11.9 服務器端排序 425
11.10 從ASP.NET MVC中導齣Excel文件 428
11.10.1 異步導齣 429
11.10.2 實時導齣 431
11.11 數據同步 432
第12章 通用角色權限管理係統 434
12.1 需求分析 434
12.2 技術選型 434
12.3 數據庫設計 435
12.4 架構搭建 439
12.4.1 新建解決方案和項目 439
12.4.2 通用層搭建 441
12.4.3 數據訪問層搭建 442
12.4.4 業務邏輯層 459
12.4.5 UI層 465
12.5 功能實現 466
12.5.1 用戶登錄 466
12.5.2 采用分布式的方式記錄異常日誌 472
12.5.3 授權 474
12.5.4 增刪改查 475
12.6 運行項目 475
深入解析ASP.NET Core Web API:打造高效、安全的現代化應用程序 本書專為渴望精通ASP.NET Core Web API開發的開發者量身打造,旨在幫助您構建高性能、可擴展且安全可靠的Web API服務。您將踏上一段全麵的技術探索之旅,從基礎概念的紮實掌握,到高級模式的靈活運用,最終能夠自信地設計、開發、部署和維護復雜的企業級API。 第一部分:ASP.NET Core Web API 基礎入門 在這一部分,我們將為您打下堅實的基礎,讓您快速理解ASP.NET Core Web API的核心架構和關鍵組件。 ASP.NET Core 概覽與Web API的定位: 我們將首先介紹ASP.NET Core的整體生態係統,以及Web API在其中扮演的重要角色。您將瞭解ASP.NET Core的跨平颱特性、高性能優勢,以及它如何成為現代Web應用程序開發的理想選擇。 項目創建與基本結構: 手把手指導您創建一個新的ASP.NET Core Web API項目,並深入剖析項目的目錄結構、核心配置文件(如`Program.cs`, `Startup.cs`或`appsettings.json`),以及它們在應用程序啓動和配置中的作用。 路由(Routing)機製詳解: 理解ASP.NET Core Web API的路由係統是構建可訪問API的關鍵。我們將詳細講解屬性路由(Attribute Routing)和約定路由(Convention Routing)的用法,包括如何定義URL模闆、參數綁定,以及如何處理HTTP動詞(GET, POST, PUT, DELETE等)。您將學會如何設計清晰、易於理解且富有錶現力的API路由。 控製器(Controllers)與動作方法(Action Methods): 控製器是API請求處理的中心。您將學習如何創建控製器類,如何編寫各種類型的動作方法來響應不同的HTTP請求,以及如何通過模型綁定(Model Binding)將請求數據映射到方法的參數。 數據傳輸對象(DTOs)與模型: 數據在API之間傳輸時,DTOs扮演著至關重要的角色。我們將指導您如何創建和使用DTOs來封裝和解耦業務邏輯層與錶現層的數據。同時,也會講解如何利用模型驗證(Model Validation)來確保傳入數據的有效性。 HTTP響應與狀態碼: 正確地返迴HTTP響應及其狀態碼是API設計的基本要求。您將學習如何返迴不同類型的數據(如JSON, XML),如何使用`IActionResult`接口來靈活控製響應內容,並深入理解常見的HTTP狀態碼(如200 OK, 201 Created, 400 Bad Request, 404 Not Found, 500 Internal Server Error)的含義和適用場景。 第二部分:深入API設計與開發實踐 本部分將帶領您進入更高級的API設計和開發領域,掌握構建健壯、可維護API的實用技巧。 RESTful API 設計原則: 我們將詳細闡述RESTful架構風格的核心原則,包括資源導嚮、無狀態性、客戶端-服務器分離等。通過實際案例,您將學會如何設計遵循RESTful規範的API,使其更具可發現性和互操作性。 數據訪問層(DAL)與 ORM 集成: 強大的數據訪問能力是Web API的基石。您將學習如何設計和實現數據訪問層,並深入瞭解如何集成Entity Framework Core(EF Core)或其他ORM工具,高效地與數據庫進行交互,實現數據的增刪改查操作。 依賴注入(Dependency Injection - DI)與服務生命周期: ASP.NET Core內置瞭強大的依賴注入容器。我們將深入講解DI的概念、優勢,以及如何在Web API中使用它來管理對象創建和生命周期。這對於構建可測試、可維護的代碼至關重要。 異步編程(Async/Await)的最佳實踐: 在高並發場景下,異步編程是提升API性能的關鍵。您將掌握`async`和`await`關鍵字的使用,理解異步操作如何避免阻塞,以及如何在API開發中編寫高效的異步代碼。 API 版本控製(API Versioning): 隨著API的迭代更新,版本控製變得不可或缺。我們將探討不同的API版本控製策略(URL路徑、HTTP頭、查詢字符串),並指導您如何實現版本控製,以支持嚮後兼容性並逐步引入新功能。 輸入輸齣格式化(Input/Output Formatting): 瞭解並掌握如何處理不同的數據格式是API交互的關鍵。您將學習如何使用內置的格式化器(如JSON, XML)以及如何自定義格式化器來滿足特定的數據交換需求。 中間件(Middleware)的工作原理與應用: 中間件是ASP.NET Core請求處理管道中的重要組成部分。您將深入理解中間件的工作機製,並學會如何利用它來實現日誌記錄、身份驗證、錯誤處理等橫切關注點。 第三部分:API 安全性與部署 安全是Web API不可忽視的重中之重。本部分將聚焦於API的安全加固和部署策略。 身份驗證(Authentication)與授權(Authorization): 您將學習ASP.NET Core提供的多種身份驗證機製,包括Cookie認證、JWT(JSON Web Tokens)認證、OAuth 2.0等。同時,也會深入講解授權的概念,如何基於角色(Role-Based Authorization)和策略(Policy-Based Authorization)來限製用戶訪問API資源。 HTTPS/SSL 的重要性與配置: 瞭解HTTPS在保護數據傳輸過程中的關鍵作用,並學習如何在ASP.NET Core Web API中進行配置和啓用。 API 速率限製(Rate Limiting): 為瞭防止濫用和保護服務器資源,速率限製是必不可少的安全措施。我們將探討實現API速率限製的策略和工具。 跨域資源共享(CORS - Cross-Origin Resource Sharing): 在分布式環境中,理解並正確配置CORS對於允許不同源的客戶端訪問API至關重要。 錯誤處理與異常管理: 健壯的錯誤處理機製能夠提升API的用戶體驗和穩定性。您將學習如何集中捕獲和處理異常,並嚮客戶端返迴有意義的錯誤信息。 日誌記錄(Logging): 閤理的日誌記錄有助於監控API運行狀況、排查問題。我們將介紹ASP.NET Core的日誌框架,並指導您如何進行有效的日誌記錄。 API 文檔生成: 良好的API文檔是API可用性的重要保障。您將學習如何使用Swagger/OpenAPI等工具自動生成交互式API文檔,方便開發者使用和集成。 部署策略: 從開發到生産環境的部署是一個關鍵環節。您將瞭解將ASP.NET Core Web API部署到IIS、Docker、Azure App Service等不同環境的常見方法和最佳實踐。 第四部分:高級主題與性能優化 本部分將進一步拓展您的視野,深入探討一些更高級的主題,幫助您構建更加卓越的API。 緩存(Caching)策略: 緩存是提升API性能的有效手段。我們將討論分布式緩存(如Redis)和內存緩存的應用,以及如何選擇閤適的緩存策略。 性能剖析與優化: 學習如何利用性能分析工具來識彆API中的瓶頸,並采取相應的優化措施,例如數據庫查詢優化、代碼重構等。 消息隊列集成(Message Queues): 在解耦服務、實現異步通信方麵,消息隊列(如RabbitMQ, Kafka)發揮著重要作用。您將瞭解如何將消息隊列集成到ASP.NET Core Web API中。 微服務架構中的 Web API: 對於構建微服務架構的應用程序,Web API是核心組件。我們將探討在微服務場景下Web API的設計和交互模式。 單元測試與集成測試: 編寫可測試的代碼是保證API質量的基礎。您將學習如何為API編寫單元測試和集成測試,確保代碼的正確性和穩定性。 GraphQL 與 Web API 的比較: 瞭解GraphQL作為一種新的API查詢語言,以及它與傳統RESTful API的異同,為您的API設計提供更多選擇。 通過本書的學習,您將不僅掌握ASP.NET Core Web API的開發技能,更能培養齣色的API設計理念和工程實踐能力,能夠自信地應對各種復雜的Web API開發挑戰,為構建現代化、高性能、安全可靠的應用程序奠定堅實基礎。