ASP.NET MVC 1.0高级编程PDF电子书下载
- 电子书积分:14 积分如何计算积分?
- 作 者:(美)康纳利著
- 出 版 社:北京:清华大学出版社
- 出版年份:2010
- ISBN:9787302222439
- 页数:422 页
第1章 NerdDinner 1
1.1 File|New Project 5
1.1.1 查看NerdDinner目录的结构 6
1.1.2 运行NerdDinner应用程序 9
1.1.3 测试NerdDinner应用程序 11
1.2 创建数据库 12
1.2.1 创建新的SQL Server Express数据库 12
1.2.2 在数据库中创建表 13
1.2.3 建立两个表之间的外键关系 16
1.2.4 向表中添加数据 18
1.3 构建模型 19
1.3.1 LINQ to SQL 19
1.3.2 向项目中添加LINQ to SQL类 19
1.3.3 通过LINQ to SQL创建数据模型类 21
1.3.4 NerdDinnerDataContext类 23
1.3.5 创建DinnerRepository类 24
1.3.6 使用DinnerRepository类进行检索、更新、插入和删除 26
1.3.7 使用Model类集成验证和业务规则逻辑 29
1.4 控制器和视图 33
1.4.1 添加DinnersController控制器 34
1.4.2 将索引和细节动作的方法添加到DinnersController类中 35
1.4.3 理解ASP.NET MVC的路由 36
1.4.4 使用来自DinnersController的DinnerRepository 38
1.4.5 通过控制器使用视图 38
1.4.6 实现NotFound视图模板 40
1.4.7 实现Details视图模板 42
1.4.8 实现Index视图模板 47
1.4.9 基于约定的命名和\Views目录结构 52
1.5 表单场景的创建、更新、删除 54
1.5.1 通过DinnersController处理URL 54
1.5.2 实现HTTP-GET编辑动作方法 55
1.5.3 Html.BeginForm和Html.TextBox的Html辅助方法 59
1.5.4 实现HTTP-POST编辑动作方法 60
1.5.5 处理编辑错误 64
1.5.6 理解ModelState和验证的HTML辅助方法 65
1.5.7 使用AddRuleViolations辅助方法 68
1.5.8 Edit动作方法的完整实现 68
1.5.9 实现HTTP-GET创建动作方法 69
1.5.10 实现HTTP-POST创建动作方法 72
1.5.11 实现HTTP-GET删除动作方法 75
1.5.12 实现HTTP-POST删除动作方法 78
1.5.13 模型绑定安全性 79
1.5.14 CRUD小结 81
1.6 ViewData和ViewModel 84
1.6.1 将数据从控制器传到视图模板中 84
1.6.2 使用ViewData字典 84
1.6.3 使用ViewModel模式 86
1.6.4 自定义的ViewModel类 89
1.7 Partials页面和Master页面 90
1.7.1 回顾Edit和Create视图模板 90
1.7.2 使用Partial视图模板 91
1.7.3 使用局部视图模板理清代码 95
1.7.4 Master页面 95
1.8 分页支持 99
1.8.1 Index()动作方法 99
1.8.2 理解IQueryable〈T〉 100
1.8.3 在URL中添加page值 101
1.8.4 添加页面导航用户界面 104
1.9 身份验证和授权 107
1.9.1 理解身份验证和授权 107
1.9.2 表单身份验证和AccountController 108
1.9.3 使用[Authorize]过滤器对/Dinners/Create的URL地址进行授权 111
1.9.4 创建Dinners时使用User.Identity.Name属性 112
1.9.5 在编辑宴会记录时使用User.Identity.Name属性 113
1.9.6 显示/隐藏编辑和删除链接 115
1.10 通过AJAX实现RSVP支持 116
1.10.1 指明用户是否已经回复 116
1.10.2 实现Register动作方法 119
1.10.3 使用AJAX调用Register动作方法 119
1.10.4 添加jQuery动画 122
1.10.5 简化-重构RSVP局部视图 123
1.11 集成AJAX地图 124
1.11.1 创建Map局部视图 124
1.11.2 创建Map.js实用程序库 125
1.11.3 将地图与创建和编辑表单集成 127
1.11.4 将地图与Details视图集成 131
1.11.5 在数据库和仓库中实现位置搜索 133
1.11.6 实现基于JSON的AJAX搜索动作方法 136
1.11.7 使用jQuery调用基于JSON的AJAX方法 137
1.12 单元测试 141
1.12.1 进行单元测试的原因 142
1.12.2 NerdDinner.Tests项目 142
1.12.3 为Dinner模型类创建单元测试 143
1.12.4 运行测试 146
1.12.5 创建DinnersController单元测试 147
1.12.6 依赖注入 148
1.12.7 提取IDinnerRepository接口 149
1.12.8 更新DinnersController以支持构造函数注入 150
1.12.9 创建FakeDinnerRepository类 151
1.12.10 在单元测试中使用FakeDinnerRepository 153
1.12.11 创建Edit动作的单元测试 155
1.12.12 模仿User.Identity.Name属性 156
1.12.13 测试UpdateModel()方法 158
1.12.14 测试小结 160
1.13 NerdDinner应用程序小结 160
第2章 MVC与ASP.NET 163
2.1 什么是模型-视图-控制器 163
2.2 当今Web上的MVC 165
2.2.1 Ruby on Rails 166
2.2.2 Django和Python 166
2.2.3 Spring、Struts和Java 167
2.2.4 Zend架构和PHP 167
2.2.5 MonoRail 168
2.3 新宠ASP.NET MVC 168
2.3.1 为方法服务而不是文件 169
2.3.2 ASP.NET MVC是Web Forms 4.0吗 169
2.3.3 为什么不是Web Forms 170
2.3.4 Web Forms的成本/收益 171
2.3.5 对ASP.NET MVC惧怕吗 171
2.4 小结 172
第3章 ASP.NET>ASP.NET MVC 175
3.1 抽象:Web Forms擅长的领域 175
3.1.1 基本的Web Forms应用程序 176
3.1.2 事件的重要性 179
3.2 遗漏:Web Forms不十分适合之处 181
3.2.1 ViewState 182
3.2.2 控制尖括号的使用 182
3.2.3 客户的ID 183
3.2.4 测试 183
3.3 ASP.NET MVC的基础 183
3.3.1 管弦乐编曲与作曲 184
3.3.2 关注点分离的含义 184
3.3.3 实现可维护性的方法 185
3.4 可测试性 185
3.5 对ASP.NET MVC的通常反应 187
3.5.1 它看起来有点像1999年的经典ASP 187
3.5.2 谁移动了〈asp:Cheese runat=“server”}〉 187
3.5.3 另一种Web架构 188
3.6 为什么“(ASP.NET>ASP.NET MVC)==True” 188
3.6.1 约定胜于配置 190
3.6.2 第一、二、三个请求 193
3.6.3 请求的生命周期 196
3.7 小结 196
第4章 路由和URL 197
4.1 路由选择概述 198
4.1.1 与URL重写的比较 198
4.1.2 路由的定义 199
4.1.3 命名路由 205
4.1.4 Catch-All参数 206
4.1.5 StopRoutingHandler 207
4.1.6 深入分析:路由如何生成URL 208
4.2 深入分析:路由如何将URL与动作联系起来 215
4.2.1 高层次请求的路由选择管道 215
4.2.2 路由匹配 216
4.3 具有自定义约束的高级路由选择 216
4.4 路由的可扩充性 217
4.5 通过Web表单使用路由选择 221
4.6 小结 223
第5章 控制器 225
5.1 控制器的发展史 225
5.2 控制器的定义:IController接口 227
5.3 ControllerBase抽象基类 229
5.4 控制器类和动作 229
5.5 ActionResult 233
5.5.1 动作结果的类型 234
5.5.2 动作结果的辅助方法 238
5.5.3 隐式的动作结果 238
5.6 动作调用者 240
5.6.1 动作如何映射到方法中 240
5.6.2 映射参数 243
5.6.3 调用动作 243
5.6.4 将数据传递给动作:模型绑定器 243
5.6.5 用户输入的简单说明 247
5.7 小结 249
第6章 视图 251
6.1 视图的职责 251
6.2 视图不应该做的事情 253
6.3 指定一个视图 253
6.4 强类型视图 255
6.5 HTML辅助方法 256
6.5.1 HtmlHelper类和扩展方法 257
6.5.2 使用HTML辅助方法 257
6.6 视图引擎 266
6.6.1 配置视图引擎 267
6.6.2 选择视图引擎 267
6.6.3 寻找视图 268
6.6.4 视图本身 268
6.6.5 可替换的视图引擎 269
6.7 新的视图引擎还是新的ActionResult 275
6.8 小结 276
第7章 AJAX 277
7.1 AJAX在什么情况下显得很酷 278
7.2 AJAX不适用的情形 278
7.3 AJAX示例 280
7.3.1 处理禁用的脚本 280
7.3.2 将Partial用于呈现 285
7.3.3 关于Microsoft ASP.NET AJAX的其他一些问题 288
7.3.4 在提交表单时更新HTML元素 290
7.3.5 自动完成文本框 292
7.3.6 通过Microsoft ASP.NET AJAX实现自动完成 292
7.3.7 使用Selectbox过滤数据 295
7.3.8 用jQuery实现模态弹出窗口 297
7.3.9 模态弹出的代码 298
7.3.10 Rating控件 299
7.4 小结 303
第8章 过滤器 305
8.1 包含在ASP.NET MVC中的过滤器 305
8.1.1 Authorize 305
8.1.2 OutputCache 308
8.1.3 异常过滤器 310
8.1.4 自定义的过滤器 311
8.2 编写自定义的动作过滤器 315
8.3 编写自定义的授权过滤器 317
8.4 编写自定义的异常过滤器 319
8.5 过滤器的排序 320
8.6 过滤器的命名 321
8.7 小结 323
第9章 保护应用程序的安全 325
9.1 这是一场战争 326
9.2 武器 331
9.2.1 垃圾邮件 331
9.2.2 案例研究:通过Srizbi和Storm僵尸网络从罪恶中谋取利益 332
9.2.3 Digital Stealth Ninja网络 333
9.3 威胁:跨站点脚本(XSS) 334
9.3.1 被动注入 334
9.3.2 主动注入 336
9.3.3 阻止XSS 338
9.3.4 Html.AttributeEncode和Url.Encode 338
9.4 威胁:跨站点请求伪造 339
9.5 威胁:cookie盗窃 343
9.6 通过HttpOnly防止cookie偷窃 344
9.7 适当的错误报告和堆栈跟踪 345
9.8 保护控制器,而不是路由 345
9.9 使用[NonAction]保护公有方法 347
9.10 白单表单的绑定 347
9.11 小结:一切取决于自己 348
第10章 使用ASP.NET MVC进行测试驱动开发 349
10.1 TDD简介 350
10.1.1 TDD的含义 350
10.1.2 编写好的单元测试 353
10.1.3 编写测试的好处 357
10.1.4 如何入手 357
10.2 将TDD运用到ASP.NET MVC由 357
10.2.1 测试路由 358
10.2.2 测试控制器 360
10.2.3 重定向到另一个动作 360
10.2.4 测试视图辅助方法 361
10.2.5 测试视图 364
10.3 小结 365
第11章 可测试的设计模式 367
11.1 关注可测试性的原因 367
11.1.1 预先大量设计 368
11.1.2 敏捷软件开发 369
11.2 希望编写可测试的代码 370
11.3 使用测试证明所做的工作 371
11.4 为可测试性设计应用程序 371
11.4.1 用接口保证应用程序的未来 371
11.4.2 单一职责原则 373
11.4.3 避免使用单态和静态方法 373
11.5 可测试的数据访问 376
11.5.1 创建模型 377
11.5.2 仓库模式的详细介绍 379
11.6 通过服务层实现业务逻辑 383
11.6.1 服务变得混乱 385
11.6.2 局部解决方案:手动设置控制器的依赖 386
11.7 小结 392
第12章 将Web Forms和MVC相结合 395
12.1 如何变得可行 395
12.2 将MVC包含到已有的Web Forms应用程序中 396
12.2.1 第1步:引用必要的库 396
12.2.2 第2步:创建必要的目录 397
12.2.3 第3步:更新Web.config 398
12.3 向已有的ASP.NET MVC应用程序中添加Web Forms 400
12.3.1 最简单的部分:什么都不做 401
12.3.2 如果不采用默认路由 403
12.3.3 使用System.Web.Routing路由到Web Forms 403
12.4 在Web Forms和MVC之间共享数据 404
12.4.1 使用HTTP POST 404
12.4.2 使用ASP.NET会话 405
12.4.3 使用跨页面提交 406
12.4.4 使用TempData 408
12.5 从Web Forms迁移到MVC 409
12.5.1 第1步:创建带有测试项目的空的ASP.NET MVC项目 409
12.5.2 第2步:实现结构 410
12.5.3 第3步:添加图像和式样 413
12.5.4 第4步:建立路由选择和控制器 414
12.5.5 第5步:替换复杂的服务器控件 418
12.5.6 第6步:上传文件并使用图像 420
12.6 小结 422
- 《程序逻辑及C语言编程》卢卫中,杨丽芳主编 2019
- 《全国职业院校工业机器人技术专业规划教材 工业机器人现场编程》(中国)项万明 2019
- 《编程超有趣 奇妙Python轻松学 第1辑》HelloCode人工智能国际研究组 2018
- 《我的第一套编程启蒙绘本 看事件 开始了》编程猫教研团队编绘 2019
- 《STEM教育丛书 麦昆机器人和Micro:bit图形化编程》张弛责任编辑;(中国)陈宝杰,沙靓雯 2019
- 《ROS机器人编程与SLAM算法解析指南》陶满礼 2020
- 《我的第一套编程启蒙绘本 123 序列来啦》编程猫教研团队编绘 2019
- 《高等院校计算机任务驱动教改教材 C语言编程思维 第2版》(中国)陈萌,鲍淑娣 2019
- 《我的第一套编程启蒙绘本 咦 什么在 循环》编程猫教研团队编绘 2019
- 《工业机器人离线编程与仿真》张明文,封家诚,王鑫主编 2019
- 《SQL与关系数据库理论》(美)戴特(C.J.Date) 2019
- 《魔法销售台词》(美)埃尔默·惠勒著 2019
- 《看漫画学钢琴 技巧 3》高宁译;(日)川崎美雪 2019
- 《优势谈判 15周年经典版》(美)罗杰·道森 2018
- 《社会学与人类生活 社会问题解析 第11版》(美)James M. Henslin(詹姆斯·M. 汉斯林) 2019
- 《海明威书信集:1917-1961 下》(美)海明威(Ernest Hemingway)著;潘小松译 2019
- 《迁徙 默温自选诗集 上》(美)W.S.默温著;伽禾译 2020
- 《上帝的孤独者 下 托马斯·沃尔夫短篇小说集》(美)托马斯·沃尔夫著;刘积源译 2017
- 《巴黎永远没个完》(美)海明威著 2017
- 《剑桥国际英语写作教程 段落写作》(美)吉尔·辛格尔顿(Jill Shingleton)编著 2019
- 《大学计算机实验指导及习题解答》曹成志,宋长龙 2019
- 《指向核心素养 北京十一学校名师教学设计 英语 七年级 上 配人教版》周志英总主编 2019
- 《大学生心理健康与人生发展》王琳责任编辑;(中国)肖宇 2019
- 《大学英语四级考试全真试题 标准模拟 四级》汪开虎主编 2012
- 《大学英语教学的跨文化交际视角研究与创新发展》许丽云,刘枫,尚利明著 2020
- 《北京生态环境保护》《北京环境保护丛书》编委会编著 2018
- 《复旦大学新闻学院教授学术丛书 新闻实务随想录》刘海贵 2019
- 《大学英语综合教程 1》王佃春,骆敏主编 2015
- 《大学物理简明教程 下 第2版》施卫主编 2020
- 《指向核心素养 北京十一学校名师教学设计 英语 九年级 上 配人教版》周志英总主编 2019