内容简介
前言
第一部分 千里之行,始于足下
第1章 ASP.NET MVC基础
Microsoft Web开发平台
活动服务页面
ASP.NET Web表单
ASE NET MVC
MVC架构
模型
视图
控制器
ASP.NET MVC 4的新特性
EBuy介绍
安装ASP.NET MVC
创建ASP.NET MVC 4应用程序
项目模板
惯例优先原则
运行程序
路由
配置路由
控制器
控制器操作
操作结果
操作参数
操作过滤器
视图
定位视图
Razor,你好!
区分代码和标记语言
布局
部分视图
显示数据
HTML和URL帮助方法
模型
群英荟萃
路由
控制器
视图
验证
账号控制器
总结
第2章 ASP.NET Web Form开发人员必读
ASP.NET同门兄弟
工具、语言和API
HTTP处理程序和模块
管理状态
部署和运行时
更多的差别
应用程序业务和视图分离
URL和路由
状态管理
渲染HTML代码
使用Web Form语法编写ASP.NET MVC视图
要点提示
总结
第3章 使用数据
构建表单
处理表单Post
保存数据到数据库
代码优先:惯例优先原则
使用Entity Framework代码优先模式创建数据访问层
验证数据
使用数据声明指定业务规则
显示验证错误
总结
第4章 客户端开发
使用JavaScript
选择器
处理事件
DOM操作
AJAX
客户端验证
总结
第二部分 欲穷千里目,更上一层楼
第5章 Web应用程序架构
模型-视图-控制器模式
分离关注点
MVC与Web框架
Web应用架构设计
逻辑设计
ASP.NET MVC Web应用程序的逻辑设计
逻辑设计的最佳实践
物理设计
项目命名空间和程序集名称
部署选项
物理设计的最佳实践
设计原则
SOLID原则
控制反转
DRY原则
总结
第6章 使用AJAX提升网站体验
部分渲染
渲染部分视图
JavaScript渲染
渲染JSON数据
请求JSON数据
客户端模板
重用跨AJAX和非AJAX请求逻辑代码
响应AJAX请求
处理JSON请求
跨控制器操作指定统一逻辑
发送数据到服务器
提交复杂的JSON对象
选择模型绑定器
高效地收发JSON数据
跨域AJAX请求
JSONP
启用跨站资源共享
总结
第7章 ASP.NET Web API
构建Data Service
注册Web API路由
依赖惯例优先原则
重写惯例
钩住API
数据分页与查询
异常处理
Media格式化器
总结
第8章 高级数据
数据访问模式
Plain Old CLR Objects
使用repository模式
对象关系映射器
实体框架概述
选择数据访问方法
数据库并发
构建数据访问层
使用Entity Framework代码优先方法
EBuy业务域模型
使用数据上下文
排序、过滤以及数据分页
总结
第9章 安全
构建安全的Web应用
深度防御
不信任任何输入数据
执行最小权限原则
假设外部系统是危险的
减少裸露面
关闭不必要的功能
保护程序
保护局域网应用
表单验证
防御攻击
SQL注入
跨站脚本
跨站请求伪造
使用ASP. NET MVC来防御CSRF
总结
第10章 移动Web网站开发
ASP.NET MVC 4移动特性
让移动应用变得更友善
创建Auction移动视图
使用jQuery Mobile框架
增强视图
禁止移动网站显示桌面视图
改进移动用户体验
自适应渲染
Viewport标签
移动特性探测
CSS媒体查询
浏览器专用视图
从零开始创建新的移动应用
jQuery Mobile范式转换
ASP.NET MVC 4移动应用模板
使用ASP.NET MVC 4移动应用模板
总结
第三部分 会当临绝顶,一览纵山小
第11章 并行计算、异步和实时数据操作
异步控制器
创建异步控制器
何时使用异步控制器
实时异步通信
对比应用模型
HTTP轮询
HTTP长轮询
服务端推送事件
WebSockets
增强实时通信
配置和调整
总结
第12章 缓存
缓存的类型
服务端缓存
客户端缓存
服务端缓存技术
请求域内的缓存
用户域内的缓存
应用程序域内的缓存
ASP. NET缓存
输出缓存
甜甜圈缓存
甜甜圈洞缓存
分布式缓存
客户端缓存技术
理解浏览器缓存
AppCache缓存
本地存储
总结
第13章 客户端优化技术
页面剖析
HttpRequest剖析
最佳实践
减少HTTP请求
使用CDN内容分发网络
添加Expires或Cache-Control消息头
GZip组件
置顶样式文件
置底脚本文件
迁出脚本和样式代码
减少DNS查询
压缩JavaScript和CSS
避免重定向
删除重复脚本
配置实体标签
测试客户端性能
运行ASP. NET MVC
捆绑和压缩
总结
第14章 高级路由
路标指示系统
URL和搜索引擎优化
构建路由
路由参数
路由顺序和优先级
路由到现有文件
忽略路由
捕获所有路由
路由约束
使用Glimpse观察路由
基于属性标记的路由
扩展路由
路由管道
总结
第15章 可复用UI组件
ASP. NET MVC框架提供了什么
部分视图
HtmlHelper扩展或自定义HrrnlHelper
显示和编辑模板
Html.RenderAction()
更进一步
Razor单文件生成器
创建可复用的ASP.NET MVC视图
创建可复用ASP. NET MVC Helpers
单元测试Razor视图
总结
第四部分 质量控制
第16章 日志
ASP. NET MVC中的错误处理
启用自定义错误
控制器操作中的错误处理
定义全局错误处理器
日志和跟踪
记录错误日志
ASP. NET健康监控
总结
第17章 自动化测试
测试的语义
人工测试
自动化测试概述
自动化测试的级别
单元测试
集成测试
验收测试
什么是自动化测试项目?
创建Visual Studio测试项目
创建并执行单元测试
测试ASP.NET MVC应用程序
测试模型
测试驱动开发
编写干净的自动化测试代码
测试控制器
重构单元测试
模拟依赖
测试视图
代码覆盖率
100%代码覆盖率的秘密
开发可测试的代码
总结
第18章 自动化生成
创建生成脚本
Visual Studio项目就是生成脚本
添加简单的生成任务
执行生成
一切皆有可能
自动化生成概述
自动化生成的类型
创建自动化生成
持续集成
发现问题
持续集成原则
总结
第五部分 实施
第19章 部署
需要部署什么
网站核心文件
静态内容
为什么不部署?
数据和其他依赖
发布EBuy交易网站需要做的工作
部署到IIS服务器
必备条件
创建并配置IIS网站
使用Visual Studio发布
部署到Windows Azure
创建Windows Azure账号
创建新的Windows Azure网站
通过源代码控制软件发布Windows Azure网站
总结
第六部分 附录
附录A: ASP.NET MVC与Web Form集成
附录B: 作为平台使用NuGet
附录C: ASP.NET MVC开发最佳实践原则
附录D: 交叉引用:目标主题、特性和场景
索引