构建高性能可扩展ASP.NET网站

构建高性能可扩展ASP.NET网站 pdf epub mobi txt 电子书 下载 2026

出版者:人民邮电出版社
作者:Richard Kiessig
出品人:
页数:384
译者:余昭辉
出版时间:2011-3
价格:65.00元
装帧:平装
isbn号码:9787115248336
丛书系列:图灵程序设计丛书·微软技术系列
图书标签:
  • asp.net
  • 高性能
  • 编程
  • 计算机
  • web开发
  • .NET
  • 软件开发
  • 程序设计
  • ASP
  • NET
  • 高性能
  • 可扩展性
  • Web开发
  • 架构设计
  • 服务器端
  • C#
  • NET
  • 网站优化
  • 代码质量
  • 最佳实践
想要找书就要到 小哈图书下载中心
立刻按 ctrl+D收藏本页
你会得到大惊喜!!

具体描述

本书专门讲解如何利用ASP.NET和SQL Server开发出高性能、高扩展性的网站,并结合具体的问题给出切实有效的解决方案。除了给出构建高性能网站的技巧,本书还针对应用涉及的所有层面(包括客户端、缓存、IIS 7、ASP.NET、线程、会话状态、SQL Server、分析服务、基础架构和运维)提供了大量建议和代码示例。

通过学习本书,你将学会如何处理以下问题。

 如何应用关键原则构建出高性能、高扩展性的网站。

 如何使用高性能技巧实现多方面提速。不仅加快Web页面显示速度,还要加快更改、修复、部署速度。

 如何找出性能瓶颈(比如会话状态)以及如何避免这些瓶颈。

 如何将书中技巧应用到具体实践,包括浏览器、网络缓存、后端操作、硬件架构  以及软件部署过程。

作者简介

Richard Kiessig 有30多年的软件设计和开发经验。他目前是一名独立软件顾问,专注于使用ASP.NET和SQL Server设计和构建大型网站。他给MySpace、Shop.com、微软等公司做过咨询。此前他在微软工作了四年,一开始做MSN的架构师并负责开发工作,后来在微软技术中心(MTC)工作。

目录信息

