目 錄
第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