本书是美国亚马逊网站同类书长期销售冠军,并受到微软ASP.NET小组项目经理RobHoward的大力推荐,中文版由中科院专家汤涛老师翻译,经典、权威是本书最好的诠释。本书共分10部分,31章,囊括了在.NET框架下架建ASP.NET应用程序的各个层面。每一章也都不是泛泛而谈理论,而是围绕实际样例代码来组织,让读者马上可以上手,并且加深理解。书中还包含了两个完整的、立即就可以用得上的ASP.NET应用程序,一个就业站点和一个网上商店,用于演示实际应用中ASP.NET的大部分通用特性。随书光盘包含了本书所有的源代码,以及一些控件和技术文章。本书的语言有些失于平淡,但所述全是程序员最关心的问题,“实用”是技术类书籍的惟一衡量标准,而本书更是将这个词演绎到了极致。献给谨以此书献给RuthWalther!致谢我要感谢微软公司的RobHoward和ScottGuthrie抽时间会见我,并解答一些关于ASP.NET的问题。我一直对于Rob和Scott在ASP.NET社区中付出巨大的努力感到惊讶。也要感谢微软公司的ShawnNandi。我还要对TimShakarian将本书所有的VB.NET代码翻译成C#代码的工作表达我的感激之情。看一下本书中包含的样例代码数量之多,这并不是一件简单的工作!还要感谢CharlesCarroll为本书的初版改进提供了很多有价值的建议。最后,我想感谢NeilRowe在我编写本书时给予的支持和鼓励。我们想得到你的反馈!作为本书的读者,您是我们最重要的批评家和评论员。我们重视您的意见并且想知道我们做什么是正确的,做什么更好,您希望看到我们在什么领域的出版物,以及您想告诉我们的意见。您可以Email或直接写信给我,告诉我本书哪些内容是您喜欢的,哪些是不喜欢的,以及我们可以做些什么来进一步提高我们书籍的质量。请注意,有关本书内容的相关技术问题我没法帮助您,而且由于我收到了海量的信件,因此不能一一回复每封信。在您给我写信时,请注明本书的书名和作者,以及您的姓名,电话或Email地址。本书的作者、编辑和我都会仔细阅读您的评论。Email:cusomer@samspublishing.comMail:MichaelStephensAssociatePublisherSamsPublishing201West103rdStreetIndianapolis,IN46290USA读者服务要更详细了解本书或Sams出版社的其他书籍,请访问我们的网站www.samspublishing.com。在检索框中敲入您要找的书的ISBN(不包括连字符号)或者是书名,就能找到您想要的书。简介最新版的活动服务器页面(ActiveServerPages,ASP),即ASP.NET1.1是微软用于构建动态和数据驱动Web站点的技术。ASP.NET是构建可扩展的,交互的Web站点最流行的语言之一。好些Internet上访问量最大的Web站点都是使用ASP.NET开发的。其中突出的例子有HomeShoppingNetwork网站,MSN和微软自己的网站。ASP.NET与前版ASP相比截然不同。如果你用ASP早期版本开发过应用,而且还没有接触过ASP.NET的新特性,那么就一定要作好被ASP.NET震惊的准备了。下面列出一些ASP.NET的重要的新特性:ASP.NET使用以公共语言运行库(CommonLanguageRuntime,CLR)语言编写的编译后代码,诸如VisualBasic和C#。与前版ASP不同,这次不再使用象VBScript这样的解释执行的脚本语言。ASP.NET页面是基于服务器端控件构建的。Web服务器控件允许你使用直观的对象模型来表现和编程,而不再是使用超文本标记语言(HypertextMarkupLanguage,HTML)元素。ASP.NET包括所谓Web服务的新技术。你可以用Web服务跨越Internet访问属性、方法以及传递数据库的数据。ASP.NET是微软.NET框架的一部分。你可以通过在代码中访问几百个.NET类,实现执行诸如动态创建图片和将数组保存到文件这样令人惊奇的多种功能。ASP.NET包含页面和数据缓存机制,可以让你轻松而又显著地提高Web站点地性能。谁应该读本书?《ASP.NET揭密》是为那些需要创建Web站点的专业开发人员准备的。本书是使用ASP.NET构建Web站点的综合性参考书。本书附带的光盘同时包括几百个VB.NET和C#样例代码,你可以在构建Web站点时立即使用这些例子。如果你是用ASP制作Web站点的新手,那么本书可以教会你使用ASP.NET建立Web站点所需要了解的所有内容。如果你是经验丰富的ASP程序员,通过本书你可以学到ASP.NET的新特性。最后,如果你对ASP.NET1.0很熟悉,通过本书你也可以学习ASP.NET1.1的新特性。本书附带的光盘中包括名为“从ASP.NET1.0向1.1迁移”的白皮书,该白皮书专注于ASP.NET1.0与ASP.NET1.1的差异。本书最后一部分包括两个完整的样例程序:一个就业站点和一个网上商店。这些程序的完整代码也包括在本书附带的光盘中。在阅读本书之前你需要把握哪些内容?本书附带光盘包括你在开发ASP.NET应用程序所需的所有知识。光盘包括微软.NET框架SDK1.1版,其中既有VisualBasic语言又有C#语言。你可以直接双击光盘中Framework目录下名为Setup.exe的文件来安装.NET框架SDK。当然这个SDK也可以从www.ASP.netWeb站点下载。光盘还包括ASP.NETWebMatrix。ASP.NETWebMatrix是由微软ASP.NET组的成员开发的,用于构建ASP.NET应用程序的开发环境。你可以直接双击光盘中WebMatrix目录下名为webmatrix.msi的文件来安装WebMatrix。最新版的WebMatrix也可以从www.ASP.netWeb站点下载。开发ASP.NET应用程序的唯一附加条件就是你要有合适的操作系统。对于开发ASP.NET应用程序来说,你需要有Windows2000(专业版或服务器版),WindowsXP(家庭版或专业版),或是Windows2003(标准版,企业版,数据中心版或Web版)。你可以基于WindowsXP家庭版和Windows2000专业版使用WebMatrix自带的Web服务器开发ASP.NET应用程序,但是不能用这两个操作系统来运行真正的Web站点。本书中数据库相关的章节已经假定你具有MicrosoftSQLServer,MSDE或MicrosoftAccess的基础。本书最后两章中的两个样例程序,即就业站点和网上商店,要求你的计算机中必须安装MicrosoftSQLServer或MSDE。你可以从www.ASP.netWeb站点下载MSDE。本书附带的光盘包括名为“从ASP.NET1.0向1.1迁移”的白皮书,该白皮书专注于ASP.NET1.0与ASP.NET1.1的差异。在阅读本书之前你需要了解哪些内容?本书假定你了解HTML,而且具有诸如VisualBasic,Java或VBScript等编程语言的经验。本书中几乎所有的代码都是以VisualBasic编写的。但是,如果你只熟悉VBScript,那么你在理解这些代码例子就会遇到一些小问题。本书附带光盘包含所有例子的VB.NET和C#代码。如果要完全把握数据库相关章节,你需要有一些数据库的工作经验,诸如MicrosoftSQLServer,Oracle或MicrisoftAccess等。本书是如何组织的?虽然我推荐你在阅读本书时从头到尾一章一章地读,但是我也意识到并不是所有人都有时间这么做。如果必要,你完全可以把本书当成参考书,只在需要时翻阅某一章。因此,了解一下整本书的组织可能会有些帮助。第I部分:使用ASP.NETWeb表单—这部分包含的章节为你提供了使用表单和验证控件构建ASP.NET页面的详细内容。这部分也涵盖了所有用于构建交互HTML表单的控件。第II部分:高级ASP.NET页面开发—这些章讨论了如何使用用户控件创建你自己的控件,如何使用移动控件创建可以在移动电话和个人数字助手(PersonalDigitalAsssistants,PDAs)上使用的Web页面,如何将页面的代码与设计内容分离,以及如何在ASP.NET页面中使用第三方控件。第III部分:使用ADO.NET—这部分包含的章节为你提供了详细了解ADO.NET的内容。你将学习如何执行基本数据库任务,诸如把表单数据保存到数据库。你也将学习如何使用专门用于数据库的Web控件,比如DataList和DataGrid控件。第IV部分:使用ASP.NET应用程序—这些章节讨论了ASP.NET应用程序的特性。比如你将学习如何通过Web.config文件配置ASP.NET应用程序,如何使用应用程序和会话状态。第V部分:ASP.NET应用程序的安全控制—这些章节为你提供了ASP.NET内置的安全特征的概览。比如,你将学习如何使用基于表单的安全控制,可应用于站点中需要密码保护的页面。你也将学协如何使用.NET类来实现加密。第VI部分:构建ASP.NETWeb服务—这部分中的章节阐述了如何使用包含在当前这个ASP发布版中的令人兴奋的技术。在这些章节中,你将学习到如何创建Web服务,以及如何将Web服务集成到Web站点中。第VII部分:深入.NET框架—这些章节讨论了可以在页面上使用的很多有用的.NET类。比如,你将学习到如何动态生成图片,使用集合和正则表达式,以及从ASP.NET页面发送Email等。第VIII部分:构建自定义ASP.NET控件—这些章节讨论了如何使用自定控件扩展ASP.NET框架的功能。你将学习到如何创建你自己的ASP.NET控件。第IX部分:ASP.NET样例程序—本书的最后部分包含两个完整的样例程序。你将学习到如何创建一个就业站点和一个网上商店。本书使用的代码命名约定变量命名和代码约定的议题是最难处理的。程序员倾向于使用其个人的命名约定,而不喜欢别人规定他们应该如何编写代码。然而,当代码需要为团体内多人阅读时(想象一下代码检查的情况),拥有一个通用的约定是很有价值的。拥有通用的约定也便于你日后再阅读自己的代码。最流行的变量命名约定是所谓的匈牙利表示法(HungarianNotation)。最初由微软的CharlesSimonyi提出,并且在微软内部使用了许多年。按照这个约定,你要在所有变量命名时都以标准的3个或4个字母前缀来表示变量的数据类型。比如,用于表示顾客年龄的整型变量就应该命名为intCustomerAge。微软并不推荐在.NET框架和ASP.NET情况下使用这个约定。微软如此推荐的动机是他们希望你使用诸如微软VisualStudio这样的高级编辑器编写代码。VisualStudio会自动为你提供有关变量类型的信息。然而,本书我假定你不是使用VisualStudio来编写ASP.NET页面。实际上,开发人员广泛使用各种编辑器,如WebMatrix,TextPad,UltraEdit和Notepad来编写代码。既然我没有假定你使用VisualStudio,那么变量的命名约定就是必要的了。此外,以我的经验,许多公司都要求他们的程序员遵循一个严格的命名约定,这些约定通常都是HungarianNotation的一些变种。本书中我使用命名约定也是HungarianNotation的一个变种。我已经为基本数据类型变量,ASP.NETWeb控件,ADO.NET类和事件处理子程序创建了一套前缀和命名约定。这些约定在下表中列出。在此并不是为.NET框架中的每个类逐个提供一个标准前缀。要是这样的话足足需要超过3400个前缀!而是为应用于ASP.NET中的大部分通用类型提供标准前缀。事件处理子程序事件处理子程序是由产生事件的控件ID,后面跟上需要处理的事件的类型。比如名为btnSubmit_Click的子程序就是处理名为btnSubmit的Button控件的Click事件。当产生事件的控件没有分配ID时,就使用控件的类型来代替这个ID。比如,名为Button_Click的子程序就是处理不带ID的Button控件的Click事件。本书使用的约定本书使用了如下印刷上的约定:代码行,命令,语句,变量和任何需要你键入的或是屏幕上显示的文本都以mono字体显示。粗体的mono字体则常用于表示用户的输入。语法描述中的占位符是以斜体的mono字体表示。使用时以实际文件名,参数或其表示的任何元素替换占位符。在定义技术术语时用斜体突出显示。图标【译者注:需要在此插入原书第10页倒数第7行的左?吠急辍坑τ靡恍写胫氨硎镜鼻按胄惺巧弦恍写氲难有S惺币恍写胩こ艘趁嬷械バ械某ざ仁被崾褂酶猛急辍H绻憧吹揭恍写肭坝姓庋耐急晔保亲〉鼻靶惺巧弦恍写氲囊徊糠帧?本书也包含“注意”,“技巧”和“警告”以便帮助你更快地定位重要或有用的信息。“注意”包含为有经验的ASP用户升级到ASP.NET所需的内容。这些“注意”标记为“经典ASP注释”。关于作者StephenWaltherStephenWalther是一位著名ASP.NET专家和讲师,他的公司SupertASPWorkshops(超级ASP专家工作室)(www.ASPWorkshops.com)为美国许多公司和组织提供过培训,其中包括NASA,Verizon,Metlife和国家科学基金等。他是微软发布的“最佳实践”应用程序ASP.NETCommunityStarterkit的主要开发人员。Stephen曾经是CityAuction(www.cityauction.com)的首席技术执行官。该网站是Internet上最好的个人到个人的(PersontoPerson,P-to-P)拍卖网站之一,并且是Snap!和Citysearch的独家拍卖提供商。Stephen也曾是Collegescape网站的首席技术官(CTO),该网站是在线大学应用程序的最主要的供应商。