第1章 原则和方法 1
1.1 性能和可扩展性的差异 2
1.2 为什么需要高性能和高可扩展性 2
1.2.1 优化 3
1.2.2 过程 3
1.2.3 体验 4
1.3 完整的页面处理过程 4
1.4 原则概述 6
1.4.1 性能原则 6
1.4.2 次要技术 7
1.5 本书使用的环境和工具 8
1.5.1 软件工具和版本 8
1.5.2 术语 9
1.5.3 排版约定 9
1.5.4 作者网站 9
1.6 小结 10
第2章 客户端性能 11
2.1 浏览器页面处理 12
2.1.1 网络连接和初始HTTP请求 12
2.1.2 页面解析和新的资源请求 13
2.1.3 页面资源的顺序以及重新排序 14
2.2 浏览器缓存 15
2.3 网络优化 16
2.4 脚本包含文件的处理 18
2.4.1 通过在脚本之前排队资源请求提高并行化 18
2.4.2 减少脚本文件的数量 19
2.4.3 在页面剩余时间里请求对象 21
2.4.4 脚本延迟 22
2.4.5 针对脚本的服务器端方法 22
2.5 少下载 22
2.5.1 减少每个页面中资源的数量 22
2.5.2 降低HTML、CSS和JavaScript的大小 24
2.5.3 最大化压缩 25
2.5.4 图片优化 25
2.5.5 网站图标文件 29
2.5.6 HTML、CSS和JavaScript的一般优化 29
2.6 使用JavaScript限定页面请求 32
2.6.1 提交按钮 33
2.6.2 链接 33
2.7 使用JavaScript降低HTML大小 34
2.7.1 生成重复的HTML 34
2.7.2 为标签添加重复文本 35
2.8 减少上传 36
2.9 CSS优化 38
2.10 图片精灵和集群 41
2.11 利用DHTML 43
2.12 使用Ajax 43
2.13 使用Silverlight 45
2.13.1 创建HTML控件 46
2.13.2 在JavaScript中调用Silverlight内代码 48
2.13.3 使用Silverlight改进性能的其他方式 49
2.14 提高呈现速度 50
2.15 预缓存 51
2.15.1 预缓存图片 51
2.15.2 预缓存CSS和JavaScript 52
2.16 使用CSS实现无表格的布局 53
2.17 优化JavaScript的性能 56
2.18 小结 57
第3章 缓存 59
3.1 在所有层中缓存 59
3.2 浏览器缓存 60
3.2.1 缓存静态内容 61
3.2.2 缓存动态内容 63
3.3 ViewState 65
3.4 Cookie 71
3.4.1 设置会话Cookie 71
3.4.2 单个Cookie中多个名称/值对 72
3.4.3 Cookie属性 72
3.5 Silverlight独立存储 80
3.5.1 示例程序:“欢迎回来” 80
3.5.2 部署并更新Silverlight应用 84
3.6 代理缓存 85
3.6.1 使用Cache-Control HTTP头 85
3.6.2 管理相同内容的不同版本 87
3.7 Web服务器缓存 87
3.7.1 Windows内核缓存 87
3.7.2 IIS 7输出缓存 92
3.7.3 ASP.NET输出缓存 93
3.7.4 ASP.NET对象缓存 98
3.8 SQL Server缓存 103
3.9 分布式缓存 104
3.10 缓存过期时间 105
3.10.1 动态内容 105
3.10.2 静态内容 105
3.11 小结 106
第4章 IIS 7 108
4.1 应用程序池和Web园 108
4.2 请求处理管道 110
4.3 Windows系统资源管理器 111
4.4 常见的HTTP问题 113
4.4.1 HTTP重定向 114
4.4.2 HTTP头 115
4.5 压缩 118
4.5.1 启用压缩 118
4.5.2 设置压缩选项 120
4.5.3 使用web.config配置压缩 121
4.5.4 缓存压缩的内容 121
4.5.5 使用编程方式启用压缩 122
4.6 HTTP Keep-Alive 122
4.7 优化URL 122
4.7.1 虚拟目录 123
4.7.2 URL重写 123
4.8 管理流量 126
4.8.1 使用robots.txt 126
4.8.2 网站地图 127
4.8.3 带宽节流 128
4.9 跟踪失败请求 130
4.10 IIS性能调校提示 133
4.11 小结 134
第5章 ASP.NET线程与会话 135
5.1 线程影响可扩展性 135
5.2 ASP.NET页面生命周期 136
5.3 应用程序线程池 137
5.3.1 同步页面 138
5.3.2 异步页面 138
5.3.3 负载测试 140
5.3.4 改进已有的同步页面的可扩展性 142
5.3.5 从单个页面上执行多个异步任务 143
5.3.6 超时处理 144
5.3.7 异步Web服务 145
5.3.8 异步文件I/O 148
5.3.9 异步Web请求 149
5.4 后台工作线程 151
5.4.1 使用后台线程记录日志 152
5.4.2 任务串行化 157
5.5 锁定指南和使用ReaderWriterLock 157
5.6 会话状态 158
5.6.1 会话ID 159
5.6.2 InProc模式 159
5.6.3 使用StateServer 160
5.6.4 使用SQL Server 160
5.6.5 有选择的启用会话状态,使用ReadOnly模式 161
5.6.6 可扩展性会话状态支持 162
5.6.7 调校 167
5.6.8 完全自定义会话状态 167
5.6.9 会话序列化 168
5.7 会话状态的其他方案 168
5.8 小结 169
第6章 使用ASP.NET实现和管理优化技术 170
6.1 母版页 170
6.2 用户控件 173
6.2.1 示例 173
6.2.2 注册和使用控件 175
6.2.3 将控件放在DLL中 175
6.3 主题 176
6.3.1 静态文件 176
6.3.2 皮肤 176
6.3.3 动态设定主题 176
6.3.4 可以放在主题里的属性 177
6.3.5 示例 178
6.3.6 预缓存主题图片 179
6.4 特定于浏览器的代码 179
6.4.1 使用Request.Browser 181
6.4.2 特定于浏览器属性前缀 182
6.4.3 缓存特定于浏览器的页面 183
6.4.4 控件适配器 184
6.4.5 浏览器提供程序 185
6.4.6 伪装 187
6.5 动态生成JavaScript和CSS 187
6.5.1 示例 188
6.5.2 从JavaScript里访问ASP.NET控件 189
6.6 给静态文件设置多个域名 190
6.7 修改图片大小 191
6.8 小结 193
第7章 管理ASP.NET应用程序策略 194
7.1 自定义HttpModule 194
7.1.1 示例HttpModule的需求 195
7.1.2 Init() 方法 195
7.1.3 PreRequestHandlerExecute事件处理器 197
7.1.4 BeginAuthenticateRequest事件处理器 197
7.1.5 EndAuthenticateRequest事件处理器 199
7.1.6 EndRequest事件处理器 200
7.1.7 数据库表和存储过程 201
7.1.8 在web.config中注册该HttpModule 202
7.2 自定义HttpHandler 202
7.2.1 开始请求 203
7.2.2 结束请求 204
7.3 页面基类 205
7.4 页面适配器 206
7.4.1 示例:PageStatePersister 206
7.4.2 PageAdapter类 207
7.4.3 注册PageAdapter 208
7.5 URL重写 208
7.5.1 在HttpModule中重写URL 208
7.5.2 修改表单使用重写的URL 209
7.6 标签转换 210
7.7 深入理解控件适配器 211
7.8 重定向 212
7.8.1 传统的重定向 212
7.8.2 永久重定向 213
7.8.3 使用Server.Transfer() 213
7.9 尽早刷新响应 214
7.9.1 标记 214
7.9.2 隐藏文件 214
7.9.3 包跟踪 215
7.9.4 块编码 216
7.9.5 小结 217
7.10 过滤空格 218
7.11 避免不必要工作的其他方法 220
7.11.1 检查Page.IsPostBack 220
7.11.2 确定页面是否刷新 220
7.11.3 避免在回发之后重定向 220
7.11.4 检查Response.IsClient- Connected 221
7.11.5 关闭调试模式 221
7.11.6 批量编译 222
7.12 小结 222
第8章 SQL Server关系数据库 224
8.1 SQL Server如何管理内存 224
8.1.1 内存组织 225
8.1.2 读和写 225
8.1.3 性能影响 226
8.2 存储过程 226
8.3 批量命令 228
8.3.1 使用SqlDataAdapter 228
8.3.2 构建参数化命令串 231
8.4 事务 233
8.5 多结果集 238
8.5.1 使用SqlDataReader. NextResult() 238
8.5.2 使用SqlDataAdapter和DataSet 239
8.6 数据预缓存 240
8.6.1 方法 240
8.6.2 预缓存基于表单的数据 241
8.6.3 预缓存每次一个页面的数据 241
8.7 数据访问层 242
8.8 查询和结构优化 243
8.9 其他查询优化指导原则 251
8.10 数据分页 251
8.10.1 公用表表达式 251
8.10.2 数据分页的详细示例 252
8.11 对象关系模型 258
8.12 XML列 259
8.12.1 XML架构 260
8.12.2 创建示例表 261
8.12.3 基本XML查询 262
8.12.4 修改XML数据 263
8.12.5 XML索引 263
8.12.6 其他XML查询技巧 264
8.13 数据分区 264
8.13.1 分区函数 265
8.13.2 分区架构 265
8.13.3 生成测试数据 266
8.13.4 添加索引,配置锁升级 268
8.13.5 存档旧数据 269
8.13.6 小结 269
8.14 全文搜索 269
8.14.1 创建全文目录和索引 270
8.14.2 全文查询 271
8.14.3 获得搜索分级的细节 271
8.14.4 全文搜索语法小结 271
8.15 Service Broker 272
8.15.1 启用和配置Service Broker 273
8.15.2 发送消息的存储过程 274
8.15.3 使用存储过程接收消息 274
8.15.4 测试示例 275
8.15.5 避免中毒消息 276
8.16 通过Service Broker发送E-mail 276
8.16.1 创建后台工作线程 277
8.16.2 读取并处理信息 278
8.16.3 排队消息和发送邮件的Web窗体 280
8.16.4 结果 282
8.17 数据变化通知 283
8.17.1 查询约束 283
8.17.2 示例:简单的配置系统 284
8.18 Resource Governor 287
8.18.1 配置 287
8.18.2 测试 290
8.19 横向扩展与纵向扩展 290
8.19.1 纵向扩展 290
8.19.2 横向扩展 291
8.19.3 确定系统瓶颈 292
8.20 高可用性 293
8.21 其他方面的性能提示 294
8.22 小结 295
第9章 SQL Server Analysis Services 297
9.1 分析服务概览 297
9.2 MDDB示例 299
9.2.1 RDBMS结构 299
9.2.2 数据源视图 300
9.2.3 Cube 303
9.2.4 时间维度 303
9.2.5 Items和Users维度 305
9.2.6 计算的成员 306
9.2.7 部署和测试 307
9.3 示例MDX查询 307
9.4 ADOMD.NET 313
9.4.1 单个单元格结果示例 313
9.4.2 使用GridView显示多行结果 315
9.5 使用SSIS更新Cube 316
9.6 预先缓存 319
9.6.1 数据存储选项 319
9.6.2 缓存模式 320
9.7 使用中间数据库 323
9.8 小结 324
第10章 基础和运维 325
10.1 插桩 325
10.2 容量规划 329
10.3 磁盘子系统 330
10.3.1 随机每秒钟I/O次数与顺序每秒钟I/O次数 330
10.3.2 NTFS碎片 331
10.3.3 磁盘分区设计 333
10.3.4 RAID选项 334
10.3.5 存储阵列网络 336
10.3.6 控制器缓存 337
10.3.7 固态磁盘 337
10.4 网络设计 338
10.4.1 巨型帧 338
10.4.2 链接集成 339
10.5 防火墙和路由器 340
10.5.1 Windows防火墙和防病毒软件 341
10.5.2 使用路由器作为硬件防火墙的替代方案 341
10.6 负载均衡器 341
10.7 DNS 342
10.8 临时环境 343
10.9 部署 343
10.9.1 数据层升级 344
10.9.2 提高部署速度 344
10.9.3 页面编译 345
10.9.4 预热缓存 345
10.10 服务器监控 346
10.11 小结 347
第11章 综合起来 348
11.1 从何处入手 348
11.2 开发过程 349
11.2.1 组织 350
11.2.2 项目阶段和里程碑 350
11.2.3 编码 351
11.2.4 测试 351
11.2.5 Bug跟踪 351
11.2.6 用户反馈 352
11.2.7 高性能的技巧 352
11.3 League 354
11.4 工具 355
11.5 架构 356
11.6 备忘录 357
11.6.1 原则和方法(第1章) 357
11.6.2 客户端性能(第2章) 357
11.6.3 缓存(第3章) 359
11.6.4 IIS 7(第4章) 360
11.6.5 ASP.NET线程和会话(第5章) 361
11.6.6 使用ASP.NET实现并管理优化技术(第6章) 361
11.6.7 管理ASP.NET应用策略(第7章) 362
11.6.8 SQL Server关系数据库(第8章) 363
11.6.9 SQL Server分析服务(第9章) 364
11.6.10 基础设施和运维(第10章) 364
11.7 小结 365
词汇表 367
· · · · · · (收起)

