第1章MVC開發前奏11.1開發環境搭建1
1.1.1操作系統和開發工具1
1.1.2開發環境配置3
1.1.3VS常用快捷鍵7
1.1.4VS技巧8
1.2常用輔助開發工具介紹10
1.2.1Firebug10
1.2.2HttpRequester12
1.3知識儲備13
1.3.1必備知識介紹13
1.3.2樹立軟件開發信心13
1.4C#語法新特性14
1.4.1C#2.0新特性14
1.4.2C#3.0/C#3.5新特性16
1.4.3C#4.0新特性26
1.4.4C#5.0新特性28
第2章EntityFramework29
2.1EntityFramework簡介29
2.1.1與ADO.NET的關系29
2.1.2什么是O/RMapping29
2.1.3ORMinEF30
2.1.4EF的優缺點30
2.2DatabaseFirst開發方式31
2.2.1創建DtabaseFirstDemo31
2.2.2EF原理34
2.3EntityFramework增刪改查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.4EF查詢相關48
2.4.1IQueryable與IEnumberable接口的區別48
2.4.2LINQToEF48
2.4.3關于EF對象的創建問題50
2.4.4關于上下文的使用注意事項51
2.4.5EF跨數據庫支持51
2.5ModelFirst開發方式51
2.5.1創建ModelFirstDemo52
2.5.2經驗分享60
2.6CodeFirst開發方式60
2.6.1創建CodeFirstDemo61
2.6.2關于EF實例的創建問題68
第3章初識MVC69
3.1MVC簡介與三層架構70
3.1.1MVC簡介70
3.1.2三層架構71
3.2ASP.NET的兩種開發方式72
3.2.1ASP.NET開發現狀72
3.2.2WebForms的開發方式73
3.2.3ASP.NETMVC的開發方式74
3.3第一個ASP.NETMVC程序75
3.3.1創建項目75
3.3.2項目框架結構說明77
3.3.3路由——映射URL到Action79
3.3.4返回string的MVC方法81
3.3.5簡單了解Razor視圖81
3.3.6ASP.NETMVC組件之間的關系82
3.4MVC的約定82
3.4.1控制器的約定大于配置83
3.4.2視圖的相關約定83
第4章MVC進階84
4.1View詳解84
4.1.1View和Action之間數據傳遞的方式84
4.1.2TempData、ViewData和ViewBag的區別85
4.2Razor視圖引擎88
4.2.1什么是Razor88
4.2.2Razor語法89
4.2.3Razor布局——整體視圖模板92
4.2.4Razor布局——ViewStart93
4.2.5Razor布局——部分視圖93
4.2.6視圖引擎95
4.2.7MVC視圖的“秘密”96
4.3Controller98
4.3.1Action方法參數與返回值98
4.3.2Action指定使用視圖100
4.3.3View和Controller之間的關系102
4.4Model和驗證104
4.4.1NetMVC請求處理流程104
4.4.2MVC模型驗證104
4.5HtmlHelper111
4.5.1HtmlHelper的Action、表單標簽112
4.5.2HtmlHelper的弱類型與強類型方法113
4.5.3HtmlHelper的RenderPartial116
4.5.4HtmlHelper的RenderAction116
4.5.5HtmlHelper擴展方法117
4.6ASP.NETMVC分頁118
4.6.1HtmlHelper118
4.6.2局部視圖124
4.6.3MvcPager127
4.6.4第三方UI組件131
第5章MVC核心透析132
5.1MVCRouting132
5.1.1Routing——URL133
5.1.2Routing的作用134
5.1.3Routing包含字面值的URL134
5.1.4Routing測試135
5.2異步Ajax137
5.2.1傳統Ajax實現方式137
5.2.2UnobtrusiveAjax使用方式140
5.2.3AjaxHelper141
5.2.4請求Json數據144
5.3MVCAreas146
5.3.1Area使用入門146
5.3.2Area注冊類放到單獨程序集148
5.3.3Area注冊控制器放到單獨程序集150
5.4MVCFilter151
5.4.1Action152
5.4.2Result153
5.4.3AuthorizeAttribute157
5.4.4Exception158
5.5MVC整體運行流程159
5.5.1進入管道159
5.5.2路由注冊162
5.5.3創建MvcHandler對象164
5.5.4執行MvcHandlerProcessRequest方法166
5.5.5調用控制器里面的Action方法169
5.5.6根據Action方法返回的ActionResult加載View172
第6章網站性能和安全優化175
6.1緩存175
6.2壓縮合并css和js178
6.3刪除無用的視圖引擎179
6.4使用防偽造令牌來避免CSRF攻擊181
6.5隱藏ASP.NETMVC版本182
6.6Nginx服務器集群182
6.6.1Nginx是什么182
6.6.2Nginx的應用現狀和特點184
6.6.3Nginx的事件處理機制184
6.6.4Nginx不為人知的特點186
6.6.5Nginx的內部模型186
6.6.6Nginx如何處理請求188
6.6.7Nginx典型的應用場景188
6.6.8Nginx的應用189
6.6.9Nginx常見配置說明190
6.6.10集群案例195
6.7常用的Web安全技術手段197
第7章NHibernate199
7.1NHibernate簡介199
7.1.1什么是NHibernate199
7.1.2NHibernate的架構199
7.1.3NHibernate與其EntityFramework框架比較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.1NHibernate入職Demo214
7.4.2NHibernate代碼映射高級功能217
7.5監聽NHibernate生成的SQL224
7.5.1使用show_sql224
7.5.2使用NHibernateProfile225
第8章IoC、Log4Net和Quartz.Net228
8.1Unity228
8.1.1獲取Unity228
8.1.2Unity簡介229
8.1.3UnityAPI229
8.1.4使用Unity229
8.2Spring.Net234
8.2.1Web.config中的屬性注入234
8.2.2在單獨的配置文件中構造函數注入238
8.3Log4Net240
8.3.1配置Log4Net環境240
8.3.2Log4Net相關概念244
8.4Quartz.Net244
8.4.1Quartz.Net概述244
8.4.2參考資料244
8.4.3Quartz.Net使用示例245
第9章分布式技術256
9.1WebService256
9.1.1創建一個WebService并調用256
9.1.2調用天氣預報服務259
9.2WCF262
9.2.1什么是WCF262
9.2.2理解面向服務263
9.2.3WCF體系架構簡介263
9.2.4WCF的基礎概念介紹264
9.2.5創建第一個WCF程序269
9.2.6WCF和WebService的區別276
9.3WebAPI276
9.3.1創建WebAPI277
9.3.2調用WebAPI278
9.3.3WebAPI授權282
9.3.4WebAPI的調試285
9.4Memcached285
9.4.1Memcached簡介285
9.4.2Memcached基本原理287
9.4.3Memcached服務端的安裝288
9.4.4C#操作Memcached290
9.5Redis292
9.5.1Redis簡介292
9.5.2Redis與Memcached的比較292
9.5.3Redis環境部署293
9.5.4Redis常用數據類型296
9.5.5給Redis設置密碼302
9.5.6Redis主從復制303
9.6MongoDB306
9.6.1MongoDB簡介306
9.6.2下載安裝和配置307
9.6.3使用mongo.exe執行數據庫增刪改查操作311
9.6.4更多命令313
9.6.5MongoDB語法與現有關系型數據庫SQL語法比較315
9.6.6可視化的客戶端管理工具MongoVUE315
9.6.7通過C#的samus驅動進行操作317
9.6.8索引320
第10章站內搜索323
10.1SEO323
10.1.1SEO簡介323
10.1.2開發時要考慮SEO324
10.1.3關于搜索326
10.2Lucene.Net簡介和分詞328
10.2.1Lucene.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.5tab多頁簽支持379
11.6Controller和View的交互381
11.7增改查匹配389
11.8統計報表407
11.9服務器端排序425
11.10從ASP.NETMVC中導出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.5UI層465
12.5功能實現466
12.5.1用戶登錄466
12.5.2采用分布式的方式記錄異常日志472
12.5.3授權474
12.5.4增刪改查475
12.6運行項目475