新書推薦: 
			  
			《 
			大国重器—中国盾构机创新发展之路
			》 
			 售價:HK$ 
			551
			 
			 
	
			  
			《 
			长路行(带你看民国顶级书香世家的真实生活日常)
			》 
			 售價:HK$ 
			347
			 
			 
	
			  
			《 
			人体脂肪的秘密
			》 
			 售價:HK$ 
			352
			 
			 
	
			  
			《 
			社会史:理论与实践(增订版)(德国著名社会史学家于尔根·科卡重要文集。全面展现德国社会史学派的兴起与
			》 
			 售價:HK$ 
			500
			 
			 
	
			  
			《 
			津巴多时间心理学 首次系统论述时间观疗法 菲利普·津巴多 著 自我觉察 活在当下 津巴多 心理学 当
			》 
			 售價:HK$ 
			352
			 
			 
	
			  
			《 
			亲爱的族人:菲利普王之战的新叙事(横扫北美史学界各项大奖 以印第安女王视角重写北美大陆的反殖民之战)
			》 
			 售價:HK$ 
			653
			 
			 
	
			  
			《 
			中国古代货币思想史
			》 
			 售價:HK$ 
			434
			 
			 
	
			  
			《 
			什么是新疆
			》 
			 售價:HK$ 
			908
			 
			 
	
 
      | 
     
      
      
         
          | 編輯推薦: | 
         
         
           
            来自.NET专家的权威指南
 在微软平台上构建最可维护、与标准兼容,且能最佳运行的Web应用程序
 获得对ASP.NET MVC 4,包括MVC模式的坚实理解
 详细考察整个ASP.NET MVC框架
 明白MVC应用程序以及测试驱动开发的实际工作机制
 通过经典ASP.NET与ASP.NET MVC的特性对比,快捷评估你已有知识的价值
 提供了一种与ASP.NET的所有优势整合在一起的高生产率编程模型,该模型提倡更整洁的代码架构、测试驱动开发,以及强大的可扩展性。
           | 
         
       
      
      
      
      
         
          | 內容簡介: | 
         
         
           
            ASP.NET MVC 4框架是微软ASP.NET Web平台的最新进展。该框架提供了一种与ASP.NET的所有优势整合在一起的高生产率编程模型,该模型提倡更整洁的代码架构、测试驱动开发以及强大的可扩展性。《精通ASP.NET MVC 4》没有简单地解释或孤立地讨论“模型—视图—控制器”架构的核心概念,而是进行实战演示。通过一个拓展的教程,《精通ASP.NET MVC 4》给出了创建一个可实际运行的电子商务Web应用程序,将ASP.NET MVC与最新的C#语言特性以及单元测试最佳实践结合在一起。通过获得这种有益的实践体验,读者可以发现MVC的长处和弱点,将最新学到的理论付诸于实践。
 《精通ASP.NET MVC 4》适合程序员、Web开发者学习,也适合作为大中专院校相关专业的师生用书和培训学校的教材。
           | 
         
       
      
      
      
         
          | 關於作者: | 
         
         
          |  
            作者Adam Freeman,目睹了ASP.NET MVC自第一版以来的成长。Adam十五年前就开始设计并建立Web应用程序,曾负责过一些世界级的最大型且最引人注目的项目。著名的畅销书作者!
           | 
         
       
      
      
      
         
          | 目錄: 
           | 
         
         
           
            目 录
 第1部分 ASP.NET MVC导论
 第1章 伟大的思想 2
 1.1 Web开发简史 2
 1.1.1 传统的ASP.NET Web Form 3
 1.1.2 ASP.NET Web Form的问题 3
 1.2 当今的Web开发 4
 1.2.1 Web标准与REST 4
 1.2.2 敏捷与测试驱动开发 5
 1.2.3 Ruby on Rails 6
 1.2.4 Sinatra 6
 1.2.5 Node.js 6
 1.3 ASP.NET MVC的关键优点 7
 1.3.1 MVC的体系结构 7
 1.3.2 可扩展性 8
 1.3.3 在HTML及HTTP上的严密控制 8
 1.3.4 可测试性 8
 1.3.5 强大的路由系统 9
 1.3.6 建立在ASP.NET平台的精华之上 9
 1.3.7 现代API 10
 1.3.8 ASP.NET MVC是开源的 10
 1.4 谁该使用ASP.NET MVC 10
 1.4.1 与ASP.NET Web Form的比较 10
 1.4.2 从Web Form迁移到MVC 11
 1.4.3 与Ruby on Rails的比较 11
 1.4.4 与MonoRail的比较 11
 1.5 ASP.NET MVC 4的新特性 12
 1.6 小结 12
 第2章 第一个MVC应用程序 13
 2.1 准备工作站 13
 2.2 创建ASP.NET MVC新项目 13
 2.2.1 添加第一个控制器 15
 2.2.2 理解路由 17
 2.3 渲染Web页面 18
 2.3.1 创建并渲染视图 18
 2.3.2 添加动态输出 20
 2.4 创建一个简单的数据录入应用程序 21
 2.4.1 设置场景 21
 2.4.2 设计一个数据模型 22
 2.4.3 链接动作方法 23
 2.4.4 建立表单 26
 2.4.5 处理表单 28
 2.4.6 添加验证 31
 2.4.7 完成示例 35
 2.5 小结 36
 第3章 MVC模式 37
 3.1 MVC简史 37
 3.2 理解MVC模式 37
 3.2.1 理解域模型 38
 3.2.2 MVC的ASP.NET实现 38
 3.2.3 MVC与其他模式比较 39
 3.3 运用域驱动开发DDD 42
 3.3.1 模拟一个例子域 42
 3.3.2 通用语言 43
 3.3.3 聚合与简化 44
 3.3.4 定义存储库 45
 3.4 建立松耦合组件 46
 3.4.1 使用依赖性注入 47
 3.4.2 一个MVC专用的DI示例 48
 3.4.3 使用依赖性注入容器 49
 3.5 自动测试初步 50
 3.5.1 理解单元测试 50
 3.5.2 理解集成测试 57
 3.6 小结 57
 第4章 基本语言特性 58
 4.1 创建示例项目 58
 4.2 使用自动实现的属性 59
 4.3 使用对象与集合的初始化器 62
 4.4 使用扩展方法 64
 4.4.1 对接口运用扩展方法 66
 4.4.2 创建过滤扩展方法 68
 4.5 使用Lambda表达式 69
 4.6 使用自动类型接口 72
 4.7 使用匿名类型 73
 4.8 执行语言集成查询 74
 4.9 使用Async方法 79
 4.10 小结 81
 第5章 使用Razor 82
 5.1 创建示例项目 82
 5.1.1 定义模型 82
 5.1.2 定义控制器 83
 5.1.3 创建视图 83
 5.2 使用模型对象 85
 5.3 使用布局 86
 5.3.1 创建布局 86
 5.3.2 运用布局 88
 5.3.3 使用视图起始文件 88
 5.3.4 演示共享布局 89
 5.4 使用Razor表达式 92
 5.4.1 插入数据值 92
 5.4.2 设置标签属性的值 94
 5.4.3 使用条件语句 96
 5.4.4 枚举数组和集合 98
 5.4.5 处理命名空间 100
 5.5 小结 101
 第6章 MVC基本工具 102
 6.1 创建示例项目 102
 6.1.1 创建模型类 103
 6.1.2 添加控制器 104
 6.1.3 添加视图 104
 6.2 使用Ninject 105
 6.2.1 理解问题 105
 6.2.2 将Ninject添加到Visual Studio项目 107
 6.2.3 Ninject初步 107
 6.2.4 建立MVC依赖性注入 109
 6.2.5 指定属性与构造器参数值 113
 6.2.6 使用条件绑定 115
 6.3 Visual Studio的单元测试 116
 6.3.1 创建单元测试项目 117
 6.3.2 创建单元测试 118
 6.3.3 运行单元测试并失败 121
 6.3.4 实现特性 121
 6.3.5 测试并修正代码 122
 6.4 使用Moq 123
 6.4.1 理解问题 124
 6.4.2 将Moq添加到Visual Studio项目 125
 6.4.3 对单元测试添加模仿对象 126
 6.4.4 创建更复杂的模仿对象 129
 6.5 小结 131
 第7章 SportsStore——一个真实的应用程序 132
 7.1 开始 133
 7.1.1 创建Visual Studio解决方案和项目 133
 7.1.2 添加引用 134
 7.1.3 设置DI容器 135
 7.1.4 运行应用程序 136
 7.2 从域模型开始 137
 7.2.1 创建一个抽象的存储库 138
 7.2.2 创建模仿存储库 138
 7.3 显示产品列表 139
 7.3.1 添加控制器 139
 7.3.2 添加视图 141
 7.3.3 设置默认路由 142
 7.3.4 运行应用程序 142
 7.4 准备数据库 143
 7.4.1 创建数据库 143
 7.4.2 定义数据库方案 144
 7.4.3 向数据库添加数据 146
 7.4.4 创建实体框架上下文 146
 7.4.5 创建Product存储库 147
 7.5 添加分页 149
 7.5.1 显示页面链接 151
 7.5.2 改进URL 158
 7.6 设置内容样式 159
 7.6.1 定义布局中的公用内容 159
 7.6.2 添加CSS样式 160
 7.6.3 创建分部视图 161
 7.7 小结 163
 第8章 SportsStore:导航 164
 8.1 添加导航控件 164
 8.1.1 过滤产品列表 164
 8.1.2 调整URL方案 167
 8.1.3 建立分类导航菜单 169
 8.1.4 修正页面计数 176
 8.2 建立购物车 178
 8.2.1 定义购物车实体 178
 8.2.2 添加“加入购物车”按钮 182
 8.2.3 实现购物车控制器 183
 8.2.4 显示购物车内容 185
 8.3 小结 187
 第9章 SportsStore:完成购物车 188
 9.1 使用模型绑定 188
 9.2 完成购物车 192
 9.2.1 删除购物车物品 192
 9.2.2 添加购物车摘要 193
 9.3 递交订单 196
 9.3.1 扩充域模型 196
 9.3.2 添加结算过程 196
 9.3.3 实现订单处理器 199
 9.3.4 注册接口实现 201
 9.3.5 完成购物车控制器 202
 9.3.6 显示验证错误 205
 9.3.7 显示致谢页面 206
 9.4 小结 207
 第10章 SportsStore:管理 208
 10.1 添加分类管理 208
 10.1.1 创建CRUD控制器 208
 10.1.2 创建新的布局 210
 10.1.3 实现List视图 212
 10.1.4 编辑产品 214
 10.1.5 创建新产品 226
 10.1.6 删除产品 227
 10.2 小结 229
 第11章 SportsStore:安全性与收尾工作 230
 11.1 实现管理控制器的安全 230
 11.1.1 运用过滤器进行授权 231
 11.1.2 创建认证提供器 232
 11.1.3 创建Account控制器 234
 11.1.4 创建视图 235
 11.2 图像上传 238
 11.2.1 扩展数据库 238
 11.2.2 增强域模型 239
 11.2.3 创建上传用户界面的元素 239
 11.2.4 将图像保存到数据库 240
 11.2.5 实现GetImage动作方法 241
 11.2.6 显示产品图像 243
 11.3 小结 244
 第2部分 ASP.NET MVC 4细节
 第12章 MVC项目综述 246
 12.1 使用Visual Studio的MVC项目 246
 12.2 调试MVC应用程序 250
 12.2.1 创建项目 250
 12.2.2 运行Visual Studio调试器 252
 12.2.3 引发Visual Studio调试器中断 254
 12.2.4 使用编辑并继续 257
 12.3 小结 260
 第13章 URL路由 261
 13.1 创建示例项目 261
 13.2 URL模式 263
 13.3 创建并注册一条简单路由 265
 13.4 定义默认值 270
 13.5 使用静态URL片段 272
 13.6 定义自定义片段变量 276
 13.6.1 用自定义变量作为动作方法参数 278
 13.6.2 定义可选URL片段 279
 13.6.3 定义可变长路由 281
 13.6.4 按命名空间区分控制器优先顺序 283
 13.7 约束路由 286
 13.7.1 用正则表达式约束路由 286
 13.7.2 将一条路由约束到一组指定的值 287
 13.7.3 使用HTTP方法约束路由 287
 13.7.4 定义自定义约束 288
 13.8 对磁盘文件的请求进行路由 290
 13.8.1 配置应用程序服务器 291
 13.8.2 为磁盘文件定义路由 292
 13.9 绕过路由系统 292
 13.10 小结 293
 第14章 高级路由特性 294
 14.1 准备示例项目 294
 14.2 在视图中生成输出URL 294
 14.2.1 用路由系统生成输出URL 295
 14.2.2 以其他控制器为目标 298
 14.2.3 传递额外的值 299
 14.2.4 指定HTML标签属性 300
 14.2.5 生成链接中的全限定URL 301
 14.2.6 生成URL而不是链接 302
 14.2.7 在动作方法中生成输出URL 302
 14.2.8 根据指定路由生成URL 303
 14.3 定制路由系统 304
 14.3.1 创建自定义的RouteBase实现 304
 14.3.2 创建自定义路由处理程序 308
 14.4 使用区域 309
 14.4.1 创建一个区域 310
 14.4.2 填充区域 311
 14.4.3 解析不明确的控制器问题 313
 14.4.4 生成对区域动作的链接 314
 14.5 URL方案最佳做法 315
 14.5.1 使URL整洁和人性化 315
 14.5.2 GET和POST:选用正确的一个 316
 14.6 小结 316
 第15章 控制器和动作 317
 15.1 控制器介绍 317
 15.1.1 准备示例项目 317
 15.1.2 用Icontroller创建一个控制器 317
 15.1.3 创建派生于Controller类的控制器 318
 15.2 接收输入 320
 15.2.1 通过上下文对象获取数据 320
 15.2.2 使用动作方法参数 321
 15.3 产生输出 323
 15.3.1 理解动作结果 325
 15.3.2 通过渲染视图返回HTML 328
 15.3.3 将数据从动作方法传递给视图 331
 15.3.4 执行重定向 334
 15.3.5 返回错误及HTTP代码 339
 15.4 小结 340
 第16章 过滤器 341
 16.1 使用过滤器 341
 16.1.1 过滤器的四种基本类型 342
 16.1.2 将过滤器运用于控制器和动作方法 343
 16.2 创建示例项目 344
 16.3 使用授权过滤器 344
 16.3.1 运用自定义授权过滤器 346
 16.3.2 使用内建的授权过滤器 347
 16.4 使用异常过滤器 348
 16.4.1 创建异常过滤器 348
 16.4.2 运用异常过滤器 350
 16.4.3 使用视图来响应异常 351
 16.4.4 使用内建的异常过滤器 354
 16.5 使用动作过滤器 356
 16.5.1 实现OnActionExecuting方法 356
 16.5.2 实现OnActionExecuted方法 358
 16.6 使用结果过滤器 359
 16.7 使用其他过滤器特性 362
 16.7.1 无注解属性的过滤 362
 16.7.2 使用全局过滤器 364
 16.7.3 对过滤器执行进行排序 365
 16.8 使用内建过滤器 367
 16.8.1 使用RequireHttps过滤器 367
 16.8.2 使用OutputCache过滤器 367
 16.9 小结 369
 第17章 控制器可扩展性 370
 17.1 创建示例项目 370
 17.2 创建自定义控制器工厂 372
 17.2.1 处理备用控制器 374
 17.2.2 实例化控制器类 374
 17.2.3 实现其他接口方法 375
 17.2.4 注册自定义控制器工厂 375
 17.3 使用内建的控制器工厂 376
 17.3.1 命名空间优先排序 376
 17.3.2 定制DefaultControllerFactory的控制器实例化 377
 17.4 创建自定义动作调用器 379
 17.5 使用内建的动作调用器 381
 17.5.1 使用自定义动作名 382
 17.5.2 使用动作方法选择 383
 17.6 用特殊控制器改善性能 388
 17.6.1 使用无会话控制器 388
 17.6.2 使用异步控制器 390
 17.7 小结 394
 第18章 视图 395
 18.1 创建自定义视图引擎 395
 18.1.1 创建示例项目 397
 18.1.2 创建自定义的IView 398
 18.1.3 创建IViewEngine实现 398
 18.1.4 注册自定义视图引擎 399
 18.1.5 测试视图引擎 400
 18.2 使用Razor引擎 401
 18.2.1 创建示例项目 401
 18.2.2 理解Razor视图渲染 402
 18.2.3 配置视图搜索位置 403
 18.3 对Razor视图添加动态内容 406
 18.3.1 使用分段 406
 18.3.2 使用分部视图 411
 18.3.3 使用子动作 414
 18.4 小结 416
 第19章 辅助器方法 417
 19.1 创建示例项目 417
 19.2 创建自定义辅助器方法 418
 19.2.1 创建内联的辅助器方法 418
 19.2.2 创建外部辅助器方法 420
 19.2.3 管理辅助器方法中的字符串编码 423
 19.3 使用内建的Form辅助器方法 427
 19.3.1 创建Form元素 427
 19.3.2 指定表单使用的路由 434
 19.3.3 使用input辅助器 435
 19.3.4 创建select元素 439
 19.4 小结 441
 第20章 模板辅助器方法 442
 20.1 回顾示例项目 442
 20.2 使用模板辅助器方法 444
 20.2.1 生成标签和显示元素 447
 20.2.2 使用整体模型模板辅助器 449
 20.3 使用模型元数据 452
 20.3.1 用元数据控制编辑及可见性 452
 20.3.2 使用用于标签的元数据 454
 20.3.3 使用用于数据值的元数据 456
 20.3.4 用元数据选择显示模板 457
 20.3.5 将元数据运用于伙伴类 458
 20.3.6 使用复合类型属性 460
 20.4 定制模板视图辅助器系统 461
 20.4.1 创建自定义编辑器模板 461
 20.4.2 创建泛型模板 463
 20.4.3 替换内建模板 464
 20.5 小结 464
 第21章 URL和Ajax辅助器方法 465
 21.1 回顾并准备示例项目 465
 21.2 创建基本的链接和URL 467
 21.3 使用MVC的渐进式Ajax 469
 21.3.1 创建同步表单视图 469
 21.3.2 为渐进式Ajax准备项目 470
 21.4 创建渐进式Ajax表单 471
 21.4.1 准备控制器 471
 21.4.2 创建Ajax表单 473
 21.4.3 理解渐进式Ajax的工作机制 474
 21.5 设置Ajax选项 475
 21.5.1 确保优雅降级 475
 21.5.2 在Ajax请求期间给用户提供反馈 477
 21.5.3 请求之前对用户进行提示 477
 21.6 创建Ajax链接 478
 21.7 使用Ajax回调 480
 21.8 使用JSON 482
 21.8.1 对控制器添加JSON支持 483
 21.8.2 在浏览器中处理JSON 484
 21.8.3 准备编码数据 486
 21.8.4 在动作方法中检测Ajax请求 487
 21.9 小结 489
 第22章 模型绑定 490
 22.1 准备示例项目 490
 22.2 理解模型绑定 492
 22.3 使用默认模型绑定器 494
 22.3.1 绑定简单类型 494
 22.3.2 绑定复合类型 497
 22.3.3 绑定到数组与集合 503
 22.4 手工调用模型绑定 507
 22.5 定制模型绑定系统 509
 22.5.1 创建自定义的值提供器 509
 22.5.2 创建自定义模型绑定器 512
 22.5.3 注册自定义模型绑定器 513
 22.6 小结 515
 第23章 模型验证 516
 23.1 创建示例项目 516
 23.2 明确地验证模型 518
 23.3 显示验证消息 521
 23.4 使用其他验证技术 525
 23.4.1 在模型绑定器中执行验证 525
 23.4.2 用元数据指定验证规则 526
 23.4.3 定义自验证模型 531
 23.5 执行客户端验证 533
 23.5.1 启用和禁用客户端验证 533
 23.5.2 使用客户端验证 534
 23.5.3 理解客户端验证机制 535
 23.6 执行远程验证 536
 23.7 小结 539
 第24章 捆绑包与显示模式 540
 24.1 理解默认脚本库 540
 24.2 准备示例应用程序 542
 24.3 管理脚本与样式表 544
 24.4 使用脚本和样式捆绑包 546
 24.4.1 运用捆绑包 548
 24.4.2 使用Scripts小节 551
 24.4.3 修改后的资料分析 552
 24.5 面向移动设备 554
 24.5.1 观察应用程序 554
 24.5.2 使用移动专用的布局和视图 555
 24.5.3 创建自定义显示模式 556
 24.6 小结 558
 第25章 Web API 559
 25.1 理解Web API 559
 25.2 创建Web API应用程序 560
 25.2.1 创建模型和存储库 560
 25.2.2 创建Home控制器 562
 25.2.3 创建视图及CSS 563
 25.3 创建API控制器 565
 25.4 理解API控制器工作机制 568
 25.4.1 理解API控制器的动作选择 568
 25.4.2 将HTTP方法映射到动作方法 569
 25.5 编写使用Web API的JavaScript代码 570
 25.5.1 创建基本功能 571
 25.5.2 为编辑新预约添加支持 572
 25.5.3 添加删除预约的支持 575
 25.5.4 添加创建预约的支持 575
 25.6 小结 576
 第26章 部署 577
 26.1 为部署准备应用程序 577
 26.1.1 检测视图错误 578
 26.1.2 禁用调试模式 579
 26.1.3 去除未使用的连接字符串 580
 26.2 Windows Azure的准备 581
 26.2.1 创建Web网站和数据库 581
 26.2.2 准备远程管理数据库 583
 26.2.3 创建数据库模式 584
 26.3 小结 588
           | 
         
       
      
      
        
     |