读后感

评分

我看过,很喜欢,本人正在私下翻译此书,若有出版社有兴趣请联系我 联系方式lancezhang@live.com 或到博客留言:http://blodfox777.cnblogs.com  

评分

我看过,很喜欢,本人正在私下翻译此书,若有出版社有兴趣请联系我 联系方式lancezhang@live.com 或到博客留言:http://blodfox777.cnblogs.com  

评分

长期以来,.NET开发在很多人的眼中就是拖控件的。用微软的一套工具,。config文件稍微修改下,一个ASP.NET+MSSQL的网站就OK了。 但是webform开发造成的高耦合,也是人么诟病的,java的程序员一直讥笑。net。两派大战隔三差五的爆发。 高性能 可扩展是软件的终极目标,是软件的...  

评分

我看过,很喜欢,本人正在私下翻译此书,若有出版社有兴趣请联系我 联系方式lancezhang@live.com 或到博客留言:http://blodfox777.cnblogs.com  

评分

我看过,很喜欢,本人正在私下翻译此书,若有出版社有兴趣请联系我 联系方式lancezhang@live.com 或到博客留言:http://blodfox777.cnblogs.com  

用户评价

评分

这本书的排版和设计实在太棒了,光是翻阅的过程就充满了愉悦。封面那种简洁又不失深邃的设计感,让人一眼就能感受到作者对细节的把控。内页的字体选择和行距处理得非常舒服,长时间阅读也不会感到眼睛疲劳。而且,很多技术书籍常常忽略了图表的清晰度,但这本书在这方面做得极为出色。那些架构图、流程图,不仅内容详实,而且绘制得非常直观易懂,即便是初次接触复杂概念的读者,也能迅速抓住核心。作者在布局上似乎也花了不少心思,关键概念的突出显示、章节之间的逻辑过渡都处理得非常自然,读起来一点都不觉得生硬。这种对阅读体验的重视,让我在学习过程中更加投入,简直是技术文档美学的典范之作。我强烈推荐给那些对技术内容有深度追求,同时也注重阅读感受的工程师们,相信你们会和我一样,享受这份阅读的饕餮盛宴。

