欢迎来到“ASP.NET 世界”。在随后的几周或几个月中,本系列文章将逐步详细介绍如何使用 Microsoft ASP.NET 和 Microsoft Visual Studio.NET 来设计、实现和部署典型的 Web 应用程序,以探讨实际应用程序创建实践中最常见的几个因素。我们不仅仅布置一些 Web 窗体,也不局限于只对后端数据库进行一些数据绑定。数据绑定和 Web 窗体布局很重要,但是有许多其他问题也非常重要。
例如,无论采用何种目标平台或语言,所有经过良好编码的项目都包括一些基本的规划步骤,例如目标声明、用户方案文档,甚至用于标识解决方案的物理边界和逻辑边界的体系结构文档。此外,在解决方案生命周期的早期就将安全规划包含在内是一种非常好的习惯。这些内容与良好的数据库模型、精心设计的中间件组件以及简洁的用户界面设计一起,可以确保您最终在生产中部署的应用程序是安全的、可靠的,并且是用户友好的。
此时,一些读者可能会认为本文属于那些基调很高的文章,目标定位在某些超大型企业级方案,而这种方案根本不适用于一般的小工厂、爱好者或个人开发团体。其实并不是这样!即使只是创建您自己个人使用的基于 Web 的小型解决方案,从一开始就进行完善的规划将有助于确保流程最终的轻松实现和部署。而且,并不是高级的程序员或 Web 开发人员才可以使用这些技术。无论您的技术水平如何,也无论您属于哪类目标读者,我相信您都会发现这一系列文章对您很有帮助,它为您提供了丰富的信息,而且十分有趣。
我们将生成一个称为 DotNetKB 的示例知识库 Web 应用程序,这个过程将贯穿整个系列文章。在作为第一部分的本专题中,我们在第一部分将介绍典型项目的设计阶段,包括基本规划、应用程序体系结构和实现方案设计。学习完本文后,您将已经准备好所有的文档,并会迫不及待地希望开始创建解决方案。在第二部分中将详细讨论如何使用 Microsoft SQL Server 2000 和 Microsoft Visual Studio .NET 2003 创建数据存储层。其中包括创建数据库(添加表、索引、约束条件和关系)以及编写用于存取数据的存储过程。同时,我们还将讨论与 SQL Server、Internet 信息服务器 (IIS) 和 ASP.NET 有关的安全性问题。到第二部分结束时,我们将获得一个适用于 DotNetKB 解决方案的功能完备且安全的数据存储系统。
预备工作非常简单,我们跳过这部分内容,直接开始第一步“应用程序规划”。
第一部分:应用程序规划与设计
适用于:Microsoft ASP.NET
(一)规划基本 ASP.NET 应用程序
使用 Visual Studio .NET 创建基于 Web 的 ASP.NET 应用程序的第一步是制定基本的应用程序规划 (AP)。制定规划不仅对于由多个开发人员建立的大型解决方案而言是必不可少的,而且即使对于最小的应用程序,一个完善的 AP 也是非常重要的。创建 AP 有助于您在开始编码“之前”就能仔细考虑一些常见问题。这样,您可以在应用程序生命周期的早期便完全了解挑战和解决方案,而不是在完全陷入窘境之后才发现问题。
(二)ASP.NET应用程序结构及安全规划
有了基本的目的和为解决方案开发的用户方案列表后,您需要开始筹划整体的体系结构。主要目标是标识应用程序的逻辑方面和物理方面,即如何将应用程序拆分为各种有用的部分。在本节中还添加了安全性方面的内容。安全是在规划的“一开始”您就需要考虑的问题,而不是在开发周期中“最后添加”的内容。我们稍后会在本节中详细讨论这个问题。
(三)谈谈 ASP.NET 规划阶段的设计
在直接进入项目的编码部分之前,需要花一点时间实际勾画出应用程序的逻辑组件,这非常重要。在我们的示例解决方案中,我们要实现解决方案的三个逻辑组件:数据库、.NET 数据访问组件和 ASP.NET 用户界面。现在,我们先勾画出每个组件的大致轮廓,讨论过程中最重要的方面,即文档化组件间的交互。
第二部分:使用 SQL Server 2000 创建数据存储层
适用于:
Microsoft ASP.NET
Microsof Visual Studio .NET
Microsoft SQL Server 2000
(一)使用VisualStudio.NET2003创建数据库图
Visual Studio .NET 2003 的众多优势之一是,用户可将其用作主要的 SQL Server 编辑器来完成大多数任务。获得目标数据库服务器的适当权限后,您就可以轻松地使用 Visual Studio .NET 2003 创建各种数据库、表、索引、约束条件、关系、视图、存储过程和功能了。
(二)使用VisualStudio.NET2003编写存储过程
数据表定义了如何在数据库中存储数据,但没有说明如何存取数据。我们还需要了解读写记录以便从表中再次调用选定行和列的详细信息。使用存储过程可以提高解决方案的性能并使之更安全。此外,使用存储过程可以增加数据层的抽象级别,从而保护解决方案的其他部分不受小的数据布局和格式变化带来的影响。这样可使您的解决方案更可靠,更易于维护。
(三)IIS、ASP.NET和SQLServer的安全性问题
SQL Server、Internet 信息服务器和 ASP.NET 引擎都提供了坚实可靠的安全模型,它们可以很好地在一起协同工作。由于涉及三类服务(SQL Server、IIS 和 ASP.NET),所以需要采取三个关键的步骤来确保解决方案的安全。本部分讨论一种为 Web 应用程序设置足够权限和信任级别的更常用(且可靠)的方法。
(四)创建ASP.NET测试页及生成源代码和安装脚本
创建测试页始终是访问 SQL Server 数据层并验证输入和输出参数是否得到正确处理的好办法。我们还可以使用 Visual Studio .NET 为整个数据库层生成源代码(包括生成表和索引、授权、存储过程等),还可以生成一个可用于在现有 SQL Server 上安装这些数据库对象的命令行脚本。
小结:
本专题讨论了很多内容。包括怎样做ASP.NET应用程序规划与设计,如何使用 Visual Studio .NET 2003 创建数据库项目,如何创建新数据库以及定义表、索引、约束条件和关系的数据库图,还介绍了使用 Visual Studio .NET 2003 添加可以存取表中存储的数据的存储过程和自定义函数。通过本专题的学习,您还学会了如何使用自定义的 Windows 帐户以及 IIS 和 Web 应用程序中的 web.config 文件设置,在 SQL Server 和您的 ASP.NET 解决方案之间建立一种可靠的信任关系。本专题最后还介绍了用于验证数据层程序设计的测试 Web 表单示例,并说明了如何生成可用于在任何目标 SQL Server 上安装完成的这个数据层的 T-SQL 脚本和命令行脚本。
也许您已经注意到,数据库层的相关讨论中未涉及到专家记录的存储和再调用过程。这是因为我决定使用 XML 文件代替它。这样,我们可以借此机会学习如何将 XML 作为数据源,以及如何将这种数据格式与 SQL Server 数据结合起来以创建一个完整的解决方案。在下一期相关内容专题中,我们将定义 XML 存储格式和读写这种数据的组件层,还将学习有关 XML 序列化以及 ASP.NET 中的内置数据高速缓存服务的相关知识,敬请关注!