- 博客(1)
- 资源 (7)
- 收藏
- 关注
原创 windows安装Scrapy
前提 安装python 安装pip 安装 lxml 到http://www.lfd.uci.edu/~gohlke/pythonlibs/#lxml 下载对应版本的wheel版本,注意如果是python3,就要安装 有cp35或Cp34。反正我安装cp27是无法成功 使用pip3 安装 pip3 install lxml-3.5.0-cp35-none-win32.whl安装Scrapypip3 i
2016-10-10 22:09:28 478
MySQL必知必会_文字版_目录齐全.pdf
MySQL必知必会 1
前言
目录
第1章 了解SQL
1.1 数据库基础
1.1.1 什么是数据库
1.1.2 表
1.1.3 列和数据类型
1.1.4 行
1.1.5 主键
1.2 什么是SQL
1.3 动手实践
1.4 小结
第2章 MySQL简介
2.1 什么是MySQL
2.1.1 客户机—服务器软件
2.1.2 MySQL版本
2.2 MySQL工具
2.2.1 mysql命令行实用程序
2.2.2 MySQL Administrator
2.2.3 MySQL Query Browser
2.3 小结
第3章 使用MySQL
3.1 连接
3.2 选择数据库
3.3 了解数据库和表
3.4 小结
第4章 检索数据
4.1 SELECT语句
4.2 检索单个列
4.3 检索多个列
4.4 检索所有列
4.5 检索不同的行
4.6 限制结果
4.7 使用完全限定的表名
4.8 小结
第5章 排序检索数据
5.1 排序数据
5.2 按多个列排序
5.3 指定排序方向
5.4 小结
第6章 过滤数据
6.1 使用WHERE子句
6.2 WHERE子句操作符
6.2.1 检查单个值
6.2.2 不匹配检查
6.2.3 范围值检查
6.2.4 空值检查
6.3 小结
第7章 数据过滤
7.1 组合WHERE子句
7.1.1 AND操作符
7.1.2 OR操作符
7.1.3 计算次序
7.2 IN操作符
7.3 NOT操作符
7.4 小结
第8章 用通配符进行过滤
8.1 LIKE操作符
8.1.1 百分号(%)通配符
8.1.2 下划线(_)通配符
8.2 使用通配符的技巧
8.3 小结
第9章 用正则表达式进行搜索
9.1 正则表达式介绍
9.2 使用MySQL正则表达式
9.2.1 基本字符匹配
9.2.2 进行OR匹配
9.2.3 匹配几个字符之一
9.2.4 匹配范围
9.2.5 匹配特殊字符
9.2.6 匹配字符类
9.2.7 匹配多个实例
9.2.8 定位符
9.3 小结
第10章 创建计算字段
10.1 计算字段
10.2 拼接字段
使用别名
10.3 执行算术计算
10.4 小结
第11章 使用数据处理函数
11.1 函数
11.2 使用函数
11.2.1 文本处理函数
11.2.2 日期和时间处理函数
11.2.3 数值处理函数
11.3 小结
第12章 汇总数据
12.1 聚集函数
12.1.1 AVG()函数
12.1.2 COUNT()函数
12.1.3 MAX()函数
12.1.4 MIN()函数
12.1.5 SUM()函数
12.2 聚集不同值
12.3 组合聚集函数
12.4 小结
第13章 分组数据
13.1 数据分组
13.2 创建分组
13.3 过滤分组 1
13.4 分组和排序
13.5 SELECT子句顺序
13.6 小结
第14章 使用子查询
14.1 子查询
14.2 利用子查询进行过滤
14.3 作为计算字段使用子查询
14.4 小结
第15章 连结表
15.1 联结
15.1.1 关系表
15.1.2 为什么要使用联结
15.2 创建联结
15.2.1 WHERE子句的重要性
15.2.2 内部联结
15.2.3 联结多个表
15.3 小结
第16章 创建高级联结
16.1 使用表别名
16.2 使用不同类型的联结
16.2.1 自联结
16.2.2 自然联结
16.2.3 外部联结
16.3 使用带聚集函数的联结
16.4 使用联结和联结条件
16.5 小结
第17章 组合查询
17.1 组合查询
17.2 创建组合查询
17.2.1 使用UNION
17.2.2 UNION规则
17.2.3 包含或取消重复的行
17.2.4 对组合查询结果排序
17.3 小结
第18章 全文本搜索
18.1 理解全文本搜索
18.2 使用全文本搜索
18.2.1 启用全文本搜索支持
18.2.2 进行全文本搜索
18.2.3 使用查询扩展
18.2.4 布尔文本搜索
18.2.5 全文本搜索的使用说明
18.3 小结
第19章 插入数据
19.1 数据插入
19.2 插入完整的行
19.3 插入多个行
19.4 插入检索出的数据
19.5 小结
第20章 更新和删除数据
20.1 更新数据
20.2 删除数据
20.3 更新和删除的指导原则
20.4 小结
第21章 创建和操纵表
21.1 创建表
21.1.1 表创建基础
21.1.2 使用NULL值
21.1.3 主键再介绍
21.1.4 使用AUTO_INCREMENT
21.1.5 指定默认值
21.1.6 引擎类型
21.2 更新表
21.3 删除表
21.4 重命名表
21.5 小结
第22章 使用视图
22.1 视图
22.1.1 为什么使用视图
22.1.2 视图的规则和限制
22.2 使用视图
22.2.1 利用视图简化复杂的联结
22.2.2 用视图重新格式化检索出的数据
22.2.3 用视图过滤不想要的数据
22.2.4 使用视图与计算字段
22.2.5 更新视图
22.3 小结
第23章 使用存储过程
23.1 存储过程
23.2 为什么要使用存储过程
23.3 使用存储过程
23.3.1 执行存储过程
23.3.2 创建存储过程
23.3.3 删除存储过程
23.3.4 使用参数
23.3.5 建立智能存储过程
23.3.6 检查存储过程
23.4 小结
第24章 使用游标
24.1 游标
24.2 使用游标
24.2.1 创建游标
24.2.2 打开和关闭游标
24.2.3 使用游标数据
24.3 小结
第25章 使用触发器
25.1 触发器
25.2 创建触发器
25.3 删除触发器
25.4 使用触发器
25.4.1 INSERT触发器
25.4.2 DELETE触发器
25.4.3 UPDATE触发器
25.4.4 关于触发器的进一步介绍
25.5 小结
第26章 管理事务处理
26.1 事务处理
26.2 控制事务处理
26.2.1 使用ROLLBACK
26.2.2 使用COMMIT
26.2.3 使用保留点
26.2.4 更改默认的提交行为
26.3 小结
第27章 全球化和本地化
27.1 字符集和校对顺序
27.2 使用字符集和校对顺序
27.3 小结
第28章 安全管理
28.1 访问控制
28.2 管理用户
28.2.1 创建用户账号
28.2.2 删除用户账号
28.2.3 设置访问权限
28.2.4 更改口令
28.3 小结
第29章 数据库维护
29.1 备份数据
29.2 进行数据库维护
29.3 诊断启动问题
29.4 查看日志文件
29.5 小结
第30章 改善性能
30.1 改善性能
30.2 小结
附录A MySQL入门
附录B 样例表
附录C MySQL语句的语法
附录D MySQL数据类型
附录E MySQL保留字
索引
2018-09-18
Docker 容器与容器云(第2版)【目录完整】
Docker 容器与容器云(第2版)【目录完整】
封面
推荐语
序
前言
本书结构
第2版的改进
致谢
目录
第一部分 Docker深入解读
第1章 从容器到容器云
1.1 云计算平台
1.2 容器,新的革命
1.3 进化:从容器到容器云
第2章 Docker 基础
2.1 Docker的安装
2.2 Docker操作参数解读
2.3 搭建你的第一个Docker应用栈
第3章 Docker核心原理解读
3.1 Docker背后的内核知识
3.2 Docker架构概览
3.3 client和daemon
3.4 libcontainer
3.4.1 libcontainer的工作方式
3.4.2 libcontainer实现原理
3.4.3 使用runC与libcontainer进行交互
3.5 Docker镜像管理
3.5.1 什么是Docker镜像
1.rootfs
2. Docker镜像的主要特点
分层
写时复制
内容寻址
联合挂载
3. Docker镜像的存储组织方式
3.5.2 Docker镜像关键概念
1. registry
2. repository
3. manifest
4. image和layer
5. Dockerfile
3.5.3 Docker镜像构建操作
1. commit镜像
2. build构建镜像
3.5.4 Docker镜像的分发方法
1. pull镜像
2. push镜像
3. docker export命令导出容器
4. docker save命令保存镜像
3.6 Docker存储管理
3.6.1 Docker镜像元素据管理
1. repository元素据
2. image元数据
3. layer元数据
3.6.2 Docker存储驱动
3.7 Docker数据卷
3.7.1 数据卷的使用方式
3.8 Docker网络管理
3.8.1 Docker网络基础
1. Docker网络架构
3.9 Docker与容器安全
第4章 Docker 高级实践技巧
4.1 容器化思维
4.1.2 Docker内应用日志管理方案
4.1.3 容器化思维及更多
4.2 Docker高级网络实践
4.2.1 玩转Linux network namespace
4.2.2 pipework原理解析
1. 将Docker容器配置到本地网络环境中
2. pipework解析
4.2.3 pipework跨主机通信
1. 桥接
2. 直接路由
4.2.4 OVS划分VLAN
1. 单主机Docker容器的VLAN划分
2. 多主机Docker容器的VLAN划分
4.2.5 OVS隧道模式
1. Overlay技术模型
2. GRE简介
3. GRE实现Docker容器跨网络通信
4. GRE实现Docker容器跨网络通信(容器在不同子网中)
5. 多租户环境下的GRE网络
4.3 Dockerfile最佳实践
4.3.1 Dockerfile的使用
1. docker build命令和镜像构建过程
2. Dockerfile指令
4.3.2 Dockerfile实践心得
4.4 Docker容器的监控手段
4.4.1 Docker容器监控维度
4.4.2 容器监控命令
4.4.3 常用的容器监控工具
1. Google的cAdvisor
2. Datadog
3. SoundCloud的Prometheus
4.5 容器化应用构建的基础:高可用配置中心
4.5.1 etcd经典应用场景
1. 场景一: 服务发现
2. 场景二: 消息发布与订阅
3. 场景三: 负载均衡
4. 场景四: 分布式通知与协调
5. 场景五: 分布式锁与竞选
6. 场景六: 分布式队列
7. 场景七: 集群监控
8. 场景八: etcd vs. Zookeeper
4.5.2 etcd实现原理
1. etcd架构与术语表
etcd中涉及到的术语
2. 集群化应用与实现原理
集群启动
静态配置
etcd自发现模式
DNS自发现模式
运行时节点变更
节点迁移、替换
节点增加
节点移除
强制性重启集群
3. 代理模式与实现原理
4. etcd数据存储原理
5. etcd和信算法Raft
Raft中一个任期是什么意思
Raft状态机是怎样切换的
如何保证最短时间内竞选出Leader,以防止竞选冲突
如何防止别的Candidate在遗漏部分数据的情况下发起投票成为Leader
Raft某个节点宕机后会如何
为什么Raft算法在确定可用节点数量时不需要考虑拜占庭将军问题
用户从集群中哪个节点读写数据
etcd实现的Raft算法的性能如何
6. etcd的API一览
第二部分 Docker云平台解读
第5章 构建自己的容器云
5.1 再谈云平台的层次架构
5.2 从小工到专家
第6章 专注编排与部署:三剑客与Fleet
6.1 编排小神器Fig/Compose
6.1.1 再谈容器编排与部署
1. 为什么要使用Fig/Compose
2. 编排和部署
3. Fig/Compose的一个例子
6.1.2 Compose原理: 一探究竟
1. Compose的工作原理
2. “小神器“之名的由来
3. 不要停止思考
6.2 跨平台宿主环境管理工具Machine
6.2.1 Machine与虚拟机软件
6.2.2 Machine与IaaS平台
6.2.3 Machine小结
6.3 集群抽象工具Swarm
6.3.1 Swarm简介
6.3.2 试用Swarm
1. 创建一个Swarm集群
2. 启动Swarm
3. 使用Docker客户端与Manager通信
4. 查看集群所有节点
6.3.3 Swarm集群的多种创建方式
1. 使用etcd创建集群
2. 使用静态文件创建集群
3. 使用Consul创建集群
4. 使用ZooKeeper创建集群
5. 用户自定义集群创建方式
6.3.4 Swarm对请求的处理
6.3.5 Swarm集群的调度策略
6.3.6 Swarm集群高可用(HA)
1. HA前期要求
2. 创建Swarm manager HA集群
3. HA集群测试
6.3.7 Swarm与Machine
6.3.8 Swarm小结
6.4 编排之秀Fleet
6.4.1 旧问题新角度: Docker distro
1. Fleet和CoreOS走的是哪条路
2. Fleet入门之systemd
6.4.2 Fleet的原理剖析
1. Fleet的调度单位
2. Fleet的编排机制
3. Fleet的体系结构
4. Fleet小结
第7章 专注应用支撑和运行时:Flynn和Deis
7.1 Flynn,一个小而美的两层架构
7.2 谈谈Deis与Flynn
第8章 一切皆容器:Kubernetes
8.1 Kubernetes是个什么样的项目
8.2 Kubernetes的设计解读
8.3 Kubernetes核心组件解读
8.4 Kubernetes存储核心原理
8.5 Kubernetes网络核心原理
8.6 Kubernetes多租户管理与资源控制
8.7 Kubernetes高级实践
8.8 Kubernetes未来动向
8.9 不要停止思考
第三部分 附录
附录A Docker的安装
附录B 阅读Docker源代码的神兵利器
附录C 快速熟悉开源项目
附录D cgroups的测试与使用
附录E cgroups子系统配置参数介绍
附录F Kubernetes的安装
后记
2018-08-08
精通ASP.NET MVC 5中文版,目录完整
精通ASP.NET MVC 5中文版,目录完整
目录
第1章 ASP.NET MVC背景 1
1.1 理解ASP.NET历史 1
1.2 当今的Web开发 3
1.2.1 Web标准与REST 3
1.2.2 敏捷与测试驱动开发 3
1.2.3 Ruby on Rails 4
1.2.4 Node.js 4
1.3 ASP.NET MV
C的关键优点 5
1.3.1 MVC的体系结构 5
1.3.2 可扩展性 5
1.3.3 HTML和HTTP上的严密控制 6
1.3.4 可测试性 6
1.3.5 强大的路由系统 7
1.3.6 建立在ASP.NET平台的精华之上 7
1.3.7 现代API 7
1.3.8 ASP.NET MVC是开源的 8
1.4 本书的预备知识 8
1.5 本书的结构 8
1.5.1 第1部分:ASP.NET MVC 5导论 8
1.5.2 第2部分:ASP.NET MVC细节 8
1.6 本版的新特点 9
1.7 获取示例代码 9
1.8 本书所需的软件 10
1.9 诚信 10
1.10 小结 10
第2章 第一个MVC应用程序 11
2.1 准备Visual Studio 11
2.2 创建新的ASP.NET MVC项目 11
2.2.1 添加第一个控制器 13
2.2.2 理解路由 16
2.3 渲染Web页面 16
2.3.1 创建并渲染视图 16
2.3.2 添加动态输出 20
2.4 创建一个简单的数据录入应用程序 21
2.4.1 设置场景 21
2.4.2 设计一个数据模型 22
2.4.3 链接动作方法 23
2.4.4 建立表单 25
2.4.5 设置启动URL 27
2.4.6 处理表单 28
2.4.7 添加验证 31
2.4.8 设置内容样式 35
2.4.9 完成示例 40
2.5 小结 41
第3章 MVC模式 42
3.1 MVC简史 42
3.2 理解MVC模式 42
3.2.1 理解域模型 43
3.2.2 MVC的ASP.NET实现 44
3.2.3 MVC与其他模式比较 44
3.3 建立松耦合组件 47
3.3.1 使用依赖项注入 48
3.3.2 使用依赖项注入容器 49
3.4 自动测试初步 50
3.4.1 理解单元测试 51
3.4.2 理解集成测试 55
3.5 小结 56
第4章 基本语言特性 57
4.1 准备示例项目 57
4.2 使用自动实现的属性 59
4.3 使用对象与集合的初始化器 62
4.4 使用扩展方法 64
4.4.1 对接口运用扩展方法 65
4.4.2 创建过滤扩展方法 67
4.5 使用lambda表达式 69
4.6 使用自动类型接口 72
4.7 使用匿名类型 72
4.8 执行语言集成查询(LINQ) 74
4.9 使用Async方法 78
4.10 小结 81
第5章 使用Razor 82
5.1 准备示例项目 82
5.1.1 定义模型 82
5.1.2 定义控制器 83
5.1.3 创建视图 83
5.2 使用模型对象 84
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 插入数据值 93
5.4.2 设置标签属性的值 94
5.4.3 使用条件语句 96
5.4.4 枚举数组和集合 98
5.4.5 处理命名空间 99
5.5 小结 100
第6章 MVC基本工具 101
6.1 准备示例项目 102
6.1.1 创建模型类 102
6.1.2 添加控制器 103
6.1.3 添加视图 104
6.2 使用Ninject 104
6.2.1 理解问题 105
6.2.2 将Ninject添加到Visual Studio项目 106
6.2.3 Ninject初步 107
6.2.4 建立MVC的依赖项注入 108
6.2.5 创建依赖项链 111
6.2.6 指定属性和构造器参数值 112
6.2.7 使用条件绑定 114
6.2.8 设置对象作用域 115
6.3 Visual Studio的单元测试 117
6.3.1 创建单元测试项目 117
6.3.2 添加单元测试 119
6.3.3 运行单元测试(并失败) 122
6.3.4 实现特性 123
6.3.5 测试并修正代码 123
6.4 使用Moq库 124
6.4.1 理解问题 125
6.4.2 将Moq添加到Visual Studio项目 126
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 添加项目之间的引用 135
7.1.4 设置DI容器 135
7.1.5 运行应用程序 136
7.2 从域模型开始 137
7.2.1 创建抽象存储库 137
7.2.2 创建模仿存储库 138
7.3 显示产品列表 139
7.3.1 添加控制器 139
7.3.2 添加布局、视图起始文件及视图 140
7.3.3 设置默认路由 142
7.3.4 运行应用程序 143
7.4 准备数据库 143
7.4.1 创建数据库 144
7.4.2 定义数据库方案 145
7.4.3 向数据库添加数据 147
7.4.4 创建Entity Framework上下文 148
7.4.5 创建Product存储库 149
7.5 添加分页 151
7.5.1 显示页面链接 152
7.5.2 改进URL 160
7.6 设置内容样式 161
7.6.1 安装Bootstrap包 161
7.6.2 在布局中运用Bootstrap样式 162
7.6.3 创建分部视图 163
7.7 小结 165
第8章 SportsStore:导航 166
8.1 添加导航控件 166
8.1.1 过滤产品列表 166
8.1.2 调整URL方案 170
8.1.3 建立分类导航菜单 172
8.1.4 修正页面计数 178
8.2 创建购物车 180
8.2.1 定义购物车实体 180
8.2.2 添加“加入购物车”按钮 184
8.2.3 实现购物车控制器 185
8.2.4 显示购物车内容 186
8.3 小结 188
第9章 SportsStore:完成购物车 189
9.1 使用模型绑定 189
9.2 完成购物车功能 193
9.2.1 删除购物车物品 194
9.2.2 添加购物车摘要 195
9.3 递交订单 197
9.3.1 扩充域模型 197
9.3.2 添加结算过程 198
9.3.3 实现订单处理器 203
9.3.4 注册接口实现 206
9.3.5 完成购物车控制器 207
9.3.6 显示验证错误 210
9.3.7 显示致谢页面 212
9.4 小结 212
第10章 SportsStore:移动版 213
10.1 移动Web开发的背景 213
10.2 使用响应式设计 214
10.2.1 创建响应式页头 215
10.2.2 创建响应式的产品列表 218
10.3 创建移动专用的内容 225
10.3.1 创建移动布局 225
10.3.2 创建移动视图 226
10.4 小结 229
第11章 SportsStore:管理 230
11.1 添加分类管理 230
11.1.1 创建CRUD控制器 230
11.1.2 创建新的布局 232
11.1.3 实现List视图 233
11.1.4 编辑产品 236
11.1.5 创建新产品 248
11.1.6 删除产品 251
11.2 小结 253
第12章 SportsStore:安全性与收尾工作 254
12.1 实现管理控制器的安全 254
12.1.1 创建基本的安全策略 254
12.1.2 运用过滤器进行授权 256
12.1.3 创建认证提供器 257
12.1.4 创建Account控制器 259
12.1.5 创建视图 260
12.2 图像上传 263
12.2.1 扩展数据库 263
12.2.2 增强域模型 263
12.2.3 创建上传用户界面的元素 264
12.2.4 将图像保存到数据库 266
12.2.5 实现GetImage动作方法 268
12.2.6 显示产品图像 270
第13章 部署 272
13.1 Windows Azure的准备 273
13.1.1 创建Web网站和数据库 273
13.1.2 准备远程管理数据库 275
13.1.3 创建数据库模式 275
13.2 部署应用程序 278
13.3 小结 280
第14章 MVC项目综述 281
14.1 使用Visual Studio的MVC项目 281
14.1.1 创建项目 281
14.1.2 理解MVC约定 284
14.2 调试MVC应用程序 286
14.2.1 准备示例项目 286
14.2.2 运行Visual Studio调试器 288
14.2.3 引发Visual Studio调试器中断 290
14.2.4 使用编辑并继续 293
14.3 使用浏览器链接 296
14.4 小结 297
第15章 URL路由 298
15.1 创建示例项目 299
15.1.1 创建示例控制器 299
15.1.2 创建视图 300
15.1.3 设置起始URL并测试应用程序 301
15.2 URL模式 301
15.3 创建并注册一条简单路由 303
15.4 定义默认值 308
15.5 使用静态URL片段 310
15.6 定义自定义片段变量 313
15.6.1 用自定义变量作为动作方法参数 315
15.6.2 定义可选URL片段 316
15.6.3 定义可变长路由 318
15.6.4 按命名空间区分控制器优先顺序 319
15.7 约束路由 322
15.7.1 用正则表达式约束路由 322
15.7.2 将一条路由约束到一组指定的值 323
15.7.3 使用HTTP方法约束路由 324
15.7.4 定义自定义约束 327
15.8 使用属性路由 329
15.8.1 启用和运用属性路由 329
15.8.2 使用片段变量创建路由 331
15.8.3 运用路由约束 332
15.8.4 使用Route Prefix 333
15.9 小结 334
第16章 高级路由特性 335
16.1 准备示例项目 335
16.1.1 简化路由 336
16.1.2 添加优化包 336
16.1.3 更新单元测试项目 336
16.2 在视图中生成输出URL 337
16.2.1 用路由系统生成输出URL 337
16.2.2 以其他控制器为目标 339
16.2.3 传递额外的值 341
16.2.4 指定HTML标签属性 343
16.2.5 生成链接中的全限定URL 343
16.2.6 生成URL(而不是链接) 344
16.2.7 在动作方法中生成输出URL 345
16.2.8 根据指定路由生成URL 346
16.3 定制路由系统 347
16.3.1 创建自定义的RouteBase实现 347
16.3.2 创建自定义路由处理程序 352
16.4 使用区域 353
16.4.1 创建一个区域 353
16.4.2 填充区域 355
16.4.3 解析不明确的控制器问题 356
16.4.4 使用属性创建区域 357
16.4.5 生成对区域动作的链接 358
16.5 对磁盘文件进行路由请求 359
16.5.1 配置应用程序服务器 360
16.5.2 为磁盘文件定义路由 361
16.6 绕过路由系统 362
16.7 URL方案最佳做法 363
16.7.1 使URL整洁和人性化 363
16.7.2 GET和POST:选用正确的一个 364
16.8 小结 364
第17章 控制器和动作 365
17.1 准备示例项目 365
17.2 控制器介绍 366
17.2.1 使用IController创建控制器 366
17.2.2 创建派生于Controller类的控制器 368
17.3 接收请求数据 370
17.3.1 通过上下文对象获取数据 370
17.3.2 使用动作方法参数 371
17.4 产生输出 373
17.4.1 理解动作结果 375
17.4.2 通过渲染视图返回HTML 378
17.4.3 将数据从动作方法传递给视图 381
17.4.4 执行重定向 385
17.4.5 返回错误及HTTP代码 389
17.5 小结 391
第18章 过滤器 392
18.1 准备示例项目 392
18.2 使用过滤器 394
18.2.1 过滤器类型介绍 396
18.2.2 将过滤器运用于控制器和动作方法 396
18.3 使用授权过滤器 397
18.3.1 运用自定义授权过滤器 399
18.3.2 使用内建的授权过滤器 399
18.4 使用认证过滤器 400
18.4.1 理解IAuthenticationFilter接口 400
18.4.2 实现认证检查 402
18.4.3 组合认证和授权过滤器 404
18.4.4 处理最终有疑问的请求 405
18.5 使用异常过滤器 406
18.5.1 创建异常过滤器 406
18.5.2 运用异常过滤器 407
18.5.3 使用视图来响应异常 409
18.5.4 使用内建的异常过滤器 411
18.6 使用动作过滤器 414
18.6.1 实现OnActionExecuting方法 414
18.6.2 实现OnActionExecuted方法 416
18.7 使用结果过滤器 417
18.8 使用其他过滤器特性 420
18.8.1 无注解属性的过滤 420
18.8.2 使用全局过滤器 422
18.8.3 对过滤器执行进行排序 424
18.8.4 重载过滤器 426
18.9 小结 428
第19章 控制器可扩展性 429
19.1 准备示例项目 430
19.2 创建自定义控制器工厂 431
19.2.1 处理备用控制器 433
19.2.2 实例化控制器类 434
19.2.3 实现其他接口方法 434
19.2.4 注册自定义控制器工厂 435
19.3 使用内建的控制器工厂 435
19.3.1 命名空间优先排序 436
19.3.2 定制DefaultControllerFactory的控制器实例化 437
19.4 创建自定义动作调用器 439
19.5 使用内建的动作调用器 441
19.5.1 使用自定义动作名 441
19.5.2 使用动作方法选择 443
19.6 用特殊控制器改善性能 447
19.6.1 使用无会话控制器 448
19.6.2 使用异步控制器 450
19.7 小结 454
第20章 视图 455
20.1 创建自定义视图引擎 455
20.1.1 准备示例项目 458
20.1.2 创建自定义的IView 458
20.1.3 创建IViewEngine实现 459
20.1.4 注册自定义视图引擎 460
20.1.5 测试视图引擎 461
20.2 使用Razor引擎 462
20.2.1 准备示例项目 462
20.2.2 理解Razor视图渲染 463
20.2.3 配置视图搜索位置 464
20.3 对Razor视图添加动态内容 467
20.3.1 使用分段 467
20.3.2 使用分部视图 472
20.3.3 使用子动作 474
20.4 小结 476
第21章 辅助器方法 477
21.1 准备示例项目 477
21.1.1 设置启动URL 478
21.1.2 测试示例应用程序 478
21.2 创建自定义辅助器方法 479
21.2.1 创建内联的辅助器方法 479
21.2.2 创建外部辅助器方法 481
21.2.3 管理辅助器方法中的字符串编码 484
21.3 使用内建的Form辅助器方法 487
21.3.1 创建Form元素 487
21.3.2 指定表单使用的路由 493
21.3.3 使用输入辅助器 495
21.3.4 创建Select元素 499
21.4 小结 501
第22章 模板辅助器方法 502
22.1 准备示例项目 502
22.2 使用模板辅助器方法 504
22.2.1 生成标签和显示元素 508
22.2.2 使用整体模型模板辅助器 510
22.3 使用模型元数据 512
22.3.1 用元数据控制编辑及可见性 512
22.3.2 使用用于标签的元数据 514
22.3.3 使用用于数据值的元数据 515
22.3.4 用元数据选择显示模板 517
22.3.5 将元数据运用于伙伴类 518
22.3.6 使用复合类型属性 520
22.4 定制模板视图辅助器系统 521
22.4.1 创建自定义编辑器模板 521
22.4.2 创建泛型模板 522
22.4.3 替换内建模板 524
22.5 小结 524
第23章 URL和Ajax辅助器方法 525
23.1 准备示例项目 525
23.1.1 定义附加的CSS样式 526
23.1.2 安装NuGet包 527
23.2 创建基本的链接和URL 527
23.3 使用MVC的渐进式Ajax 529
23.3.1 创建同步表单视图 529
23.3.2 为渐进式Ajax准备项目 531
23.4 创建渐进式Ajax表单 532
23.4.1 准备控制器 532
23.4.2 创建Ajax表单 534
23.4.3 理解渐进式Ajax工作原理 535
23.5 设置Ajax选项 536
23.5.1 确保优雅降级 536
23.5.2 在Ajax请求期间给用户提供反馈 538
23.5.3 请求之前对用户进行提示 539
23.6 创建Ajax链接 539
23.7 使用Ajax回调 541
23.8 使用JSON 543
23.8.1 对控制器添加JSON支持 544
23.8.2 在浏览器中处理JSON 545
23.8.3 准备编码数据 547
23.8.4 在动作方法中检测Ajax请求 548
23.9 小结 550
第24章 模型绑定 551
24.1 准备示例项目 551
24.2 理解模型绑定 553
24.3 使用默认模型绑定器 555
24.3.1 绑定简单类型 556
24.3.2 绑定复杂类型 558
24.3.3 绑定到数组和集合 564
24.4 手工调用模型绑定 569
24.5 定制模型绑定系统 571
24.5.1 创建自定义值提供器 571
24.5.2 创建自定义模型绑定器 574
24.5.3 注册自定义模型绑定器 576
24.6 小结 577
第25章 模型验证 578
25.1 准备示例项目 578
25.1.1 创建布局 579
25.1.2 创建视图 580
25.2 明确地验证模型 581
25.3 显示验证消息 584
25.4 使用其他验证技术 588
25.4.1 在模型绑定器内实施验证 588
25.4.2 用元数据指定验证规则 589
25.4.3 定义自验证模型 595
25.5 执行客户端验证 596
25.5.1 启用客户端验证 597
25.5.2 使用客户端验证 598
25.5.3 理解客户端验证机制 599
25.6 执行远程验证 600
25.7 小结 603
第26章 捆绑包 604
26.1 准备示例应用程序 604
26.1.1 添加NuGet包 604
26.1.2 创建模型和控制器 604
26.1.3 创建布局和视图 605
26.2 脚本及样式表加载的资料分析 608
26.3 使用脚本和样式捆绑包 610
26.3.1 添加NuGet包 610
26.3.2 定义捆绑包 610
26.3.3 运用捆绑包 612
26.3.4 优化JavaScript和CSS文件 614
26.4 小结 615
第27章 Web API与单页应用程序 616
27.1 理解单页应用程序 616
27.2 准备示例项目 617
27.2.1 创建模型 617
27.2.2 添加NuGet包 619
27.2.3 添加控制器 619
27.2.4 添加布局和视图 620
27.2.5 设置启动位置并测试示例应用程序 622
27.3 使用Web API 623
27.3.1 创建Web API控制器 624
27.3.2 测试API控制器 624
27.4 理解API控制器的工作机制 626
27.4.1 理解API控制器的动作选择 627
27.4.2 将HTTP方法映射到动作方法 628
27.5 将Knockout用于单页应用程序 629
27.5.1 在布局中添加JavaScript库 629
27.5.2 实现Summary 630
27.5.3 改善Delete特性 635
27.5.4 实现Create特性 636
27.6 完成应用程序 639
27.6.1 简化Home控制器 639
27.6.2 管理内容的可见性 640
27.7 小结 642
2018-08-08
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人