评分

这本书的叙事风格非常独特,它带着一种老派工匠的严谨和现代极客的活力。作者在讲解复杂的分布式事务解决方案时,那种娓娓道来的讲解方式,将原本枯燥晦涩的XA协议、Saga模式等概念,描绘成了一场精彩的“协商游戏”。他善于使用生动的比喻来阐释技术细节,比如将消息队列比作可靠的信使,将负载均衡比作高效的交通指挥官,这极大地降低了理解难度。而且,作者的文笔中透露出一种对技术的敬畏感,他从不夸大任何技术的“银弹”属性,而是客观地分析了它们在特定约束条件下的表现。这种平衡的视角,让我感到非常信服。这本书读起来,不像是在啃教科书,倒更像是在一位经验丰富、风趣幽默的资深架构师的指导下,进行一次深入的技术漫游。那种既有深度又有人情味的交流感,是很多技术书籍所欠缺的。

评分

我注意到作者在提及某些技术选型时,非常注重历史演变和生态系统的宏观视角。他没有局限于当前最热门的框架版本,而是追溯了某些设计模式的起源和迭代过程,这对于培养架构师的“长期主义”眼光至关重要。比如,在谈论ASP.NET Core的中间件管道设计时,他不仅解释了当前的“洋葱模型”,还对比了旧版MVC的请求处理流程,从而让我们理解为什么现在会采用这种更灵活的Pipeline模式。这种历史的维度让技术点不再是孤立存在,而是融入了整个技术栈的发展长河中。此外,书中对不同云服务提供商(AWS、Azure)在性能优化方面的最佳实践也有所涉猎,显示出作者对异构环境的深刻理解。这本书提供的是一种“元认知”——即关于如何学习和理解新技术的思维方式,而不是简单地记录已有的知识点。对于希望成为领域专家的读者来说,这种纵深和广度兼备的视野,是无可替代的宝贵财富。

