毫无疑问,你已经知道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 3.5所需的相关知识。如果你曾使用前一个版本的ASP.NET进行过编程,那么可以将重点放在学习ASP.NET 3.5的新特性上,例如第13章的LINQ、第32章的ASP.NET AJAX和第33章的Silverlight。如果你从未接触过ASP.NET技术,会发现本书是一本很好的指南,将引导你逐步地学习基础知识和隐藏在ASP.NET技术背后的工作原理。阅读本书的唯一前提是,需具备良好的C#语言基础并了解基本的.NET知识。如果你用过其他语言,比如Java或者C++,但是没有接触过C#,你会发现,先看介绍.NET基础知识的其他书籍会更好一些,比如,Andrew Troelsen所著的《C#2008与.NET 3.5高级程序设计(第4版)》 。
本书内容
下面是本书的内容提要。
第一部分 第1章简要介绍了整个ASP.NET平台和.NET Framework,并说明了ASP.NET 3.5所做的改动。第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章会涉及两个新的ASP.NET革新——主题(自动控制控件样式)和母版页(可供多个页面重用的布局模板)。第17章展示了ASP.NET如何使用新的导航模型让访问者从一个页面转到另一个页面。最后,第18章讲述如何部署技术和IIS Web服务器软件。
第四部分 这部分让你了解ASP.NET丰富的安全特性。先是第19章简要介绍安全概念,然后第20章讲解了表单验证,第21章讲解新的成员资格API。第22章介绍Windows验证,第23章介绍如何通过复杂的授权规则来约束已经验证的用户以及如何使用基于角色的安全特性。第24章介绍用户配置API(profile API),这是一个用来存储用户特定信息的新的、预先构建的解决方案。第25章介绍如何保护存储在数据库内的数据以及在URL中发送的加密信息。最后,第26章展示了如何通过设计一个自定义的成员资格提供程序来插入ASP.NET安全模型。
第五部分 这部分展示了用来扩展Web页面的高级技术。第27章和第28章介绍自定义控件技术。第29章介绍手工控制图片的GDI+技术。最后,第30章展示了用于构建Web门户的ASP.NET的Web部件架构。..
第六部分 这部分将展示现代Web开发中最精彩的创新。首先,第31章和第32章介绍如何在ASP.NET Web页面里使用JavaScript和Ajax技术。我们将学习如何让Web页面变得更加动态(通过加入文本自动完成和拖放的效果)且更具响应性(通过响应客户端事件并无缝地刷新Web页面)。第33章将深入介绍Silverlight,它是微软创建的浏览器插件,可以给各种浏览器上的普通Web页面带来丰富的图形、动画、音频和视频。
读者对象
本书针对的是有一定服务器端Web开发知识的专业开发者。本书并没有完整描述.NET Framework的每一个细节,否则,那样的一本书可能会有本书的两倍厚。相反,本书为专业开发者提供精练的ASP.NET技术介绍,而这类读者基本上都不想去重复最基本的概念。在阅读本书的过程中,你要关注的是需要用来构建专业Web应用程序的.NET Framework技术,包括数据访问和XML。使用这些功能,你就可以通过当前最好的工具来构建下一代网站了。
本书还极其实用。你不仅可以学习功能,而且还可以学到实际将用到的技术,从而让你的网站达到一个更高的层次。后面的章节专门介绍了很多高级功能,比如自定义控件、动态图片、高级安全、高性能数据访问等。所有这些是你构建专业Web应用程序所必需的东西。
为了更好地理解本书,你最好熟悉C#语法以及面向对象的概念。你不一定非要使用过老版本的ASP.NET,因为本书介绍了所有相关的基础知识。如果你很熟悉Java或者C++但没用过.NET,你需要考虑同时阅读一些介绍.NET的书籍,比如Andrew Troelsen的《C#2008与.NET 3.5高级程序设计(第4版)》。
学习本书的硬件和软件环境
你需要一个安装有Visual Studio 2008的电脑来配合阅读本书。虽然从理论上说你可以手写代码,但这是极其乏味的,并且极易出错,所以在专业环境下从来不用这种方法。
注解 你可以使用精简了功能的Visual Studio Web Developer 2008 Express版本,但这样就不能运行某些示例代码了。最重要的是无法使用Visual Studio Web Developer 2008 Express版本来创建类库,而这是现代面向组件设计的核心所在(但是可以通过使用两个Express版本解决这个限制,即使用Visual Studio Web Developer Express版本创建页面,使用Visual C# 2008 Express版本创建组件)。
此外,如果要承载ASP.NET网站,你需要使用Windows XP Professional或者(理想情况下)基于服务器的Windows版本,如Windows Server 2003或Windows Server 2008。还需要安装IIS(Internet Information Services,Internet信息服务),它是Windows操作系统的一个组件。IIS在第18章中介绍。
最后,本书包含了许多示例,这些示例都使用SQL Server自带的样例数据库来演示数据存取、安全技术以及其他功能。你可以使用任何版本的SQL Server来演示这些例子,比如SQL Server 2005 Express版本,它是与Visual Studio的某些版本一起包含在内的(并且可以在http://msdn.microsoft.com/ sql/express上免费下载)。如果你使用其他关系数据库引擎,就需要修改示例代码。
.客户支持
我们非常重视读者的反馈,我们也希望能了解你对本书的想法——哪些是你喜欢的地方,哪些是你不喜欢的地方,还有你希望我们应该在下次改进的地方。你可以发送建议到feedback@apress.com。请务必在邮件中说清本书的书名。
示例代码
如果打算下载与本书配套的示例代码 ,可以访问Apress的站点http://www.apress.com,选择本书书名就可以下载ZIP格式的示例代码文件了。在使用这些代码之前,需要解压缩下载文件。代码是按章节顺序排列的,在使用代码之前,请阅读readme.txt文件来了解相关注意事项。
附送章节
在Apress网站上还有一些可下载的PDF格式的其他章节。这些章节由于篇幅所限未包括在书里,而且对于ASP.NET Web开发也不是特别重要。有如下一些内容。
Bonus Chapter 1。这一章介绍如何在ASP.NET网站里使用资源和本地化。如果需要开发用多种语言查看的网站,则本章内容对于开发人员十分重要。
Bonus Chapter 2,3,4。这些章节是关于Web服务的,Web服务让你能够创建由Internet上的其他应用程序调用的子程序。在富客户端开发中Web服务更有意思一些(因为它可以为普通的桌面应用程序带来Web特性),而且它们目前正在被一项叫做WCF(Windows Communication Foundation,Windows通信基础)的技术所取代。由于这些原因,本书不讨论Web服务。
注解 与Web服务相关的章节完全引用自本书的前一个版本。这些章节的信息对ASP.NET 3.5依然适用,因为Web服务特性在3.5中没有发生任何变化。
勘误表
我们尽可能保证文字及代码没有错误。但是,人无完人,金无足赤,错误和疏漏在所难免。如果你在本书中发现了错误,比如拼写错误或者代码错误,我们将非常高兴得到你的反馈。请将发现的错误发送到support@apress.com,这些错误将被核对并发布到勘误表页面或者在本书的下一版本中修正。你可以从本书的网页上查看勘误表。...