• 您的位置我爱Aspx >> 书籍 >> ASP.NET 2.0编程珠玑—— 来自MVP的权威开发指南
  • ASP.NET 2.0编程珠玑—— 来自MVP的权威开发指南

  • 作者:未知  来源:网络  日期:2007-3-18 22:43:45  关键字:.net,asp.net,asp
  • 【作者】(美)杰克(Yack, D.),(美)梅尔(Mayo, J.)等著;杨浩,全吉成译

    【出版社】清华大学出版社

    【ISBN】7302141169

    本书由微软MVP编写,是ASP.NET领域一本重要的技巧类图书,提供了很多鲜为人知的优秀解决方案、未正式发布的特性、提示和技巧,可帮助读者从MVP们建立应用程序的丰富经验中直接获益,快速成为ASP.NET开发高手。本书值得每一位熟悉ASP.NET编程原理和方法并且希望将自己的编程技巧从“一般”提高到“高级”的Web开发人员。

    目    录
     
    第1章  窍门程序回顾 1
    1.1  由ASP.NET 2.0替代的
    向导窍门程序 1
    1.1.1  ASP.NET 向导先驱 1
    1.1.2  ASP.NET v2.0中的向导 2
    1.1.3  实现ASP.NET 2.0向导 2
    1.2  Master Page: 以前和现在 9
    1.2.1  ASP.NET v1.1中的
    Master Page模板 10
    1.2.2  ASP.NET v2.0中的
    Master Page 10
    1.2.3  实现Master Page 10
    1.3  URL重写功能 13
    1.3.1  为什么要重写URL 14
    1.3.2  ASP.NET v1.1的窍门程序 14
    1.3.3  ASP.NET v2.0 的替代品 14
    1.3.4  实现URL映射功能 14
    1.4  小结 24
    第2章  开始新项目 25
    2.1  组织项目和解决方案 26
    2.1.1  创建解决方案 27
    2.1.2  创建Web项目 28
    2.1.3  从Web文件夹中删除文件 28
    2.1.4  ASP.NET小组的
    一个窍门程序 29
    2.1.5  创建公共类库项目 29
    2.1.6  选择命名空间 30
    2.1.7  使用数据库项目 31
    2.1.8  使用SQL Server项目 33
    2.1.9  使用Web安装和部署项目 34
    2.2  创建项目引用 34
    2.3  使用源代码控制 36
    2.4  使用Page基类 36
    2.5  使用Master Page 38
    2.6  建立第一个内容页面 40
    2.7  建立主题 41
    2.7.1  使用Skin还是CSS 41
    2.7.2  建立Skin文件 41
    2.7.3  给Skin文件命名 41
    2.8  Web配置和团队 42
    2.8.1  简单方式 42
    2.8.2  外部文件方式 42
    2.9  导出模板 43
    2.10  小结 43
    第3章  提供程序的功能 45
    3.1  什么是提供程序模型 45
    3.2  ASP.NET 2.0附带的提供程序 46
    3.3  扩展内置的提供程序 48
    3.3.1  继承SqlMembershipProvider 48
    3.3.2  配置新的提供程序 49
    3.3.3  检查提供程序的配置 49
    3.3.4  重写ValidateUser 50
    3.4  建立自己的成员提供程序 51
    3.5  建立自己的角色提供程序 55
    3.6  建立角色提供程序代理 57
    3.6.1  实现角色代理提供程序 58
    3.6.2  为角色代理提供
    程序修改Web.Config 59
    3.7  建立定制的提供程序 60
    3.7.1  定制提供程序的示例 60
    3.7.2  定制提供程序的基础 61
    3.8  使用ASP.NET 1.1 66
    3.9  小结 67
    3.10  提供程序的其他资源 67
    第4章  更智能的Web客户程序 69
    4.1  更智能的Web客户程序 69
    4.2  AJAX体验 70
    4.3  之后就有了ASP.NET 2.0 70
    4.4  客户回调的工作原理 71
    4.5  Atlas 82
    4.5.1  ASP.NET小组的一个
    窍门程序 82
    4.5.2  Atlas不仅仅是一个
    客户端脚本库 83
    4.5.3  现在要做的工作 93
    4.6  小结 94
    第5章  调试已创建好的代码 97
    5.1  一步到位的显示功能 97
    5.1.1  可视化器的概念 97
    5.1.2  建立可视化器 97
    5.1.3  测试可视化器 102
    5.1.4  部署可视化器 103
    5.2  调整对象以便于调试 104
    5.2.1  设置对象成员的可见性 105
    5.2.2  用类型代理简化对象视图 107
    5.2.3  给业务对象添加调试逻辑 108
    5.2.4  总结 110
    5.3  小结 113
    第6章  控件的窍门程序 115
    6.1  用XML控件发布RSS 115
    6.1.1  内容管理 115
    6.1.2  定义控件 116
    6.1.3  提取内容 116
    6.1.4  高速缓存以提高性能 117
    6.1.5  管理XSLT源代码 118
    6.2  快速定制类型转换器 120
    6.2.1  创建定制的类型转换器 120
    6.2.2  建立定制的动作列表
    和设计器 125
    6.2.3  管理设计期间的支持 129
    6.2.4  进入Visual Studio 2005
    自动对象模型 131
    6.2.5  实现定制的类型编辑器 132
    6.2.6  在设计期间调试 139
    6.3  小结 139
    第7章  GridView窍门程序 141
    7.1  行的动态扩展 141
    7.2  为GridView控件创建
    PagerTemplate 146
    7.3  删除GridView的选中行 152
    7.4  更新GridView的所有行 157
    7.5  添加选中的行 165
    7.6  使用标题中的上下箭头
    进行排序 170
    7.7  给GridView控件添加
    客户端脚本 173
    7.8  用IPostBackEventHandler
    扩展GridView 175
    7.9  小结 180
    第8章  数据绑定 181
    8.1  继承自己的DataSource控件 181
    8.2  使用数据源配置向导 183
    8.2.1  添加控件设计器 188
    8.2.2  生成与应用程序
    相关的DataSource控件 190
    8.3  扩展DataSource控件 190
    8.3.1  在插入过程中处理默认值 191
    8.3.2  扩展XMLDataSource
    来调用对象 194
    8.4  使用定制参数 198
    8.5  扩展QueryStringParameter 198
    8.5.1  建立定制参数来获取数据 201
    8.5.2  使用反射建立定制参数 203
    8.5.3  从另一个DataSource
    中获得值 205
    8.6  使用定制字段 209
    8.7  小结 214

    第9章  ViewState 215
    9.1  ViewState:是邪恶之神
    还是聪明的狐狸 215
    9.2  LosFormatter:遗漏的
    串行化器 216
    9.3  处理ViewState 219
    9.3.1  用ASP.NET 1.1分解
    ViewState 219
    9.3.2  压缩ViewState 222
    9.3.3  ViewState的其他存储位置 225
    9.3.4  把ViewState移到页面
    的底部 227
    9.4  小结 230
    第10章  高速缓存窍门程序 231
    10.1  静态高速缓存 231
    10.1.1  Cache示例类 231
    10.1.2  示例解决方案剖析 234
    10.1.3  初始化高速缓存 234
    10.1.4  读取高速缓存 236
    10.1.5  修改高速缓存 238
    10.1.6  高速缓存的改变通知 239
    10.1.7  刷新高速缓存 241
    10.2  查看ASP.NET高速缓存 242
    10.3  小结 247
    第11章  从1.x迁移到ASP.NET 2.0 249
    11.1  创建v1.x演示应用程序 249
    11.1.1  用户控件 250
    11.1.2  类 251
    11.1.3  页面 252
    11.2  理解迁移 255
    11.2.1  执行迁移 255
    11.2.2  旧网站移到什么地方 257
    11.2.3  重要的文件变化 258
    11.2.4  理解用户控件引用
    的变化 259
    11.2.5  转换问题 259
    11.3  小结 260
    第12章  部署窍门程序 261
    12.1  Copy Web Site向导 261
    12.2  Publish Web Site向导 263
    12.3  使用Windows安装程序 264
    12.4  产品团队的一个窍门程序 264
    12.4.1  安装插件 265
    12.4.2  添加到解决方案中 265
    12.4.3  添加项目之后 266
    12.4.4  修改默认选项 266
    12.4.5  加快开发人员的
    构建速度 266
    12.4.6  构建服务器的特殊配置 267
    12.4.7  设置编译选项 268
    12.4.8  输出程序集选项 268
    12.4.9  与其他项目共享
    App_Code 269
    12.4.10  签署选项 269
    12.4.11  部署选项 269
    12.4.12  进一步定制部署项目 270
    12.5  准备服务器 274
    12.6  小结 275
    12.7  其他部署资源 276
    第13章  使用Visual Studio 277
    13.1  ASP.NET代码片断 277
    13.1.1  使用片断 277
    13.1.2  使用预生成的片断 278
    13.1.3  创建定制的片断 278
    13.1.4  管理片断 280
    13.1.5  使用片断函数 281
    13.2  简化开发工作的设置 283
    13.2.1  Source视图和Design
    视图 283
    13.2.2  使用另一个Web服务器 284
    13.2.3  导入导出团队设置 285
    13.3  模板 285
    13.3.1  定制的项模板 285
    13.3.2  定制的项目模板 286
    13.4  小结 287
    第14章  安全窍门程序 289
    14.1  避免SQL注射 289
    14.2  IN表达式的参数化 292
    14.3  防止规范化攻击 295
    14.4  使用新文件上载控件 297
    14.5  安全地使用动态模拟功能 297
    14.6  在Login控件中验证强密码 299
    14.7  小结 300
    第15章  建立自己的窍门程序 301
    15.1  确定何时有窍门程序 301
    15.1.1  窍门程序是否超出了
    技术文档 302
    15.1.2  是否找出已有功能
    的新用法 302
    15.1.3  它是否不为人知 303
    15.1.4  它是否可以重用 303
    15.1.5  是否可以与其他人共享 304
    15.1.6  可以拥有一个窍门程序 304
    15.2  打磨窍门程序以发布它 304
    15.2.1  注释代码 304
    15.2.2  使代码含义明确 305
    15.2.3  使用公共编码约定 305
    15.2.4  编写泛型例程 305
    15.2.5  把窍门程序实现为
    组件或控件 308
    15.2.6  编写文档说明 309
    15.3  通过团队测试窍门程序
    并获得反馈 309
    15.4  小结 310
    第16章  Master Page 311
    16.1  Master Page基础 311
    16.1.1  创建Master Page 312
    16.1.2  创建内容页面 313
    16.2  编程修改Master Page 316
    16.2.1  修改Master Page
    的标题部分 316
    16.2.2  查找Master Page
    中的控件 316
    16.2.3  定义Master Page的属性 317
    16.2.4  使用MasterType指令 318
    16.3  嵌套Master Page 319
    16.3.1  创建嵌套的Master Page 319
    16.3.2  在Visual Studio .NET 
    2005中使用嵌套的
    Master Page 321
    16.4  在IIS应用程序之间共享
    Master Page 324
    16.4.1  把Master Page发布
    为程序集 325
    16.4.2  使用Web Deployment 
    Projects插件 328
    16.5  动态修改内容页面中的
    Master Page 330
    16.6  小结 334
    第17章  处理程序和模块 335
    17.1  HttpModule 335
    17.1.1  IP Blacklisting 
    HttpModule 335
    17.1.2  用HttpModule重写
    或重定向URL 340
    17.2  HttpHandler 344
    17.2.1  样板HttpHandler 344
    17.2.2  不鼓励依赖专用于
    图像的HttpHandler 347
    17.2.3  用HttpHandler合成图像 351
    17.2.4  用HttpHandler生成闪电 353
    17.3  联合使用处理程序和模块 357
    17.4  小结 358

    前    言
    无论您是从书店中看到本书,从在线站点上订购它,还是幸运地获得赠书,在第一次看到本书时,都想知道它讲了什么。我们与出版社和其他人讨论过这个概念,有趣的是,听到了人们的各种理解。实际上,本书并不是讲授如何从安全的角度“攻击”ASP.NET应用程序,也不是指导读者如何攻击劣质的应用程序,而是介绍如何使用ASP.NET建立和发布应用程序的各种技术。
    澄清了本书的目的后,就要进一步介绍其内容,说明为什么这是您应购买和推荐给他人的一本好书。本书的每位作者都是资深的专业人员,在.NET平台方面有丰富的经验。他们都是Microsoft MVP(Most Valuable Professional,最有价值专家),在各种在线和脱机环境下回答过成千上万个ASP.NET开发人员提出的问题。他们将通过本书与您共享他们回答过的许多问题的解决方案。您将从他们建立应用程序的丰富经验中获益匪浅。另外,由于ASP.NET 2.0的发布,本书还将探讨ASP.NET 2.0的所有新特性。
    这不是ASP.NET的入门级图书,市面上已有许多图书介绍ASP.NET应用程序的开发。另外,本书也不是解释ASP.NET中每个特性和选项的参考指南。在许多提供参考资源和改进MSDN文档说明的图书中,有非常丰富的参考信息源。
    “窍门程序”的概念
    我们用“窍门程序(hack)”这个术语,表示鲜为人知的解决方案、未正式发布的特性、提示和技巧。一些人把它称为窍门程序,其他人称为“富有创造性的解决方案”。您可能对此有自己的命名,但它们基本上是相同的东西。任何规模的应用程序都或多或少地提高了ASP.NET的能力,把某种形式的窍门程序作为整个解决方案的一部分。
    以前的窍门程序有页面模板、多窗体、URL重写特性和SQL高速缓存依赖性。这些流行的窍门程序在无数产品应用程序中使用过。除了这些窍门程序之外,还有上百个其他窍门程序未得到广泛的认可,因此ASP.NET开发人员没有机会使用它们。本书就介绍一些不为人知、但很有用的窍门程序,开发人员在产品环境下可以使用它们。
    使用窍门程序的原因
    首先,要明白一个概念:所有的应用程序都应该是完美无缺的,也就是说,它们应该很好地构建,在开发过程中实现所选方法论和哲学体系的每个方面。在此过程中,它们还不能超出预算,当然还要按时完成。于是,在产品阶段,应用程序的维护就是免费的。而且,您可能还听过这样的观点:不应该使用未正式发布的特性,以及避免使用非主流的提示、技巧和技术。但我们并不是生活在这样一个童话式的世界中,现实是:我们必须建立健壮的ASP.NET应用程序,来获得有形资产价值。
    在完美的世界中,ASP.NET Framework应满足所有应用程序的需要,开发是一个没有异常的代码生成过程。但是,MVP总是要处理开发小组中产生的实际应用问题,并用ASP.NET发布他们的解决方案。
    我们坚信,不存在这样的完美世界,实际存在的应用程序都不是完美无暇的。另外,我们几乎可以肯定,本书中至少有一个窍门程序在大多数实际的ASP.NET应用程序中使用过。
    无限期地等待在基本产品中支持某个特性,或者没完没了地研究和试用各种方法来解决一个问题,常常是不可行的。找出有创造性的解决方案,同时考虑其优缺点和潜在的问题,才能适时地开发出有效的应用程序。
    窍门程序将最终提升产品
    “Hack是一个不太好的名称,但它是创建下一代开发工具的一个重要部分。”
    —— Jonathan Goodyear,Microsoft MVP,asp.netPRO,2003年11月
    要衡量应用程序是否成功,应考虑其商务价值和利用技术获得持续不断的竞争优势的能力。
    第1章“窍门程序回顾”讨论了ASP.NET 2.0中包含的一些旧窍门程序。这一章还将讨论ASP.NET 2.0中可用作窍门程序的许多改进,这些窍门程序现在已经是ASP.NET的组成部分。这是重要的一章,介绍了ASP.NET 2.0的许多新特性,如果读者是ASP.NET 2.0的初学者,一定要认真阅读。
    在某个窍门程序演变,并最终在产品中实现时,应尽可能学习和利用其内在的方法。
    虽然ASP.NET 2.0听起来很不错,但您坚持使用ASP.NET 1.x,本书仍对您有所帮助。首先,本书讨论的许多内容都可以应用于ASP.NET 1.x应用程序,或者在ASP.NET 1.x应用程序中做轻微的修改。另外,第1章很适合于找出1.x解决方案,并对迁移至2.x做出规划。
    在ASP.NET 2.0的测试版中,大多数产品反馈都标记上了“未来”。其原因很简单:如果它们继续给产品添加其他内容,该产品将不会附带这些内容。
    显然,在ASP和.NET继续走向成熟的过程中,能发明的主要技巧将越来越少,但开发团体的创造力将继续提供更快完成和发布应用程序的崭新方式。
    窍门程序帮助我们学习
    即使找不出可应用于某个问题的窍门程序,看看它是如何工作的也是很有价值的。深入探讨目前的解决方案,可以学到ASP.NET内部工作原理的更多知识。例如,Microsoft MVP Paul Wilson公布了在ASP.NET 1.x中可以把多个窗体放在一个页面上的技术,详细解释了页面请求的过程。这些详尽的论述不仅适用于他的窍门程序,还有助于理解页面的生存期。在把这个知识用于应用程序的特定问题时,对我们肯定是有帮助的。
    如何使用本书
    使用本书并没有指定的方式。本书并不是ASP.NET的入门级图书,但在读者学习ASP.NET时可以提供很多帮助。在建立ASP.NET应用程序时,本书将是一个很有价值的项目指南。我们相信,每个团体都应把本书作为其团体库中的一个资源。
    使本书中的窍门程序适合于自己
    本书中的窍门程序将为解决实际的应用程序问题提供思路,并引导读者进行深入的思考。这决不是说明性的建议,因为每个人的应用程序都是不同的。在使用本书时,最重要的是确定如何把本书中的窍门程序应用于自己的应用程序和业务环境。并不是所有的解决方案都适合于所有的应用程序。
    例如,在看到一个代码段时,您可能突然认识到,这是一个非常好的思路,很适合于自己完成某个工作,或实现应用程序中的某个功能。
    本书的读者对象
    MVP窍门程序并不是用于MVP的,正相反,本书中的窍门程序可由要学习这些技巧的开发人员使用,建立更好的应用程序,或建立他们自己的专业技巧库。
    本书的内容
    ● 第1章回顾了ASP.NET以前版本中的窍门程序,描述了它们如何影响今天的技术,提升开发人员目前使用的技术和工具。一些窍门程序经得起时间的考验,例如ASP.NET v1.1 URL重写窍门程序。本章介绍了读者可能使用过的、目前已成为ASP.NET Framework的一部分的技术。例如,在ASP.NET中,模板页面现在称为Master Page。
    ● 第2章是开始新项目,主要讲述了在扎实的基础上组织、规划和开始新项目的重要性。本章包含许多资源,在开始新项目时,最好利用其中的大多数资源。
    ● 第3章介绍了提供程序。我们可以扩展内置的提供程序,也可以建立自己的提供程序。即使坚持使用ASP .NET 1.1,也可以在本章中找到使用提供程序的提示。
    ● 第4章介绍了智能客户机(比较聪明的客户机)。从客户回调到有一系列ATLAS的AJAX,探讨了智能客户机如何应用于ASP .NET 2.0。
    ● 第5章描述了更便于调试应用程序的一些新颖而强大的方式,演示了查看复杂对象的内容,减少调试窗口的混乱,以及使业务对象自动验证等技术。
    ● 第6章解释了如何通过定制控件创建窍门程序。在创建RSS控件时,将学习如何用几个控件窍门程序解决一些困难的问题。还将介绍如何实现一些新的ASP.NET 2.0控件特性,如动作列表。
    ● 第7章阐述了动态的行扩展技术,更新所有的行,以及GridView控件的页面模板。这一章提供了为GridView创建和定义自己的模板的知识。
    ● 第8章研究了扩展带有数据绑定特性的各种控件的方式。本章主要关注提高重用性和减少冗余代码的方法。还提供了扩展DataSource、Parameters和BoundFields的例子。
    ● 第9章解密了比较神秘的ViewState,提供了解密它的工具和按照自己的意愿操纵它的窍门程序。
    ● 第10章陈述了处理应用程序高速缓存和Web窗体刷新的强类型化、面向对象的方式。还讨论了它与传统的ASP.NET高速缓存相比的优缺点。另外,本章论述了ASP.NET高速缓存查看器和管理器拖放插件,它们可以添加到任一ASP.NET应用程序中。
    ● 第11章展示了如何操作ASP.NET 2.0转换向导。这一章建立了一个代码示例,其功能可以在ASP.NET v1.1站点上查看。我们可以看到转换过程对这段代码进行了什么处理,说不定其中的某些内容您会感兴趣。
    ● 第12章探讨了前面创建、定义和操作所有这些新选项的部署方式,包括新Web Deployment Project的内容和如何为自己的项目定制它们。
    ● 第13章讨论了Visual Studio 2005 IDE及其新特性。提高效率的各种支持程序,例如片断、项模板和项目模板,都与窍门程序密切相关,能显著提高开发人员的效率。
    ● 第14章描述了安全方面的窍门程序,有助于使站点更坚固。不讨论安全性的.NET图书是不可想象的。本章讨论了SQL注射攻击和各种安全窍门程序,以帮助避免相关的攻击,最大限度地减少损失,例如参数化SQL IN子句。本章还将讨论如何定制Login控件,获得更好的输入验证功能。
    ● 第15章将学习如何创建自己的窍门程序。了解打包窍门程

    我对这篇文章有话说?
  • 广告位招租,广告代号:content_468_15
  • 上一篇:Visual C# 2005程序开发与界面设计秘诀
    下一篇:Visual Basic 2005高级编程(第4版)