内容简介本书以虚拟的Wrox Car Company站点以及一系列相关网页为示例,详细讲述如何利用各种ASP.NET Web Forms技术和相关的.NET Framework技术,创建一个可方便选择、配置和订购汽车的站点。与此同时,本书还考虑到各种复杂的情况,实现了与多种浏览器的兼容,并为存在某些功能缺陷的用户提供了解决方案,从而使您的Web应用程序尽善尽美。本书适合于对ASP.NET Web Forms和.NET Framework有一定了解的读者。
前言 利用ASP.NET可以方便地为Web应用程序创建交互式的、直观的用户界面和有吸引力的、激动人心的网页。通过将基于服务器的回送体系结构和.NET Framework中提供的大量服务器控件相结合,开发人员可以像利用VB、Delphi和C++等语言开发传统可执行程序的事件驱动方式一样,快速地为网站和Web应用程序构建基于浏览器的用户界面。 ASP.NET是一种全新的方法,它与以前版本的ASP截然不同。很难全面地掌握其基本原理,以及基于服务器的事件的工作方式(根据用户在页面中的操作来生成相应的事件)。然而,创建ASP.NET页面,尤其是使用那些可用的或处于开发过程中的工具来创建页面,将比使用传统的ASP方法更加简单,并且可以减少错误的发生。 然而,在用户交互过程中完全使用基于服务器的方案也有其自身的缺点。在一个长时间的等待过程中,或者在网络低速连接时,每当页面的内容需要改变时,就需要连接服务器,这将会干扰应用程序的工作,或者降低网站预期的响应灵敏度。 ASP.NET的设计思路是,生成一种基于服务器的机制,通过向服务器回送信息来生成和更新页面;但是仍然有部分服务器控件(如常见的Validation(验证)控件)通过Jscript脚本实现客户端的交互性能,并将其发送到客户端运行。开发人员完全可以将该功能添加到其他控件中,事实上,这种功能目前已经成为大多数网站和Web应用程序的一种标准。 本书主要内容 根据本书的书名和前言,读者完全可以推测出本书的目标是探讨如何开发由ASP.NET驱动的用户界面。具体而言,将讨论和研究主要用于创建网站和网页的各种技巧和方法。这些方法具有如下特性: 直观、易于使用 富有吸引力,功能全面 在合适的地方提供了交互性能 基于真实场景 完成一组预定义的设计要求 具有娱乐性,令人难忘,令用户满意 我们所创建的页面大部分是一个完整应用程序中的一部分内容(对客户购买模式进行了一些优化),这些应用程序的确构成了网站或Web应用程序的基础。现在,Web应用程序已经成为www(World Wide Web,万维网)的一个基本组成成分。本书将创建一个Web站点,在该站点中,用户可以从著名的Wrox汽车公司(Wrox Car Company)选择、定制和购买一辆新车。 为了创建该网站,首先将着眼于需求分析和设计的步骤(尽管不是很详尽),然后,设计和勾勒网站的概貌。然而,尽管这是一种自然的开始创建站点的方式,但这一步通常被简化,甚至被省略,从而使得网站的开发工作向着一个偶然的、不可预见的方向发展。当然,这样做并非完全错误,但这样的确增加了开发和维护的难度。即使采用最简单的“启动计划”也可以减少开发和维护周期,同时还可以避免许多由“没有计划”而引发的常见故障。 一旦完成了基本设计,接下来就要学习组成一个完整网站所需的各种资源的开发。当然,网站中经常会出现重复,因此,为了使本书尽可能地发挥其作用,我们冒昧地尝试并涵盖尽可能多的有用主题。本书将介绍以下一些内容: 一个简化整个网站浏览的中央主页(Home页面) 显示后台数据库所提供的可用产品的数据 由服务器端代码或客户端代码(或两者同时)驱动的交互内容 在运行时创建图像,以及可以为站点赋予生命的动画 识别用户并提供可选的个性化的“登录”特性 在线订单工具,可以提供订单跟踪、利用电子邮件发送状态报告等功能 目前可供使用或正在开发的一些ASP.NET开发工具 此外,我们并没有过多地关心后台数据处理的详细细节,而仅仅关心网站运行所需的内容。在清华大学出版社引进并出版的《ASP.NET分布式数据应用程序高级编程》书中,讨论了后台的整个过程、n层体系结构的实现,和组件化设计。然而,该书尽可能地解决客户端程序可能出现的各种复杂情况,以便更好地关注数据处理问题。 由于本书篇幅所限,因此本书将重点转向了用户界面,并使用非常简单的数据访问技术。当然,这并不意味着我们没有“恰当地”做这件事,而仅仅表示您没有看到所有.NET数据访问类的工作原理的详细讨论,或者对捕获和报告并发错误的长篇介绍。 本书中除了一些演示特定原理或展示语法的简单、抽象的小程序段外,所列出的所有ASP.NET代码都可以在VB.NET和C#中使用。书中所有代码几乎全部采用VB.NET编写,但尽量避免任何与特定语言相关的特性。因此,如果愿意采用另一种语言,任何有一定能力的开发人员都可以将这些代码转换成其他语言的代码。由于VB.NET和C#实现指定特性的方法有着显著的区别,因此,本书中也列出了C#版程序。此外,客户端代码采用JavaScript/Jscript编写。 本书中的源代码可以从/ 网站下载。此外,还可以在我们的服务器上在线运行许多示例。详情请参阅。 注意: 如果读者使用ASP 2.0或3.0,并且已经阅读过Wrox的“ASP Webmaster”系列书籍,读者将发现,在某种程度上,本书在所述专题的选择和讲述专题的方式上与“ASP Webmaster”系列书籍类似。但是,本书介绍的是ASP.NET,因此其范围和基础实现有很多不同之处。 本书读者对象 显然,ASP.NET和相应的.NET Framework类库要比在ASP 3.0或者更早版本中所使用的技术(或者,事实上也包括PHP和JSP等其他环境)复杂得多。因此,每一本介绍ASP.NET的书籍都不可能既包含关于ASP.NET的基础介绍或简短教程,又同时讲述更高级的内容。而后者将是本书的核心内容。 这里需要提醒您注意,从您的观点看这是一件好事,因为您并不想为已经熟悉的主题的内容浪费时间和金钱。这就意味着,如果您想成功使用本书,那么您需要熟悉ASP.NET,并在一定程度上熟悉.NET Framework类。这里假设您已经安装,并正在使用ASP.NET创建页面,当然也可能使用文本编辑器、Visual Studio .NET,或其他开发工具来创建页面。 此外,还假设您对使用数据库驱动网站有一定的了解。我们将解释书中使用的数据访问代码,代码的工作原理,并讨论在适当时机可以采用的替代方法。但是,本书中并不讲述建立和管理数据库的基本技巧。 注意事项 本书不是针对任何特定技术领域的资料性参考书 本书不是针对任何技术的学术论文 本书并不特别讲述任何与ASP.NET相关的硬件性能或软件配置 本书并不特别针对SQL编程、服务器优化,或者数据访问理论 本书的读者对象并不是系统或数据库管理员,而是针对开发人员 主要特性 本书提供了可达到使用目标但不会提高复杂性的实用方法 本书是有关ASP.NET的众多有用、功能强大的面向界面特性的指南 本书探讨了如何设计并构建交互式网站 本书简要介绍了众多的辅助技术,如绘图和电子邮件功能 本书展示了如何利用ASP.NET方便快捷地创建大型网站 本书资料丰富、实用,且行文风趣 学习本书的条件 当您的经验与知识水平满足了上一节的基本要求后,您只需再具备以下条件: 具备一个开发环境。至少必须具备您喜欢的文本编辑器,可以是Visual Studio .NET、Microsoft ASP.NET Web Matrix,或者其他任何合适的第三方开发工具; 在可以访问的服务器端已经安装和配置了IIS(Internet Information Server,Internet信息服务器),和.NET Framework。如果选择使用了Matrix,那么还可以利用它内置的Web服务器。我们还推荐您安装包含各种参考资料的.NET SDK的完全版本,这样即使没有使用Visual Studio .NET,也可以方便地查询相关的条目。 安装配置数据库,如Microsoft SQL Server或MSDE,当然还可以使用其他类型的SQL数据库系统 —— 甚至可使用桌面数据库(如Microsoft Access) —— 只需确保已提供可以通过ASP.NET访问的.NET Data Provider。 为了开发和试验,可以在同一台机器上运行数据库、IIS、.NET,以及用户选择的开发环境。这样可以简化调试过程。 用户支持和反馈 我们一贯重视读者的意见,并想知道每位读者对本书的看法,包括读者喜欢和不喜欢的内容,以及读者希望我们下一次完善的地方。您可以通过发送电子邮件(地址为feedback@)来向我们反馈意见。请确保在反馈信息中提到本书的ISBN和书名。 源代码和更新 本书所有代码都可以从Wrox公司网站()下载。当访问该站点时,通过Search工具或书名列表,可以方便地定位需要的书目。然后,单击本书详细信息页面中的Download Code链接,就可以下载所有的源代码。 从我们的站点上下载的可用文件都是使用WinZip压缩过的文档。把附件保存到本地硬盘上的文件夹中后,需要使用一个解压缩程序(例如WinZip或PKUnzip)来解压缩文件。在解压缩文件时,通常将代码解压缩到每一章所在的文件夹中。在解压缩的过程中,应确保解压缩程序已经选中Extract to(或对等选项)选项列表下的Use folder names。 也可以在作者自己的网站联机运行本书中的代码,该站点的地址为: 勘误表 我们已经尽最大努力确保本书中的文本和代码没有错误,但是错误仍然在所难免。如果您发现本书存在错误,例如拼写错误或不正确的代码段,请反馈信息给我们,我们将不胜感激。勘误表的发送可以节约其他读者学习本书的时间,而且能够帮助我们提供更高质量的信息。请将您的反馈信息以电子邮件的形式发送到support@,它们将被检查,如果正确,将被粘贴到本书的勘误页面上,或者在本书的后续版本中使用。 要在我们的站点上找到勘误表,请访问/,并通过Search工具或者书名列表轻松定位本书页面。然后单击Book Errata链接即可,该链接位于本书的详细页面中。在这个页面中,您可以看到所有已经由编辑检查并提交的勘误内容。通过单击Submit Errata链接,您也可以通知我们您已经发现的勘误内容。 技术支持 如果您希望直接询问本书中的问题,可以发送电子邮件到support@。一封典型的电子邮件应包括下面的内容: 在主题栏中必须有本书的书名、ISBN的后4位数字(本书的对应号码为:7868),和问题所在的页码。 正文部分应包括读者的姓名、联系方式,和问题。 我们将不返回无用邮件,因为仅仅需要有用的详细资料,以便可节约您和我们的时间。当您发送一条电子邮件消息时,它将经过下面一系列的支持: 客户支持—— 首先,您的信息将被递送到客户支持人员手中,并由他们阅读。对于一些被频繁提到的问题将被归档,并将立即回答有关本书或者Web站点的任何常见问题。 编辑支持—— 接着,一些有深度的问题将被送到对本书负责的技术编辑手中,他们在程序设计语言或者特定的产品上有着丰富的经验,能够回答相关主题的详细技术问题。问题一旦得到解决,编辑会及时将勘误表发送到我们的Web站点上。 作者支持—— 最后,如果编辑不能回答您的问题(这种情况很少发生),他们将请求本书的作者。我们将尽量保护作者免受干扰,以便不影响其写作。然而,我们也非常高兴转寄给他们一些特殊的问题。所有Wrox公司的作者都为他们的书提供技术支持。作为回应,他们将发送电子邮件给用户和编辑,进而使所有的读者受益。 注意: Wrox公司的支持过程仅仅对那些与我们出版的书目内容直接相关的问题提供支持,对于超出常规书目支持的问题,您可以从/论坛中的公共列表中获得支持信息。 站点 为了便于作者和其他人讨论,特将编程人员加入到P2P站点的邮件列表中,而且我们独特的系统将programmer to programmer™(由程序员为程序员而著)的编程理念与邮件列表、论坛、新闻组,以及所有其他服务内容(一对一的邮件支持系统除外)相联系。如果您向P2P发送一个问题,应该相信它一定会被登录邮件列表的Wrox公司作者和其他相关专家所检查到。无论您是在阅读本书,还是在开发自己的应用程序,都可以在站点中找到许多对自己有所帮助的邮件列表。 按照下面的步骤可以预订一个邮件列表: (1) 登录/站点,并从左边的菜单栏选择一个适当的类别。 (2) 单击您希望加入的邮件列表。 (3) 按照说明订阅并填写自己的邮件地址和密码。 (4) 回复您收到的确认邮件。 (5) 使用预订管理程序加入更多的邮件列表并设置自己的邮件首选项。