评分

这本书的实战指导性非常强,简直可以作为我日常工作的“行动手册”。作者似乎非常理解一线开发人员在面对真实生产环境时的困境——理论再好,落地才是关键。书中关于微服务拆分、API网关的选型与配置,以及如何利用最新的.NET特性优化I/O密集型操作的章节,提供了大量可以直接复制和修改的配置模板和代码片段。更难能可贵的是,作者在给出解决方案的同时,总是会附带上选择该方案的原因和替代方案的优劣对比。例如,在讨论数据库连接池管理时,他详细对比了不同并发模型下的连接回收效率,并给出了基于我们业务特点的推荐阈值范围。这让学习过程不再是抽象的知识点堆砌,而是变成了解决实际问题的过程。每看完一个章节,我都有种强烈的冲动,想要立刻打开IDE,在新项目中实践一下学到的新招数。这本书,绝对是那种能让你的代码质量在短时间内实现质的飞跃的“硬通货”。

评分

坦率地说,这本书的理论深度令人印象深刻,它不像市面上很多流于表面的“入门指南”,而是真正深入到了构建健壮系统的底层逻辑。作者在讲解性能瓶颈的分析方法时,那种庖丁解牛般的细致令人叹服。他没有停留在“使用缓存”这种泛泛而谈的建议上,而是详细拆解了不同缓存策略在不同并发场景下的适用性、过期策略的选择对内存占用和数据一致性的影响,甚至探讨了分布式锁的微妙陷阱。这种深入到代码执行层面和系统底层机制的剖析,为我解决实际工作中遇到的棘手问题提供了坚实的理论支撑。阅读过程中,我多次停下来,反复思考作者提出的那些关于资源调度和异步处理的权衡点。它迫使我跳出日常的CRUD思维定式,真正去思考如何设计一个能抵御“黑天鹅事件”的弹性系统。这本书的价值在于,它提供的不是现成的答案,而是思考问题的框架和工具集,这才是真正的高手风范。

评分

从图书馆借来后直到过期才想起来去还!

评分

从图书馆借来后直到过期才想起来去还!

评分

非常好的书

评分

除了2,3章,还有最后两章我在其他书籍已经见多了,中间部分关于asp.net的优化还是不错的,有些东西我也是第一次知道。不错。

评分

除了2,3章,还有最后两章我在其他书籍已经见多了,中间部分关于asp.net的优化还是不错的,有些东西我也是第一次知道。不错。

本站所有内容均为互联网搜索引擎提供的公开搜索信息,本站不存储任何数据与内容,任何内容与数据均与本站无关,如有需要请联系相关搜索引擎包括但不限于百度google,bing,sogou

© 2026 qciss.net All Rights Reserved. 小哈图书下载中心 版权所有