内容简介
第1章 MVC概述
1.1 MVC架构概述
1.1.1 MVC是什么
1.1.2 关注点分离
1.1.3 约定优于配置
1.1.4 MVC的优点与特长
1.1.5 MVC的成长趋势
1.2 ASP.NET MVC概述
1.2.1 与传统ASP.NET Web Forms的差异
1.2.2 Model的责任
1.2.3 View的范围
1.2.4 Controller要做哪些事
1.3 ASP.NET MVC 5开发环境
1.3.1 One ASP.NET
1.3.2 Visual Studio 2013 Web Templates
1.3.3 Scaffold(基架)
1.3.4 Visual Studio 2013新增功能介绍
1.4 NuGet的使用
1.4.1 安装程序包
1.4.2 还原程序包
1.4.3 更新程序包
1.4.4 程序包管理器控制台(Package Manager Console)
1.5 IIS Express
1.5.1 如何在Visual Studio中使用IIS Express
1.5.2 如何使用命令行启用IIS Express
1.5.3 让IIS Express也支持外部连接
1.5.4 整理过多的网站信息
1.6 ASP.NETWeb Forms转换至MVC开发
1.6.1 从Web Forms转到MVC后开发概念的改变
1.6.2 数据源的改变
1.7 创建第一个MVC因特网应用程序
1.7.1 创建MVC项目
1.7.2 创建数据库(使用Local DB)
1.7.3 创建MVC中的Model
1.7.4 创建MVC中的View与Controller
1.7.5 更新为最新MVC版本
1.7.6 MVC的生命周期
1.8 结术语
参考资料
第2章 与数据的对话:Model与ADO.NET
2.1 Model的概念
2.1.1 Model的类型
2.1.2 Model的设计
2.2 ADO.NET
2.2.1 面向连接的操作
2.2.2 面向无连接的操作
2.3 泛型概念
2.3.1 泛型基础
2.3.2 设计泛型类
2.4 Model的实现
2.4.1 Model的设计
2.4.2 Model数据读写的设计
2.5 SQL Injection
2.6 结术语
第3章 LINQ:驱动数据的查询功能
3.1 LINQ概念
3.1.1 LINQ vs.循环处理
3.1.2 LINQ的类型
3.2 LINQ的基础
3.2.1 扩展方法
3.2.2 匿名类型与对象初始化器
3.2.3 类型推论
3.2.4 yield指令与延迟查询
3.2.5 Fluent Interface
3.3 Lambda表达式
3.3.1 Lambda表达式的由来
3.3.2 Lambda表达式的格式
3.3.3 通用委派与Lambda表达式
3.4 LINQ语句
3.5 LINQ函数
3.5.1 查询结果过滤:Where()
3.5.2 选取数据:Select()、SelectMany()
3.5.3 群组数据:GroupBy()、ToLookup()
3.5.4 联接数据:Join()与GroupJoin()
3.5.5 数据排序:OrderBy()与ThenBy()
3.5.6 获取集合
3.5.7 划分并获取集合
3.5.8 集合的运算
3.5.9 访问元素
3.5.10 聚合与汇总
3.6 远程查询:IQueryable〈T〉与IEnumerable〈T〉
3.7 Expression
3.8 LINQ与ADO.NET:DataSet/DataTable的使用
3.9 结术语
第4章 EF
4.1 ORM概念
4.2 EF概述
4.3 EF架构
4.3.1 数据模型映射
4.3.2 Entity SQL Service
4.3.3 Object Services
4.3.4 LINQ to Entities
4.4 Database First
4.5 Model First
4.6 Code First
4.6.1 生成模型——空白Code First的做法
4.6.2 生成模型——由数据库生成
4.6.3 Code First Modeling APIs
4.6.4 实现关联性
4.6.5 实现继承
4.6.6 存储过程和函数映射
4.7 通过DbContext访问EF数据模型
4.7.1 DbSet〈T〉
4.7.2 以对象为主的查询
4.7.3 以SQL为主的查询
4.7.4 数据的变动
4.7.5 验证
4.7.6 更新的考虑
4.8 更新数据库:Database Migration
4.8.1 数据库初始化器
4.8.2 数据库迁移-自动迁移
4.8.3 数据库迁移-手动迁移
4.8.4 数据库迁移-程序迁移
4.9 结术语
参考文献
第5章 路由(Routing)
5.1 URL Rewriting与Route基本概念
5.2 URL Routing基本应用
5.3 加入自定义的URL Routing
5.4 URL Routing如何对比
5.5 为URL Routing加上限制条件
5.6 URL Routing高级应用
5.6.1 如何从程序建立一组网址
5.6.2 直接获取RouteData内的值
5.7 如何调试网站
5.7.1 使用Route Debugger 2.0
5.7.2 使用Cobisi Routing Assistant
5.8 Area
5.8.1 创建第一个Area
5.8.2 使用Area会遇到的问题
5.8.3 根据功能模块区分的Area
5.9 结术语
第6章 控制器(Controller)
6.1 了解Controller角色
6.1.1 了解Controller工作流程
6.1.2 ASP.NET MVC 5验证系统
6.1.3 创建Model层
6.1.4 基架系统
6.2 Controller与View的数据传递
6.2.1 ViewData属性
6.2.2 ViewBag属性
6.2.3 ViewData、ViewBag传递Model
6.2.4 ViewData.Model属性
6.2.5 TempData属性
6.2.6 多Model与多对象传递
6.3 Model Binding
6.3.1 Request对象
6.3.2 RouteData
6.3.3 简单Model Binding
6.3.4 复杂的Model Binding
6.3.5 JSON Model Binding
6.3.6 ModelBinder扩展
6.4 Metadata与数据验证
6.4.1 部分类
6.4.2 验证属性
6.4.3 ModelState
6.5 ActionResult
6.5.1 EmptyResult
6.5.2 ContentResult
6.5.3 JavaScriptResult
6.5.4 JsonResult
6.5.5 HttpStatusCodeResult
6.5.6 RedirectResult与RedirectToRouteResult
6.5.7 FileResult
6.5.8 ViewResult
6.5.9 VideoResult
6.6 Action Filters
6.6.1 Authentication Filter
6.6.2 Authorization Filter
6.6.3 Action Filter
6.6.4 Result Filter
6.6.5 Exception Filter
6.6.6 Action Filters接口与扩展
6.6.7 Filter overrides
6.7 其他Controller技巧
6.7.1 ActionName属性
6.7.2 NoAction属性
6.7.3 支援多国语系
6.8 结术语
第7章 异步程序设计
7.1 异步基架生成器
7.2 进程与线程
7.2.1 进程
7.2.2 线程
7.2.3 多线程的启动
7.3 同步与异步程序设计
7.3.1 同步程序设计
7.3.2 异步程序设计
7.4 Task类
7.4.1 接续工作
7.4.2 Task.Delay
7.4.3 Parallel类
7.5 async与await关键词
7.5.1 C#4.0与C#5.0异步差异
7.5.2 同步方法读取网络资源
7.5.3 异步方法读取网络资源
7.5.4 异步方法执行流程
7.6 异步与线程池
7.6.1 如何选择同步或异步操作
7.6.2 执行多个并行操作
7.6.3 使用cancellationToken
7.6.4 多线程与异步
7.7 结术语
第8章 View:摇曳生姿的美人
8.1 View概述
8.2 View在项目中的位置
8.2.1 Views目录
8.2.2 Views下的Shared目录
8.2.3 Views下的常规目录
8.3 View的类型
8.3.1 View常规视图
8.3.2 Partial View部分视图
8.3.3 Layout主版页面
8.3.4 Template
8.4 View获得数据的方法
8.4.1 Model
8.4.2 ViewData及ViewBag
8.4.3 TempData
8.5 View Engine概述
8.5.1 WebForm ViewEngine
8.5.2 Razor View Engine
8.5.3 View Engine的执行细节
8.5.4 View Engine的扩展性
8.5.5 Razor View Engine对于View文件的搜索方式
8.6 Razor语法
8.6.1 Razor语法概述
8.6.2 程序代码区块
8.6.3 编译指示词
8.6.4 排版与辅助功能
8.6.5 全站可用的Razor Helper
8.6.6 ASP.NET MVC 4/Razor v2.0增强部分
8.7 Helpers
8.7.1 UrlHelper
8.7.2 HtmlHelper
8.7.3 AjaxHelper
8.7.4 扩展Helper
8.8 View开发技术的高级功能
8.8.1 前端优化:JavaScript/CSS的合并与优化
8.8.2 View Engine文件搜索优化
8.8.3 Layout嵌套
8.9 结术语
第9章 Bootstrap
9.1 Bootstrap导览
9.1.1 BasicTemplate
9.1.2 Grid System
9.1.3 Component
9.1.4 Bootstrap的JavaScript链接库
9.2 定制化Bootstrap
9.3 ASP.NET MVC与Bootstrap合壁
9.3.1 Component:Label、Badge、Alert、Progress
9.3.2 表单域的集成
9.4 结术语
第10章 诊断及日志处理
10.1 预处理器
10.1.1 基本规则
10.1.2 预处理器
10.2 Trace与Debug类
10.2.1 Assert方法
10.2.2 Listeners集合
10.3 艾尔玛(ELMAH)
10.3.1 艾尔玛的作用
10.3.2 使用ELMAH.MVC
10.3.3 XML Out和Database In
10.3.4 网站自动报错功能
10.3.5 ELMAH变形金刚
10.3.6 ElmahR=ELMAH+SignalR
10.3.7 ELMAH.io
10.4 NLog-Advanced.NET Logging
10.4.1 调用N日志(NLog)
10.4.2 NLog实战
10.5 ELMAH与NLog合体术
10.5.1 Log Reporting Dashboard
10.5.2 ELMAH.MVC+NLog
10.6 结术语
第11章 网站安全之道
11.1 知己知彼
11.1.1 XSS的防范
11.1.2 如何有效防范XSS
11.1.3 防止跨网站伪造请求
11.1.4 参考资料
11.2 加密与解密
11.2.1 加密博客
11.2.2 窗体验证原则
11.2.3 ASP.NET加密技术
11.2.4 哈希密码
11.2.5 Crypto类
11.2.6 加密web.config
11.2.7 登录监控
11.3 结术语
第12章 身份验证与授权
12.1 使用Session做身份验证
12.2 使用Cookie做身份验证
12.3 使用Forms Authentication做身份验证
12.4 全新的ASP.NET IDentity 2.0
12.4.1 ASP.NET IDentity 2.0
12.4.2 自定义验证逻辑
12.4.3 电子邮件验证
12.4.4 双因素认证
12.4.5 将用户加入角色
12.4.6 集成OAuth
12.5 扩展会员字段
12.6 结术语
第13章 ASP.NET Web API 2概述
13.1 Web Service
13.1.1 Web Service架构
13.1.2 XML Web Service
13.1.3 WCF
13.1.4 WCF REST
13.1.5 小结
13.2 ASP.NET Web API 2
13.2.1 IIS Express指令模式
13.2.2 Web API路由
13.2.3 REST
13.2.4 HTTP动词+URI
13.2.5 小结
13.3 Model与Web API 2基架
13.4 EF循环引用
13.5 JSON
13.5.1 XML与JSON
13.5.2 了解JSON格式
13.5.3 使用JSON数据
13.5.4 JSON-LD
13.6 POSTMAN
13.7 结术语
第14章 自动测试完整攻略
14.1 测试概念简介
14.1.1 测试的目的
14.1.2 测试的种类
14.1.3 加入测试的时间点
14.1.4 测试的效益
14.1.5 小结
14.2 测试程序设计技巧与工具的介绍
14.2.1 单元测试
14.2.2 Web自动测试
14.2.3 行为驱动开发(Behavior-Driven Development,BDD)
14.3 实战演练——以重构计算运费为例
14.3.1 范例说明
14.3.2 建立测试案例(Feature与Scenarios)
14.3.3 使用Selenium IDE来录制测试案例脚本
14.3.4 编写Selenium的测试程序(完成Steps.cs)
14.3.5 帮程序代码说话
14.3.6 提取方法
14.3.7 职责分离
14.3.8 针对各货运商类加入单元测试
14.3.9 依赖接口与工厂方法
14.3.10 小结
14.4 总结
第15章 网站部署
15.1 ASP.NET MVC RTM的进化史
15.2 部署到IIS
15.2.1 Web部署工具
15.2.2 将ASP.NET MVC 4应用程序部署到IIS 5.1 中
15.3 部署到Microsoft Azure云环境
15.3.1 部署到Microsoft Azure Website
15.3.2 部署到Microsoft Azure Cloud Service
15.4 结术语
第16章 CMS范例实战
16.1 新建项目
16.2 创建数据
16.3 建立区域
16.4 使用MetaData
16.5 使用NuGet
16.6 建立会员机制
16.7 分页套用
16.8 结术语
附录A ASP.NET MVC 5.1 与ASP.NET MVC 5.2
附录B ASP.NET MVC 6预览