本书通过一个完整的、可以实际工作的Web站点的开发实例,系统全面地介绍了ASP.NET Web站点开发技术。全书共分12章,各章的内容介绍遵循提出问题、设计方案和解决方案的顺序。首先提出需要解决的问题,然后说明实现的过程,最后在ASP.NET中编写具体的软件代码。每一章都是独立的,分别介绍了一个可扩展的、可交换的模块的开发过程。大多数章中都涉及到创建3层的系统,包括数据层、商务层和表示层。书中还推荐了一个基本的站点构建框架,读者可以利用该框架方便、快捷地创建一些模块并把它们插入到Web站点中。
第1章 建立ASP.NET Web站点
1.1 提出问题
1.2 设计方案
1.2.1 在不同地方工作
1.2.2 可维护、可扩展的站点
1.2.3 组建社团
1.2.4 吸引人的内容
1.2.5 广告
1.2.6 频繁的访问
1.3 解决方案
1.3.1 在不同地方工作
1.3.2 创建可维护、可扩展的站点
1.3.3 提供吸引人的内容
1.3.4 管理广告
1.3.5 激励社团
1.3.6 让用户重复访问
1.3.7 部署站点
1.4 小结
第2章 基础设计
2.1 提出问题
2.2 设计方案
2.2.1 命名和编码约定
2.2.2 编程语言
2.2.3 文件夹结构
2.2.4 设计数据库
2.2.5 建立数据服务层
2.2.6 建立商务服务层
2.2.7 错误处理机制和容错性
2.2.8 部署与维护
2.2.9 用户接口设计
2.3 解决方案
2.3.1 DbObject类
2.3.2 BizObject类
2.3.3 AppException类
2.4 小结
第3章 样式和导航基础
3.1 提出问题
3.2 设计方案
3.2.1 级联样式表
3.2.2 XSLT
3.2.3 页面基类
3.2.4 可重用的导航器控件
3.2.5 题头和脚注
3.2.6 错误处理机制
3.3 解决方案
3.3.1 样式
3.3.2 PhilePage类
3.3.3 导航器控件
3.3.4 SiteHeader控件
3.3.5 SiteFooter控件
3.3.6 错误处理机制
3.3.7 主页草图
3.4 小结
第4章 维护站点
4.1 提出问题
4.1.1 FTP与在线文件管理
4.1.2 数据库管理
4.2 设计方案
4.2.1 实现设计方案
4.2.2 安全性设计
4.3 解决方案
4.3.1 处理文件和目录的类
4.3.2 题头和脚注控件
4.3.3 文件管理器的主页
4.3.4 使用Windows安全机制保护文件管理器
4.3.5 在线数据库管理
4.4 小结
第5章 用户和验证
5.1 提出问题
5.2 设计方案
5.2.1 规划数据库
5.2.2 数据层
5.2.3 商务层
5.2.4 模块配置
5.2.5 管理
5.3 解决方案
5.3.1 数据库
5.3.2 数据层
5.3.3 商务层
5.3.4 修改用户接口来支持验证
5.3.5 管理角色和账号
5.4 小结
第6章 新闻管理
6.1 提出问题
6.2 设计方案
6.2.1 要实现的功能
6.2.2 数据库设计
6.2.3 设计数据层
6.2.4 设计商务层
6.2.5 保存和检索设置
6.2.6 设计表示层
6.2.7 安全性需求
6.3 解决方案
6.3.1 处理数据库
6.3.2 实现数据访问程序集
6.3.3 配置程序集
6.3.4 实现商务层类
6.3.5 用户接口
6.3.6 向用户显示新闻
6.3.7 用户提交的新闻
6.3.8 要闻标题用户控件
6.3.9 保护模块
6.3.10 要闻标题Web服务
6.4 小结
第7章 广告
7.1 提出问题
7.1.1 印象
7.1.2 点击数
7.1.3 需求
7.2 设计方案
7.2.1 使用AdRotator
7.2.2 数据库
7.2.3 数据服务层
7.2.4 商务层
7.2.5 表示层
7.2.6 配置
7.3 解决方案
7.3.1 数据库表
7.3.2 数据服务层
7.3.3 商务层
7.3.4 表示层
7.3.5 模块配置
7.4 小结
第8章 民意调查
8.1 提出问题
8.2 设计方案
8.2.1 需要实现的功能
8.2.2 设计数据库表
8.2.3 管理数据库的存储过程
8.2.4 设计数据层
8.2.5 存储和检索设置
8.2.6 设计商务层
8.2.7 设置用户接口服务
8.2.8 安全性需要
8.3 解决方案
8.3.1 处理数据库
8.3.2 实现数据访问程序集
8.3.3 配置程序集
8.3.4 商务程序集
8.3.5 管理用户接口
8.3.6 管理选项
8.3.7 在线修改设置
8.3.8 民意调查用户控件
8.3.9 ShowArchive.aspx页面
8.3.10 安全模块
8.3.11 民意调查Web服务
8.4 小结
第9章 邮件发送清单
9.1 提出问题
9.2 设计方案
9.2.1 设计数据库表
9.2.2 管理数据库的存储过程
9.2.3 设计数据服务
9.2.4 存储和恢复设置
9.2.5 设计商务服务
9.2.6 设计用户接口服务
9.2.7 安全需要
9.3 解决方案
9.3.1 数据库的操作
9.3.2 实现数据和配置程序集
9.3.3 实现商务层
9.3.4 管理用户接口
9.3.5 在线修改设置
9.3.6 订阅一个邮件发送清单
9.3.7 保护模块
9.4 小结
第10章 论坛和在线社团
10.1 提出问题
10.2 设计方案
10.2.1 数据库
10.2.2 设计数据服务
10.2.3 配置
10.2.4 商务层
10.2.5 设计用户接口层
10.3 解决方案
10.3.1 创建数据库表
10.3.2 实现数据层
10.3.3 实现配置层
10.3.4 实现商务层
10.3.5 表示层
10.4 小结
第11章 部署站点
11.1 提出问题
11.2 设计方案
11.2.1 部署数据存储
11.2.2 为部署准备站点
11.2.3 手工(XCopy)部署
11.2.4 主机服务部署
11.2.5 自动部署(创建安装程序)
11.3 解决方案
11.4 小结
第12章 结尾
12.1 开始创建
12.2 加入我们的团体
12.3 请参考更多的书
12.3.1 Web服务
12.3.2 安全
12.3.3 ADO.NET
12.3.4 高级服务器控件
欢迎您阅读《ASP.NETWeb站点高级编程》这本书;本书中我们将会使用可扩展的、可交换的模块创建一个交互式的、基于内容的Web站点。学习完本书,读者就可以掌握足够的ASP.NET编程技巧来开发高效的、设计良好的、可扩展的Web站点。
ASP.NET是一个用于创建Web站点的优秀的工具。它包含许多内置的功能,可以采用数千行典型的ASP代码。它还不需要管理员权限来部署编译的组件,用户的整个站点可以部署在一个文件夹中。
本书将会逐步地介绍各种ASP.NET开发者可以使用的功能,并且会着重介绍一些最有用、最让人激动的功能。
本书的重点是基于内容的Web站点。我们将不会介绍如何创建电子商务系统,虽然书中的许多建议同样适用于电子商务站点。例如,我们将会使用相同的构造基础添加一个购物篮模块。
本书与Wrox公司的其他书都不一样,因为本书创建了一个可以实际工作的Web站点。但是,本书的每一章都是独立的,分别介绍了一个模块的开发过程,读者可以把这些模块用于自己的Web站点中。我们在书中还推荐了一个基本的站点构建框架,读者可以利用该框架方便而快捷地创建一些模块并把它们插入到Web站点中。
0.1 本书的内容
本书各章的内容介绍遵循提出问题、设计方案和解决方案州顷序。首先提出需要解决的问题,然后说明实现的过程,最后在ASP.NET中编写具体的软件代码。
大多数章中都涉及到创建3层的系统,包括数据层、商务层和表示层。我们还将会介绍如何创建独立的模块并把它们方便地集成到整体站点中。
第1章概述要创建的Web站点。首先提出要解决的问题,并且讨论解决问题的过程和步骤。然后提出解决方案,涉及到后续各章中创建和集成模块的具体内容。
第2章介绍站点的构造基础。我们将会建立编码标准并设计文件夹和命名空间的结构。我们还将会创建初始的数据库,尽管在这一阶段数据库中还没有数据。我们还创建了整个站点的错误处理代码、数据的基类和商务层对象。
第3章要把我们的基础构造扩展到表示层。我们将会创建站点中的ASP.NET页面的基类、一个自定义的错误提示页面、整个站点的导航、题头与脚注控件。
第4章创建文件管理模块,该模块用于下载和加载站点的源代码,并能够进行在线修改。我们还将会介绍Microsoft的DataManager,它可以用来管理站点中的SQL Server数据库。
第5章介绍用户账号模块。我们将会介绍如何创建功能强大的基于角色的安全系统,并且把它集成到ASP.NET的内置的验证功能中。
第6章介绍如何对Web站点的新闻内容进行常规性修改。我们还将会创建一个Web服务把新闻标题外置给其他站点和应用程序,并创建一个使用该Web服务的Windows新闻接收器。
第7章介绍站点的广告处理模块。我们将会通过扩展ASP.NETAdRotator控件来提供我们需要的功能。还将会介绍如何记录广告的点击率和用户印象,以及如何为广告商提供报告。
第8章介绍民意调查。我们将会介绍如何管理用户的询问,记录用户的投票数,并且把它、们整理成有用的报告。
第9章提供了创建电子邮件简讯的工具。我们将会介绍如何创建纯文本和HTML格式的消息,以及如何管理消息列表和创建新的消息。
第10章介绍论坛。我们将会创建支持用户发送和阅读消息的全部功能,并且为管理员提供特殊的许可。本章将会展示DataList和DataGrid控件的强大功能。我们还将会介绍如何使用正则表达式来提供有限的HTML支持,使得我们的站点不会遭遇跨站点脚本编写的风险。
第11章介绍如何部署站点。我们将会介绍VisualStudio.NET为我们提供的源代码免费的可以分布的软件版本,以及如何把我们的站点部署到群集服务中。
第12章展望未来。我们刚刚开始ASP.NET Web站点开发的生涯,Wrox将会为我们提供不断的支持,包括本书的P2P(程序员对程序员)列表,读者可以积极参与,和其他热心读者共同分享开发观念和经验。
0.2 本书的读者对象
本书是为具有一定的ASP.NET基础,并且希望应用这些知识来开发Web站点的读者编写的。如果读者已经阅读了Wrox的《ASPNET入门经典——C#编程篇》、 《ASP.NET高级编程》等书,阅读本书就会更加方便。
读者应该熟悉如何使用VisualStudio.NET来创建ASP.NET工程,并且对于C#有一定的了解。
0.3 本书的软硬件需求
运行本书的代码示例需要以下条件:
●Windows 2000或者WindowsXP。
●VisualStudio.NETl.0。我们已经测试了1.0版本下的代码运行情况,大多数代码也可以在后续发布的版本中运行。这些代码基本上都可以在VisualC#.NET标准版下正常工作。
●SQLServer 2000,尽管它的大多数技术我们使用也可以用于其他数据库系统,包括Access。
为了让站点正常工作,读者还需要ASP.NET Web主机。本书的最后将会提供一些选择Web主机服务的建议。
0.4 客户支持
我们一向重视读者的反馈意见,希望知道读者对本书的看法:批评、赞扬和建议都欢迎。您发送反馈意见的电子邮件地址是feedback@wrox.com。
0.4.1 如何下载本书的示例代码
访问Wrox站点hnp://www.wrox.com/,只须从Search栏找到书名,或者使用书名列表。单击Code栏的Download。或者在本书的详细信息页面中单击Download Code。
站点中可供下载的文件使用WinZip格式压缩。读者在硬盘的文件夹中保存附件后,需要使用WinZip或者PKUnzip解压缩。解压缩文件后,代码通常解压缩到相应章的文件夹中。开始解压缩时,要确保WinZip或PKUnzip设置的文件夹名正确。
0.4.2 勘误表
尽管我们努力确保本书的文本和代码准确无误,但是仍旧会有挂一漏万之处。读者若发现书中的错误,如拼写错误或者代码运行错误,请把勘误表发往电子邮件地址support@wrox.com。在http://www.Wrox.com/站点可以找到勘误表,通过Advanced Search或者书名列表找到书名,单击BookErrata链接,它在本书详细信息页面的图像下面。
0.4.3 电子邮件支持
如果读者希望就书中的问题直接向掌握详情的专家询问,可以发电子邮件到support@wrox.com,电子邮件中要带上书名和ISBN书号的后4为数字。通常电子邮件中要包括如下内容:
●书名和ISBN书号的后4位数字,主要问题所在的页码。
●读者的姓名、联系方法,以及主要问题
我们不会向读者寄送邮件,这样可以节省双方的时间。对于读者的电子邮件一般会经过以下处理流程:
●客户支持 读者的电子邮件首先寄送给我们的客户支持人员,他们能够回答询问频率最高的一些问题,并能就书中或者Web站点的常见问题立即作出解答。
●编辑 较难的问题会送给负责本书的技术编辑,他们熟悉编程语言和软件产品,能够回答相关的细节性技术问题。
●作者 最后,对于编辑无法解答的问题,将转发给作者。尽管我们不愿意干扰作者的写作工作,仍旧会向他们转发一些具体的问题。全体Wrox作者都会对他们的著作提供技术支持。他们会向客户支持人员或者编辑发送电子邮件,使得所有读者都能受益。
Wrox的技术支持工作只对直接与书中内容相关的问题负责,对于超出正常支持范围的问题,可以通过http://p2p.wrox.com/forum站点上的讨论列表获得支持。
0.4.4 p2p.wrox.com
作者之间的讨论加入到P2P邮件列表中。我们的独一无二的系统通过邮件列表、论坛和新闻组提供了程序员到程序员(programmerto programmer)之间的联系,这是一种一对一的电子邮件支持系统。读者向P2P发送电子邮件查询时,会被许多Wrox作者和当时在邮件列表中的业界专家看到。读者可以从p2p.wrox.com站点找到许多不同的邮件列表,它们不仅对阅读本书有用,对读者开发实际的应用程序也大有帮助。对于本书比较适合的邮件列表是aspx和aspx—professional。
订阅邮件列表遵循以下步骤:
(1)进入站点http://p2p.wrox.com/。
(2)从左侧的菜单栏中选择合适的类别。
(3)单击希望加入的邮件列表。
(4)遵循相关指令进行订阅,并输入你的电子邮件地址和密码。
(5)确认希望接受电子邮件。
(6)使用订阅管理器加入更多的邮件列表,并设置电子邮件优选项。
本系统为什么能提供最佳支持
读者可以加入邮件列表,并每周接收一次。如果读者没有时间,或者不方便接收邮件列表,可以搜索我们的在线档案室。垃圾邮件已经被删除,读者的电子邮件地址由独一无二的Lyris系统保护。任何加入或退出邮件列表订阅的请求,或者其他有关邮件列表的请求,都会发送到listsupport@p2p.wrox.com