新書推薦:
《
怪谈百物语:不能开的门(“日本文学史上的奇迹”宫部美雪重要代表作!日本妖怪物语集大成之作,系列累销突破200万册!)
》
售價:HK$
65.0
《
罗马政治观念中的自由
》
售價:HK$
50.4
《
中国王朝内争实录:宠位厮杀
》
售價:HK$
61.6
《
凡事发生皆有利于我(这是一本读了之后会让人运气变好的书”治愈无数读者的心理自助经典)
》
售價:HK$
44.6
《
未来特工局
》
售價:HK$
55.8
《
高术莫用(十周年纪念版 逝去的武林续篇 薛颠传世之作 武学尊师李仲轩家世 凸显京津地区一支世家的百年沉浮)
》
售價:HK$
54.9
《
英国简史(刘金源教授作品)
》
售價:HK$
98.6
《
便宜货:廉价商品与美国消费社会的形成
》
售價:HK$
77.3
編輯推薦:
ASP.NET经典著作之屠龙刀
全面、深入、贴近实战,世界顶尖专家倾力打造
国内MVP担纲翻译,名著名译,相得益彰
內容簡介:
《ASP.NET
4高级程序设计第4版》是ASP.NET领域的鸿篇巨制,全面讲解了ASP.NET4的各种特性及其背后的工作原理,并给出了许多针对如何构建复杂、可扩展的网站从实践中得出的建议。书中还深入讲述了其他ASP.NET图书遗漏的高级主题,如自定义控件的创建、图像处理、加密等。此外,《ASP.NET
4高级程序设计第4版》专门提供了两章的内容来教你如何用Ajax
技术制作快速响应的页面,以及如何使用微软的ASP.NETAJAX平台。另外,还专门介绍了ASP.NET4 新增的功能,如MVC
和动态数据等。
《ASP.NET 4高级程序设计第4版》适合各层次的ASP.NET程序员阅读。
關於作者:
Matthew MacDonald 世界顶尖的微软技术专家,微软MVP。他是Inside Visual Basic、ASP
Today、Hardcore Visual Studio
.NET等著名软件开发杂志的特约作者,还写作了多部脍炙人口的编程畅销书,本书为其代表作。
Adam Freeman
现任某跨国银行CTO和COO,经验丰富的IT专家。他在很多公司担任过高级职务,著有多部Java和.NET方面的图书。
Mario
Szpuszta微软奥地利开发者和平台组架构师,有丰富的Web应用和安全软件开发和集成经验。他也是社区内非常活跃的技术专家,经常在各种顶级技术会议中发表演讲。除本书外,他还是名著Advanced
.NET Remoting的作者
目錄 :
第一部分 核心概念
第1章 ASP.NET简介 2
1.1 ASP.NET的7大要点 2
1.1.1 要点1:ASP.NET是同.NETFramework集成在一起的 2
1.1.2 要点2:ASP.NET是编译执行的,而不是解释执行的 3
1.1.3 要点3:ASP.NET支持多语言 4
1.1.4 要点4:ASP.NET运行在公共语言运行库内 6
1.1.5 要点5:ASP.NET是面向对象的 7
1.1.6 要点6:ASP.NET支持所有的浏览器 8
1.1.7 要点7:ASP.NET易于部署和配置 8
1.2 ASP.NET的演变 9
1.2.1 ASP.NET1.0和ASP.NET1.1 9
1.2.2 ASP.NET2.0 9
1.2.3 ASP.NET3.5 10
1.2.4 ASP.NET4 12
1.2.5 Silverlight 14
1.3 总结 15
第2章 Visual Studio 16
2.1 Visual Studio 16
2.1.1 网站和Web项目 17
2.1.2 创建无项目文件的网站 18
2.1.3 设计网页 21
2.2 Visual StudioIDE 26
2.2.1 解决方案资源管理器 28
2.2.2 文档窗口 29
2.2.3 工具箱 29
2.2.4 错误列表和任务列表 30
2.2.5 服务器资源管理器 31
2.3 代码编辑器 32
2.3.1 添加程序集引用 33
2.3.2 智能感知和大纲显示 35
2.3.3 Visual Studio 2010改进 37
2.4 编码模型 42
2.4.1 代码隐藏文件如何与页面连接 44
2.4.2 控件标签如何与页面变量连接 44
2.4.3 事件如何与事件处理程序连接 46
2.5 Web项目 47
2.5.1 基于项目的开发 47
2.5.2 创建Web项目 48
2.5.3 迁移旧版Visual Studio创建的网站 49
2.6 Visual Studio调试 51
2.6.1 单步调试 52
2.6.2 变量监视 54
2.6.3 高级断点 55
2.7 WebDevelopment Helper 56
2.8 总结 57
第3章 Web窗体 58
3.1 页面处理 58
3.1.1 HTML表单 59
3.1.2 动态用户界面 60
3.1.3 ASP.NET事件模型 61
3.1.4 自动回送 62
3.1.5 视图状态 63
3.1.6 XHTML兼容性 66
3.1.7 客户端控件ID 71
3.2 Web窗体处理阶段 73
3.2.1 页面框架初始化 74
3.2.2 用户代码初始化 74
3.2.3 验证 74
3.2.4 事件处理 75
3.2.5 自动数据绑定 75
3.2.6 清除 76
3.2.7 页面流示例 76
3.3 作为控件容器的页面 78
3.3.1 显示控件树 78
3.3.2 页头 82
3.3.3 动态控件的创建 82
3.4 Page类 84
3.4.1 Session、Application和Cache 84
3.4.2 Request 85
3.4.3 Response 86
3.4.4 Server 88
3.4.5 User 90
3.4.6 Trace 91
3.4.7 访问其他类中的HTTP上下文 96
3.5 总结 96
第4章 服务器控件 97
4.1 服务器控件的类型 97
4.2 HTML服务器控件 99
4.2.1 HtmlControl类 100
4.2.2 HtmlContainerControl类 100
4.2.3 HtmlInputControl类 100
4.2.4 HTML服务器控件类 101
4.2.5 设置Style特性和其他属性 102
4.2.6 通过编程创建服务器控件 103
4.2.7 处理服务器端事件 104
4.3 Web控件 107
4.3.1 WebControl基类 107
4.3.2 基本的Web控件类 108
4.3.3 单位 109
4.3.4 枚举 110
4.3.5 颜色 110
4.3.6 字体 111
4.3.7 焦点 12
4.3.8 默认按钮 113
4.3.9 可滚动面板 114
4.3.10 处理Web控件事件 114
4.4 List控件 116
4.4.1 Selectable列表控件 117
4.4.2 BulletedList控件 120
4.5 输入验证控件 121
4.5.1 验证控件 121
4.5.2 验证流程 122
4.5.3 BaseValidator类 122
4.5.4 RequiredFieldValidator控件 124
4.5.5 RangeValidator控件 124
4.5.6 CompareValidator控件 125
4.5.7 RegularExpressionValidator控件 125
4.5.8 CustomValidator控件 127
4.5.9 ValidationSummary控件 128
4.5.10 通过编程使用验证器 129
4.5.11 验证组 130
4.6 富控件 132
4.6.1 AdRotator控件 132
4.6.2 Calendar控件 134
4.7 总结 136
第5章 ASP.NET应用程序 137
5.1 剖析ASP.NET应用程序 137
5.1.1 应用程序域 137
5.1.2 应用程序生命周期 138
5.1.3 应用程序更新 139
5.1.4 应用程序目录结构 139
5.2 global.asax应用程序文件 140
5.2.1 应用程序事件 141
5.2.2 演示应用程序事件 143
5.3 ASP.NET配置 144
5.3.1 machine.config文件 144
5.3.2 web.config文件 147
5.3.3 system.web设置 150
5.3.4 system.webServer 150
5.3.5 appSettings 150
5.3.6 connectionStrings 152
5.3.7 通过编程读写配置节 152
5.3.8 网站管理工具WAT 155
5.3.9 扩展配置文件结构 156
5.3.10 加密配置节 159
5.4 .NET组件 161
5.4.1 创建组件 161
5.4.2 通过App_Code目录使用组件 162
5.4.3 通过Bin目录使用组件 163
5.5 扩展HTTP管道 165
5.5.1 HTTP处理程序 165
5.5.2 创建自定义的HTTP处理程序 167
5.5.3 配置自定义的HTTP处理程序 168
5.5.4 使用无须配置的HTTP处理程序 169
5.5.5 创建高级的HTTP处理程序 169
5.5.6 为非HTML内容创建HTTP处理程序 171
5.5.7 HTTP模块 173
5.5.8 创建自定义HTTP模块 174
5.6 总结 176
第6章 状态管理 177
6.1 ASP.NET状态管理 177
6.2 视图状态 179
6.2.1 视图状态示例 180
6.2.2 在视图状态中保存对象 181
6.2.3 视图状态评估 183
6.2.4 有选择地禁用视图状态 184
6.2.5 视图状态安全 185
6.3 在页面间传送信息 186
6.3.1 查询字符串 187
6.3.2 跨页回发 188
6.4 cookie 193
6.5 会话状态 194
6.5.1 会话架构 194
6.5.2 使用会话状态 196
6.5.3 配置会话状态 197
6.5.4 会话状态安全 202
6.6 应用程序状态 203
6.7 总结 206
第二部分 数据访问
第7章 基础 208
7.1 ADO.NET架构 209
7.1.1 ADO.NET数据提供程序 209
7.1.2 ADO.NET的标准化 210
7.1.3 基本ADO.NET类 211
7.2 Connection类 212
7.2.1 连接字符串 212
7.2.2 测试连接 214
7.2.3 连接池 215
7.3 Command类和DataReader类 217
7.3.1 Command基础 217
7.3.2 DataReader类 218
7.3.3 ExecuteReader方法和DataReader 218
7.3.4 ExecuteScalar方法 223
7.3.5 ExecuteNonQuery方法 223
7.3.6 SQL注入攻击 224
7.3.7 使用参数化命令 226
7.3.8 调用存储过程 227
7.4 事务 229
7.4.1 事务和ASP.NET应用程序 230
7.4.2 隔离级别 234
7.4.3 保存点 235
7.5 提供程序无关的代码 235
7.5.1 创建工厂 236
7.5.2 用工厂创建对象 237
7.5.3 使用提供程序无关的代码的查询 237
7.6 总结 239
第8章 数据组件和DataSet 240
8.1 构建数据访问组件 240
8.1.1 数据包 241
8.1.2 存储过程 242
8.1.3 数据应用类 243
8.1.4 测试数据库组件 248
8.2 非连接的数据 249
8.2.1 Web应用程序和DataSet 250
8.2.2 XML集成 251
8.3 DataSet类 251
8.4 DataAdapter类 252
8.4.1 填充DataSet 253
8.4.2 使用多个表和关系 254
8.4.3 查找特定行 257
8.4.4 在数据访问类里使用DataSet 257
8.4.5 数据绑定 258
8.5 DataView类 259
8.5.1 使用DataView排序 259
8.5.2 使用DataView过滤 261
8.5.3 使用关系的高级过滤 262
8.5.4 计算列 263
8.6 总结 264
第9章 数据绑定 265
9.1 基本的数据绑定 265
9.1.1 单值绑定 266
9.1.2 其他类型的表达式 268
9.1.3 重复值绑定 271
9.2 数据源控件 277
9.3 SqlDataSource 278
9.3.1 选择记录 279
9.3.2 参数化命令 281
9.3.3 错误处理 285
9.3.4 更新记录 286
9.3.5 删除记录 289
9.3.6 插入记录 289
9.3.7 SqlDataSource的不足 290
9.4 ObjectDataSource 291
9.4.1 选择记录 291
9.4.2 更新记录 295
9.4.3 使用数据对象执行更新 296
9.5 数据源控件的限制 299
9.5.1 问题 299
9.5.2 添加其他项 300
9.5.3 使用SqlDataSource处理其他选项 301
9.5.4 使用ObjectDataSource处理其他选项 301
9.6 总结 302
第10章 富数据控件 303
10.1 GridView 303
10.2 格式化GridView 307
10.2.1 格式化字段 307
10.2.2 样式 308
10.2.3 格式化特定值 311
10.3 GridView行选择 313
10.3.1 使用选择来创建主-从表单 314
10.3.2 SelectedIndexChanged事件 315
10.3.3 将数据字段用作选择按钮 315
10.4 对GridView排序 316
10.4.1 使用SqlDataSource排序 317
10.4.2 使用ObjectDataSource排序 318
10.4.3 排序和选择 319
10.4.4 高级排序 319
10.5 GridView分页 320
10.5.1 自动分页 320
10.5.2 分页和选择 322
10.5.3 ObjectDataSource的自定义分页 322
10.5.4 定制分页栏 324
10.6 GridView模板 325
10.6.1 使用多个模板 327
10.6.2 在Visual Studio中编辑模板 328
10.6.3 绑定到方法 328
10.6.4 处理模板中的事件 330
10.6.5 使用模板编辑 330
10.6.6 模板中的客户端ID 335
10.7 ListView 336
10.7.1 分组 338
10.7.2 分页 340
10.8 DetailsView和FormView 341
10.8.1 DetailsView 341
10.8.2 FormView 344
10.9 高级网格 345
10.9.1 GridView中的汇总 345
10.9.2 单个表中的父子视图 347
10.9.3 使用查找表编辑字段 349
10.9.4 处理来自数据库的图片 351
10.9.5 探测并发冲突 355
10.10 总结 359
第11章 缓存和异步页面 360
11.1 理解ASP.NET缓存 360
11.2 输出缓存 361
11.2.1 声明性的输出缓存 361
11.2.2 缓存和查询字符串 362
11.2.3 使用特定查询字符串参数的缓存 363
11.2.4 自定义缓存控制 364
11.2.5 使用HttpCachePolicy类进行缓存 365
11.2.6 缓存后替换和部分页缓存 365
11.2.7 缓存用户配置 367
11.2.8 缓存配置 368
11.2.9 输出缓存扩展 369
11.3 数据缓存 373
11.3.1 向缓存添加项目 373
11.3.2 简单的缓存测试 375
11.3.3 缓存优先级 376
11.3.4 使用数据源控件的缓存 376
11.4 缓存依赖 379
11.4.1 文件和缓存项目依赖 379
11.4.2 聚合依赖 380
11.4.3 移除项目回调 381
11.4.4 理解SQL缓存通知 383
11.4.5 缓存通知的工作方式 384
11.4.6 启用通知 384
11.4.7 创建缓存依赖 385
11.5 自定义缓存依赖 386
11.5.1 基本的自定义缓存依赖 386
11.5.2 使用消息队列的自定义缓存依赖 387
11.6 异步页面 389
11.6.1 创建异步页面 390
11.6.2 在异步页面中查询数据 392
11.6.3 错误处理 393
11.6.4 在异步任务中使用缓存 395
11.6.5 多异步任务和超时 397
11.7 总结 399
第12章 文件和流 400
12.1 使用文件系统 400
12.1.1 Directory类和File类 400
12.1.2 DirectoryInfo类和FileInfo类 402
12.1.3 DriveInfo类 404
12.1.4 使用Attributes 405
12.1.5 使用通配符过滤文件 407
12.1.6 获取文件的版本信息 407
12.1.7 Path类 408
12.1.8 文件浏览器 410
12.2 使用流读写文件 414
12.2.1 文本文件 415
12.2.2 二进制文件 416
12.2.3 上传文件 417
12.2.4 使文件对多用户安全 419
12.2.5 压缩 423
12.3 序列化 423
12.4 总结 426
第13章 LINQ 427
13.1 LINQ基础 427
13.1.1 延迟执行 429
13.1.2 LINQ是如何工作的 429
13.1.3 LINQ表达式 430
13.1.4 揭秘LINQ表达式 436
13.2 LINQ to DataSet 439
13.2.1 强类型的DataSet 441
13.2.2 空值 441
13.3 LINQ to Entities 441
13.3.1 生成数据模型 442
13.3.2 数据模型类 442
13.3.3 实体关系 444
13.3.4 查询存储过程 446
13.3.5 LINQ to Entities查询揭秘 447
13.4 数据库操作 452
13.4.1 插入 452
13.4.2 更新 454
13.4.3 删除 454
13.4.4 管理并发 455
13.4.5 处理并发冲突 455
13.5 EntityDataSource控件 459
13.5.1 显示数据 459
13.5.2 获取关联数据 463
13.5.3 编辑数据 464
13.5.4 验证 464
13.6 使用QueryExtender控件 465
13.6.1 使用SearchExperssion 466
13.6.2 使用RangeExpression 467
13.6.3 使用PropertyExpression 467
13.6.4 使用MethodExpression 468
13.7 总结 468
第14章 XML 470
14.1 什么时候使用XML 470
14.2 XML简介 471
14.2.1 XML的优点 472
14.2.2 格式良好的XML 472
14.2.3 XML命名空间 473
14.2.4 XML架构 474
14.3 基于流的XML处理 475
14.3.1 写XML文件 476
14.3.2 读取XML文件 478
14.4 内存中的XML处理 481
14.4.1 XmlDocument 482
14.4.2 XPathNavigator 485
14.4.3 XDocument 486
14.5 搜索XML内容 491
14.5.1 搜索XmlDocument 491
14.5.2 使用XPath搜索XmlDocument 493
14.5.3 使用LINQ搜索XDocument 494
14.6 验证XML内容 496
14.6.1 基本架构 496
14.6.2 验证XmlDocument 497
14.6.3 使用XDocument进行验证 498
14.7 转换XML内容 499
14.7.1 基本的样式表 499
14.7.2 使用XslCompiledTransform 500
14.7.3 使用Xml控件 501
14.7.4 使用LINQ to XML转换XML 502
14.8 XML数据绑定 504
14.8.1 非层次化绑定 504
14.8.2 使用XPath 506
14.8.3 嵌套的网格 508
14.8.4 使用TreeView的层次化绑定 509
14.8.5 使用XSLT 511
14.8.6 绑定到来自其他源的XML内容 512
14.8.7 通过XmlDataSource更新XML 513
14.9 XML和ADO.NET数据集 513
14.9.1 把DataSet转换为XML 514
14.9.2 把DataSet作为XML访问 515
14.10 总结 517
第三部分 构建ASP.NET网站
第15章 用户控件 520
15.1 用户控件基础 520
15.1.1 创建简单的用户控件 521
15.1.2 把页面转换成用户控件 522
15.2 为用户控件添加代码 523
15.2.1 处理事件 523
15.2.2 添加属性 524
15.2.3 使用自定义对象 525
15.2.4 添加事件 528
15.2.5 公开内部Web控件 530
15.3 动态加载用户控件 531
15.4 局部页面缓存 534
15.4.1 VaryByControl 535
15.4.2 共享缓存控件 536
15.5 总结 537
第16章 主题和母版页 538
16.1 层叠样式表 538
16.1.1 创建样式表 538
16.1.2 应用样式表规则 540
16.2 主题 542
16.2.1 主题文件夹和外观 543
16.2.2 应用简单主题 544
16.2.3 处理主题冲突 545
16.2.4 为同一控件创建多个外观 546
16.2.5 含有模板和图片的外观 547
16.2.6 在主题里使用CSS 549
16.2.7 通过配置文件来应用主题 549
16.2.8 动态应用主题 550
16.3 标准化网站布局 551
16.4 母版页基础 552
16.4.1 简单的母版页 552
16.4.2 简单的内容页 554
16.4.3 默认内容 556
16.4.4 具有表格和CSS布局的母版页 556
16.4.5 母版页和相对路径 559
16.4.6 通过配置文件应用母版页 559
16.5 高级母版页 560
16.5.1 和母版页类交互 560
16.5.2 动态设置母版页 561
16.5.3 嵌套母版页 561
16.6 总结 563
第17章 网站导航 564
17.1 多视图页面 564
17.1.1 MultiView控件 565
17.1.2 Wizard控件 568
17.2 站点地图 575
17.2.1 定义站点地图 576
17.2.2 绑定站点地图 577
17.2.3 导航路径 578
17.2.4 显示站点地图的一部分 580
17.2.5 站点地图对象 583
17.2.6 加入自定义站点地图信息 584
17.2.7 创建自定义的SiteMapProvider 584
17.2.8 安全调整 590
17.3 URL映射和路由 592
17.3.1 URL映射 592
17.3.2 URL路由 593
17.4 TreeView控件 594
17.4.1 TreeNode 595
17.4.2 按需填充节点 597
17.4.3 TreeView样式 598
17.5 Menu控件 601
17.5.1 Menu样式 603
17.5.2 Menu模板 605
17.6 总结 606
第18章 网站部署 607
18.1 安装和配置IIS 607
18.1.1 安装IIS 7 607
18.1.2 管理IIS 7 608
18.2 部署网站 610
18.2.1 通过复制文件进行部署 611
18.2.2 使用Web部署 614
18.2.3 通过FTP部署 621
18.3 管理网站 626
18.3.1 创建新站点 626
18.3.2 创建虚拟目录 627
18.3.3 使用VirtualPathProvider 628
18.3.4 使用应用程序池 631
18.3.5 使用应用程序预热 633
18.4 扩展集成管道 634
18.4.1 创建处理程序 634
18.4.2 部署处理程序 635
18.4.3 配置处理程序 635
18.4.4 测试处理程序 636
18.5 总结 636
第四部分 安全
第19章 ASP.NET安全模型 638
19.1 为何创建安全软件 638
19.1.1 理解潜在的威胁 638
19.1.2 安全编程原则 639
19.1.3 理解Gatekeeper 640
19.2 理解安全级别 641
19.2.1 验证 641
19.2.2 授权 642
19.2.3 机密性和完整性 643
19.2.4 互相协作 643
19.3 理解SSL 644
19.3.1 理解证书 645
19.3.2 理解SSL 645
19.3.3 在IIS 7.x中配置SSL 646
19.4 总结 649
第20章 表单验证 650
20.1 表单验证介绍 650
20.1.1 为什么使用表单验证 650
20.1.2 为什么不使用表单验证 652
20.1.3 为什么不自己实现cookie验证 653
20.1.4 表单验证类 654
20.2 实现表单验证 655
20.2.1 配置表单验证 655
20.2.2 禁止匿名用户访问 657
20.2.3 创建自定义登录页面 658
20.2.4 自定义凭证存储 662
20.2.5 表单验证中的持久化cookie 663
20.3 IIS 7.x和表单验证 665
20.4 总结 669
第21章 成员资格 670
21.1 介绍ASP.NET的成员资格API 670
21.2 使用成员资格API 672
21.2.1 配置表单验证 673
21.2.2 创建数据存储 674
21.2.3 配置连接字符串和成员资格提供程序 679
21.2.4 创建并验证用户 681
21.3 使用安全控件 683
21.3.1 Login控件 684
21.3.2 LoginStatus控件 693
21.3.3 LoginView控件 693
21.3.4 PasswordRecovery控件 694
21.3.5 ChangePassword控件 697
21.3.6 CreateUserWizard控件 698
21.4 在IIS 7.x里配置成员资格 702
21.4.1 配置提供程序和用户 702
21.4.2 在其他应用程序里使用成员资格API 703
21.5 使用Membership类 705
21.5.1 从存储中获得用户 706
21.5.2 更新存储中的用户 708
21.5.3 创建和删除用户 708
21.5.4 检验用户 709
21.6 总结 709
第22章 Windows验证 710
22.1 介绍Windows验证 710
22.1.1 为什么使用Windows验证 710
22.1.2 为什么不使用Windows验证 711
22.1.3 Windows验证机制 712
22.2 实现Windows验证 717
22.2.1 配置IIS 7.x 717
22.2.2 配置ASP.NET 718
22.2.3 IIS 7.x管道 719
22.2.4 禁止匿名用户访问 722
22.2.5 访问Windows用户信息 723
22.3 身份模拟 727
22.3.1 Windows中的身份模拟和委托 728
22.3.2 经过配置的身份模拟 729
22.3.3 可编程的身份模拟 729
22.4 总结 732
第23章 授权和角色 733
23.1 URL 授权 733
23.2 文件授权 738
23.3 在代码中检查授权 739
23.3.1 使用IsInRole方法 739
23.3.2 使用PrincipalPermission类 740
23.4 为基于角色的授权使用角色API 742
23.4.1 和角色一起使用LoginView控件 747
23.4.2 通过编程访问角色 748
23.4.3 在Windows验证中使用角色API 750
23.5 IIS 7.x里的授权和角色 752
23.5.1 在IIS 7.x里使用ASP.NET角色授权 754
23.5.2 在IIS 7.x中管理ASP.NET角色 756
23.6 总结 757
第24章 用户配置 758
24.1 理解用户配置 758
24.1.1 用户配置的性能 758
24.1.2 用户配置如何存储数据 759
24.1.3 用户配置和验证 760
24.1.4 用户配置与自定义的数据组件 760
24.2 使用SqlProfileProvider 761
24.2.1 创建用户配置表 761
24.2.2 配置提供程序 763
24.2.3 定义用户配置属性 764
24.2.4 使用用户配置属性 764
24.2.5 用户配置序列化 766
24.2.6 用户配置组 767
24.2.7 用户配置和自定义的数据类型 768
24.2.8 用户配置API 771
24.2.9 匿名用户配置 773
24.3 自定义的用户配置提供程序 775
24.3.1 自定义的用户配置提供程序类 775
24.3.2 设计FactoredProfileProvider 777
24.3.3 通过编码实现FactoredProfileProvider 778
24.3.4 测试FactoredProfileProvider 781
24.4 总结 784
第25章 加密 785
25.1 加密数据:机密性问题 785
25.2 .NET加密命名空间 786
25.3 理解.NET加密类 789
25.3.1 对称加密算法 790
25.3.2 非对称加密 791
25.3.3 抽象加密类 791
25.3.4 ICryptoTransform接口 792
25.3.5 CryptoStream类 793
25.4 加密敏感数据 793
25.4.1 管理秘密信息 794
25.4.2 使用对称算法 795
25.4.3 使用非对称算法 799
25.4.4 加密数据库中的敏感数据 801
25.5 加密查询字符串 806
25.5.1 包装查询字符串 806
25.5.2 创建一个测试页面 808
25.6 总结 810
第26章 自定义成员资格提供程序 811
26.1 自定义提供程序的架构 811
26.2 创建自定义提供程序的基本步骤 812
26.2.1 自定义提供程序的总体设计 813
26.2.2 设计并实现自定义存储 813
26.2.3 实现提供程序类 820
26.2.4 使用自定义提供程序类 837
26.3 总结 840
第五部分 高级用户界面
第27章 自定义服务器控件 842
27.1 自定义服务器控件入门 842
27.1.1 创建简单的自定义控件 842
27.1.2 使用自定义控件 844
27.1.3 工具箱中的自定义控件 845
27.1.4 创建支持样式属性的Web控件 847
27.1.5 呈现过程 850
27.2 处理不同的浏览器 852
27.2.1 HtmlTextWriter 852
27.2.2 浏览器检测 852
27.2.3 浏览器属性 853
27.2.4 覆盖浏览器类型侦测 854
27.2.5 自适应呈现 855
27.3 控件状态和事件 856
27.3.1 视图状态 856
27.3.2 控件状态 858
27.3.3 回传数据和change事件 860
27.3.4 触发回传 862
27.4 扩展现有的Web控件 863
27.4.1 组合控件 864
27.4.2 派生控件 866
27.5 总结 869
第28章 图形、GDI+和图表 870
28.1 ImageMap控件 870
28.1.1 创建热点 871
28.1.2 处理热点单击 872
28.1.3 自定义热点 873
28.2 使用GDI+画图 875
28.2.1 简单绘制 875
28.2.2 图像格式和质量 877
28.2.3 Graphics类 878
28.2.4 使用GraphicsPath 880
28.2.5 画笔 881
28.2.6 画刷 883
28.3 在网页上嵌入动态图形 885
28.3.1 使用PNG格式 885
28.3.2 传递信息给动态图像 886
28.3.3 使用GDI+的自定义控件 888
28.4 使用Chart控件 892
28.4.1 创建基本的图表 892
28.4.2 用数据填充图表 897
28.5 总结 904
第29章 JavaScript和Ajax技术 905
29.1 JavaScript本质 905
29.1.1 HTML DOM 906
29.1.2 客户端事件 906
29.1.3 脚本块 908
29.1.4 操纵HTML元素 910
29.1.5 调试JavaScript 910
29.2 基本的JavaScript示例 912
29.2.1 创建JavaScript页面处理器 912
29.2.2 使用JavaScript异步下载图片 915
29.2.3 呈现脚本块 919
29.3 脚本注入攻击 920
29.3.1 请求验证 921
29.3.2 禁用请求验证 922
29.3.3 扩展请求验证 923
29.4 带有JavaScript的自定义控件 925
29.4.1 弹出窗口 925
29.4.2 滚动按钮 928
29.5 框架 931
29.5.1 框架导航 932
29.5.2 内联框架 933
29.6 理解Ajax 934
29.6.1 XMLHttpRequest对象 935
29.6.2 Ajax示例 936
29.7 在客户端回调中使用Ajax 939
29.7.1 创建客户端回调 940
29.7.2 深入了解客户端回调 945
29.7.3 自定义控件里的客户端回调 946
29.8 总结 949
第30章 ASP.NETAJAX 950
30.1 介绍ASP.NETAJAX 950
30.1.1 客户端的ASP.NETAJAX:脚本库 951
30.1.2 服务器端的ASP.NETAJAX:ScriptManager 952
30.2 服务器回调 952
30.2.1 ASP.NETAJAX中的Web服务 953
30.2.2 在页面里放置Web方法 959
30.2.3 ASP.NETAJAX应用程序服务 960
30.3 ASP.NETAJAX服务器控件 966
30.3.1 使用UpdatePanel的局部呈现 966
30.3.2 使用Timer的定时刷新 973
30.3.3 使用UpdateProgress的耗时更新 974
30.3.4 管理浏览器历史 976
30.4 深入客户端库 979
30.4.1 理解客户端模型 980
30.4.2 JavaScript的面向对象编程 981
30.4.3 网页框架 987
30.5 控件扩展器 991
30.5.1 安装ASP.NETAJAX控件工具包 992
30.5.2 AutoCompleteExtender 993
30.5.3 ASP.NETAJAX控件工具包 996
30.6 总结 999
第31章 使用Web部件页面的门户网站 1000
31.1 典型门户页面 1000
31.2 基本Web部件页面 1002
31.2.1 创建页面设计 1002
31.2.2 WebPartManager和WebPartZone 1003
31.2.3 向页面添加Web部件 1004
31.2.4 定制页面 1008
31.3 创建Web部件 1010
31.3.1 简单的Web部件任务 1010
31.3.2 开发高级Web部件 1017
31.3.3 Web部件编辑器 1024
31.3.4 连接Web部件 1029
31.3.5 自定义动词和Web部件 1036
31.3.6 用户控件和高级Web部件 1037
31.3.7 动态上传Web部件 1040
31.3.8 对Web部件的授权 1044
31.3.9 个性化的最后任务 1045
31.4 总结 1046
第32章 MVC 1047
32.1 MVC和Web表单的选择 1047
32.2 创建基本的MVC应用程序 1047
32.2.1 创建模型 1048
32.2.2 创建控制器 1049
32.2.3 创建Index视图 1050
32.2.4 测试未完成的应用程序 1050
32.2.5 完成控制器和视图 1051
32.2.6 修改Site.Master文件 1053
32.3 扩展基础的MVC应用程序 1053
32.3.1 配置路由 1054
32.3.2 增加错误处理 1055
32.3.3 增加验证 1056
32.3.4 增强数据存储访问 1057
32.3.5 增加对外键约束的支持 1059
32.4 自定义视图 1059
32.4.1 修改视图 1060
32.4.2 增加视图数据 1062
32.5 强化模型 1063
32.6 验证数据 1066
32.6.1 执行基本的验证 1067
32.6.2 增加验证标注 1068
32.7 使用动作结果 1071
32.7.1 返回JSON数据 1072
32.7.2 调用其他控制器方法 1072
32.8 总结 1074
第33章 动态数据 1075
33.1 创建动态数据应用程序 1075
33.1.1 创建动态数据网站 1075
33.1.2 检验动态数据网站 1077
33.2 深入理解动态数据项目 1080
33.3 自定义动态数据网站 1080
33.3.1 使用模板进行自定义 1081
33.3.2 使用路由进行自定义 1087
33.3.3 使用元数据进行自定义 1094
33.3.4 自定义验证 1099
33.4 总结 1103
第34章 Silverlight 1104
34.1 理解Silverlight 1105
34.1.1 Silverlight与Flash对比 1106
34.1.2 Silverlight系统需求 1107
34.2 创建Silverlight解决方案 1108
34.2. 1 Silverlight编译 1109
34.2.2 入口页面 1110
34.3 创建Silverlight项目 1114
34.3.1 设计Silverlight页面 1114
34.3.2 理解XAML 1117
34.3.3 设置属性 1118
34.3.4 XAML 代码隐藏 1119
34.3.5 处理事件 1120
34.3.6 了解Silverlight类库 1121
34.4 布局 1122
34.4.1 Canvas 1123
34.4.2 网格 1127
34.5 动画 1131
34.5.1 动画基础知识 1132
34.5.2 定义动画 1132
34.5.3 StoryBoard类 1133
34.5.4 交互式动画实例 1135
34.5.5 变换 1138
34.6 Silverlight使用Web服务 1141
34.6.1 创建Web服务 1141
34.6.2 添加Web引用 1142
34.6.3 调用Web服务 1143
34.6.4 配置Web服务URL 1144
34.6.5 跨域Web服务调用 1144
34.7 总结 1146
內容試閱 :
NET最初出现时,它引入了不少新技术。当时它带来了编写Web应用程序的全新方法(ASP.NET)、连接数据库(ADO.NET)的全新方式、全新的类型安全语言(C#和VB.NET)以及托管的运行时(CLR)。这些新技术中特别值得注意的是Windows
Forms,它是构建Windows应用程序的类库。
毫无疑问,你已经知道ASP.NET是微软创建服务器端Web应用程序的新一代技术。它构建在Microsoft .NET
Framework之上,.NET
Framework聚合了紧密相关的多种新技术,彻底改变了从数据库访问到分布式应用程序的一切。而ASP.NET是.NET
Framework中最重要的部件之一,通过它我们可以开发出高性能的Web应用程序。
开发人员很容易对ASP.NET技术感兴趣。毫不夸张地说,ASP.NET是针对Web开发的最为完整的技术平台。ASP.NET技术大大超过了它的前辈ASP——ASP是一个粗制滥造的快捷工具,用于将动态内容插入到普通Web页面。相比而言,ASP.NET是一个非常成熟的平台,我们可以用它来开发广泛适用且高效的Web应用程序。
本书将讲述掌握ASP.NET
4所需的相关知识。如果你曾使用前一个版本的ASP.NET编过程序,那么可以将重点放在学习ASP.NET的新特性上,例如第32章的ASP.NET
MVC、第33章的ASP.NET动态数据(ASP.NET Dynamic
Data)和第34章的Silverlight。如果你从未接触过ASP.NET技术,会发现本书是一本很好的指南,将引导你逐步学习所有基础知识和隐藏在ASP.NET技术背后的工作原理。阅读本书的唯一前提是,具备良好的C#语言基础并了解.NET的基本知识。如果你用过其他语言,比如Java或者C++,但是没有接触过C#,先看介绍.NET基础知识较多的其他图书会更好一些,比如Andrew
Troelsen所著的《C#与.NET 4高级程序设计(第5版)》 。
本书内容
下面是本书的内容提要。
第一部分地第1章简要介绍了整个ASP.NET平台和.NET Framework,并大致说明了ASP.NET
4所做的改动。第2章详细介绍了开发利器Visual Studio
2008的使用方法。第3章至第6章讲解了ASP.NET基础结构的重要知识,比如Web页面模型、应用程序配置以及状态管理。在学习这些核心概念的时候,还可以了解ASP.NET处理请求和管理Web应用程序生命周期的一些底层知识。该部分还讲解了如何扩展ASP.NET架构。
第二部分 这部分解决所有软件开发的一个核心问题——访问及操作数据。第7章和第8章介绍ADO.NET应用于应用程序时的基本原理以及如何设计数据访问组件。第9章和第10章介绍ASP.NET的一整套数据绑定控件,你可以用来格式化并展现数据,而不再需要编写页面代码。第11章介绍如何通过高级缓存策略来获得更高的程序性能。最后,第12章至第14章从ADO.NET转到讲解如何使用文件、LINQ和XML。
第三部分地这部分将介绍管理大量Web页面的重要技术和特性。第15章介绍如何使用用户控件技术来重用用户界面。第16章会涉及主题(自动控制控件样式)和母版页(可供多个页面重用的布局模板)。第17章展示了如何使用ASP.NET的导航模型让访问者从一个页面转到另一个页面。最后,第18章讲述部署技术和IIS
Web服务器软件。
第四部分地这部分让你了解ASP.NET丰富的安全特性。第19章简要介绍安全概念,第20章讲解了表单验证,第21章讲解新的成员资格API。第22章介绍Windows验证,第23章介绍如何通过复杂的授权规则来约束已经验证的用户以及如何使用基于角色的安全特性。第24章介绍用户配置特性,这是一个用来存储用户特定信息的预先构建的解决方案。第25章介绍如何保护存储在数据库内的数据以及在URL中发送的加密信息。最后,第26章展示了如何通过设计一个自定义的成员资格提供程序来插入ASP.NET安全模型。
第五部分地这部分展示了用来扩展Web页面的高级技术。第27章介绍自定义控件。第28章介绍手工控制图片的GDI+技术。第29章和第30章介绍如何在ASP.NET
Web页面里使用JavaScript和Ajax技术以便让Web页面变得更加动态(通过加入文本自动完成和拖放的效果)且更具响应性(通过响应客户端事件并无缝地刷新Web页面)。第31章展示了用于构建Web门户的ASP.NET的Web部件的功能。
第六部分地在这一部分中,我们将学习现代Web开发中最精彩的创新。在第32章中,我们将要探索ASP.NET
MVC,它可以代替传统的Web表单模型,让开发人员能够完全控制HTML的呈现以及URL的结构。在第33章中,我们将学习ASP.NET动态数据,它是快速创建涉及查看和编辑数据库信息的应用程序的完美解决方案。最后,第34章将深入介绍Silverlight,它是微软创建的浏览器插件,可以给各种浏览器和操作系统上的普通Web页面带来丰富的图形、动画、音频和视频。
读者对象
本书针对的是有一定服务器端Web开发知识的专业开发者。本书并没有完整描述.NET
Framework的每一个细节,实际上,那样的一本书可能会有本书的两倍厚。本书为专业开发者提供精练的ASP.NET技术介绍,而这类读者基本上都不想去重复最基本的概念。在阅读本书的过程中,你要关注的是需要用来构建专业Web应用程序的.NET
Framework技术,包括数据访问和XML。使用这些功能,你就可以使用当前最好的工具来构建下一代网站了。
本书还极其实用。你不仅可以学习功能,还可以学到实用技术,从而让你的网站达到一个更高的层次。后面的章节专门介绍了很多高级功能,比如自定义控件、动态图片、高级安全、高性能数据访问等。所有这些是你构建专业Web应用程序所必需的东西。
为了最大限度地利用本书,你最好熟悉C#语法以及面向对象的概念。你不一定非要用过老版本的ASP.NET,因为本书介绍了所有相关的基础知识。如果你很熟悉Java或者C++但没用过.NET,需要考虑同时阅读一些介绍.NET的图书,比如Andrew
Troelsen的《C#与.NET 4高级程序设计(第5版)》(人民邮电出版社,2011)。
学习本书的硬件和软件环境
你需要一个安装有Visual Studio
2010的电脑来开发和测试Web应用程序。虽然从理论上说,你可以手写代码,但这是极其乏味的,并且极易出错,所以在专业环境下从来不用这种方法。此外,如果要承载ASP.NET网站,需要使用基于服务器的Windows版本,如Windows
Server 2003或Windows Server 2008。还需要安装IIS(Internet Information
Services,Internet信息服务),它是Windows操作系统的一个组件,将在第18章中介绍。
本书包含了许多示例,这些示例都使用SQL Server自带的样例数据库来演示数据存取、安全技术等功能。你可以使用任何版本的SQL
Server来演示这些例子,比如SQL Server Express版本,它是与Visual
Studio的某些版本一起包含在内的(并且可以在http:www.microsoft.comexpressdatabase上免费下载)。如果你使用其他关系数据库引擎,也可以使用相同的概念,但需要修改示例代码。
相关资源
我们非常重视读者的反馈,也希望能了解你对本书的想法——哪些是你喜欢的地方,哪些是你不喜欢的地方,还有你希望我们下次改进的地方。你可以发送建议到feedback@apress.com。请务必在邮件中说清本书的书名。
示例代码
如果打算下载与本书配套的示例代码,可以访问Apress的网站http:www.apress.com,选择本书书名就可以下载ZIP格式的示例代码文件了。在使用这些代码之前,需要使用WinZip等工具解压缩下载文件。代码是按章顺序排列的,在使用代码之前,请阅读readme.txt文件来了解相关注意事项。
附送章节
在Apress网站上还有一些可下载的PDF格式的其他章节。这些章节由于篇幅所限未包括在书里,而且对于ASP.NET
Web开发也不是特别重要,如下所示。
?Bonus Chapter
1。这一章介绍如何在ASP.NET网站里使用资源和本地化。如果需要开发用多种语言查看的网站,则本章内容十分重要。
?Bonus Chapter 2。这一章介绍如何为自定义控件添加设计时支持,添加后它们在Visual
Studio环境里的行为看起来会很棒,它们会管理自身属性的序列化,并能够提供高级的设计器功能,如智能标签。
注解这些附送章节完全引用自本书的前一个版本。这些章节的信息对ASP.NET
4依然适用,因为这些特性并没有发生任何变化。
勘误表
我们尽可能保证文字及代码没有错误。但是,人无完人,金无足赤,错误和疏漏在所难免。如果你在本书中发现了错误,比如拼写错误或者代码错误,我们将非常高兴得到你的反馈。你提交的勘误将使其他读者受益,同时也可以帮助我们提高出版质量。请将发现的错误发送到support@apress.com,这些错误将被核对并发布到勘误表页面或者在本书的下一版本中修正。你可以从本书的网页上查看勘误表。