内容简介
本书由微软MVP编写,是ASP.NET领域一本重要的技巧类图书,提供了很多鲜为人知的优秀解决方案、未正式发布的特性、提示和技巧,可帮助读者从MVP们建立应用程序的丰富经验中直接获益,快速成为ASP.NET开发高手。本书值得每一位熟悉ASP.NET编程原理和方法并且希望将自己的编程技巧从“一般”提高到“高级”的Web开发人员。
无论您是从书店中看到本书,从在线站点上订购它,还是幸运地获得赠书,在第一次看到本书时,都想知道它讲了什么。我们与出版社和其他人讨论过这个概念,有趣的是,听到了人们的各种理解。实际上,本书并不是讲授如何从安全的角度“攻击”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章将学习如何创建自己的窍门程序。了解打包窍门程序,与团队共享它们的几种不同方式。也许您的窍门程序将成为.NET、Visual Studio或另一个工具的未来版本的一部分,每天将有上百万开发人员使用这些工具。 ● 第16章详细解释了Master Page在ASP.NET 2.0应用程序中使用的不同方式。本章讨论的主题包括动态修改Master Page,在IIS应用程序之间共享Master Page,以及编程处理Master Page控件。 ● 第17章深入研究了ASP.NET HttpHandler和HttpModule体系结构,包括样板文件、处理程序和模块的用法。 使用本书的要求 大多数作者在编写本书的过程中都使用了Visual Studio 2005标准版或更高版本。本书的大多数示例都可以运行在Visual Studio 2005的所有版本上。如果您遇到错误,在撞南墙之前,最好查看一下勘误表,也许其中已有一个更新的例子。 用户支持 我们总是想知道您对本书的看法,您喜欢哪些内容,您不喜欢哪些内容,这些信息将有助于我们下一次做得更好。如果您有什么意见和建议,请向fwkbook@tup.tsinghua.edu.cn发邮件。但是,请您一定要在您的信中注明本书的书名。 如何下载本书的示例代码 在您登录到Wrox站点/时,只需使用Search工具或使用书名列表就可以找到本书。接着在Code栏中单击Download链接,或单击本书信息页面上的Download Code链接,就可以获得本书所有的源代码。另外,您也可以从本书的合作站点www.tupwk.com.cn/downpage上下载本书的所有源代码。 从以上站点上下载的文件使用WinZip进行了压缩。在把文件保存到硬盘的一个文件夹中时,需要使用解压缩软件(如WinZip或PKUnzip)对该文件解压缩。在解压缩时,代码常常放在各自的章节文件夹中。在开始解压缩过程时,一定要将解压缩软件WinZip或 PKUnzip设置为使用文件夹名。 勘误表 尽管我们已经尽了各种努力来保证文章或代码中不出现错误,但是错误总是难免的,如果您在本书中找到了错误,例如拼写错误或代码错误,请告诉我们,我们将非常感激。通过勘误表,可以让其他读者避免受挫,当然,这还有助于提供更高质量的信息。请给fwkbook@tup.tsinghua.edu.cn发电子邮件,我们就会检查您的信息,如果是正确的,就把它发送到该书的勘误表页面上,或在本书的后续版本中采用。 要在网站上找到勘误表,可以登录,通过Advanced Search工具或书名列表查找本书,然后在本书的信息页面上,单击Book Errata链接。 E-Mail支持 如果您希望直接就本书的问题向对本书知之甚多的专家咨询,那么,就向support@wrox. com发电子邮件,在电子邮件的“主题”(Subject)栏中,加上本书的名称和ISBN的最后4位号码。典型的电子邮件应该包括下列内容: ● 在“主题”栏加上书的名称、ISBN的最后4位数字和问题所在的页码。 ● 在邮件的正文中加上您的姓名、联系信息和问题。 我们不会发给您垃圾邮件。我们只需要详细的情况以节省您的宝贵时间和我们的时间。当您发送电子邮件时,它会直接链接到以下支持链: ● 客户支持—— 您的消息会传送到我们的客户支持人员,他们是阅读信息的第一人。他们有常见问题的文件,会迅速回答一般性的问题。他们回答关于本书和网站的一般性问题。 ● 编辑支持—— 更深的问题会转发到负责本书的技术编辑处。他(或)她具有编程或特殊产品的经验,能够回答某个主题的详细技术问题。 ● 作者支持—— 最后,在编辑都不能回答问题的情况下(这种情况很少出现),这些问题将转发到作者。我们试图保护作者不要从写作中分心,但是,我们也很愿意将特殊的问题转发给他们。所有的Wrox作者帮助支持他们的书籍。他们向客户和编辑回复电子邮件,所有的读者都会从中受益。 Wrox支持过程只能提供直接与已出版的图书相关的问题。对于超出此范围的问题可以通过/论坛的团体列表来提供支持。 P2P邮件列表是为作者和同行的讨论而设立的。我们在邮件列表、论坛和新闻组中提供“程序员到程序员的支持”(programmer to programmer support),还包括一对一的电子邮件支持系统。如果把问题发送给P2P,就可以相信,您的问题不仅仅是由支持专家解答,而且还要提供给我们邮件列表中的许多Wrox作者和其他业界专家。在上,可以从许多不同的列表中获得帮助,不仅在阅读本书时获得帮助,还可以在开发应用程序时获得帮助。在网站的.NET类别中,最适合本书的是beginning_vb和vb_dotnet列表。 要订阅一个邮件列表,可以遵循下面的步骤: (1) 进入。 (2) 从左侧的菜单栏中选择合适的列表。 (3) 单击想加入的邮件列表。 (4) 按照指示订阅和填写电子邮件地址和密码。 (5) 回复接收到的确认电子邮件。 (6) 使用订阅管理器加入更多的列表,设置自己的邮件设置。 为什么这个系统提供最好的支持 您可加入该邮件列表中,也可以每周分类接收它们。如果您没有时间或设备接收该邮件列表,可以搜索我们的在线文档。垃圾邮件和广告邮件会被删除,您自己的电子邮件地址会被独特的Lyris系统保护起来。任何加入或退出列表的查询,或者与列表相关的一般问题,都应发送到listsupport@。