使用Visual Studio .NET 创建基于 Web 的 ASP.NET 应用程序的第一步是制定基本的应用程序规划 (AP)。制定规划不仅对于由多个开发人员建立的大型解决方案而言是必不可少的,而且即使对于最小的应用程序,一个完善的 AP 也是非常重要的。创建 AP 有助于您在开始编码“之前”就能仔细考虑一些常见问题。这样,您可以在应用程序生命周期的早期便完全了解挑战和解决方案,而不是在完全陷入窘境之后才发现问题。在《Software Project Survival Guide》一书中,作者 Steve McConnell 指出:在软件项目后期纠正错误所花的成本与在早期阶段发现并纠正这些错误所花的成本相比,前者可能是后者的 50 - 200 倍。
一个完善的项目规划包含哪些内容?可以包含许多内容,但最基本的是要包含目标声明和一系列用户方案。还有其他很多有用的资料,包括需求文档、编码标准、交付进度、测试过程等。对于我们要建立的简单示例解决方案,将主要介绍简单的应用程序声明和一些用户方案。同时还将解决一些其他问题。
应用程序声明
此系列文章要建立的项目(称为 DotNetKB)是一个简单的知识库 Web 站点,在这个站点中,用户可以提各种问题,并可以得到授权“专家”的回答。这样,以后访问者在查找常见 ASP.NET 问题的解决方案时,可以对得到的结果数据进行搜索和过滤。
这是对我们的 DotNetKB 项目的一个基本目标声明。DotNetKB 是一个基于 Web 的应用程序,它可以列出访问者提出的一系列问题,并显示授权专家对这些问题作出的回复。访问者可以向系统添加新问题,并可以按照问题的主题、问题和/或回答中的关键字来搜索和过滤这些问题。访问者还可以按主题或按添加到系统中的日期来对问题列表进行排序。
授权专家可以登录到应用程序中已设置安全机制的部分,审阅问题,添加、编辑和删除对一个问题的一个或多个回答。应用程序管理员还可以建立专家登录权限和登录配置文件,以及添加、编辑和删除问题主题。
此外,还提供了一些基本统计信息,包括系统中问题和回答的数量,以及每个专家的回复数量和至今已被访问的页面数量。
正如您从上面的声明中看到的那样,该解决方案非常简单。在阅读目标声明时,您可能会开始考虑可以添加到这个应用程序的许多其他功能,以使应用程序更加强大。这说明了项目目标声明的一个主要依据,即避免“功能蔓延”。我们都清楚,如果更改最终结果本来基于的概念,简单的想法将导致非常庞大且歪曲的结果。有句老格言:“如果不知道要去往何方,你可能会在某个地方停下来”,它原本揭示的是夏季公路旅行,其道理同样可用于软件项目。
一些项目的目标声明中可能需要包含更多的信息。而对于我们的使用,上面的目标声明就符合要求。现在我们对于要完成的应用程序有了一个清晰的认识,接下来需要一些详细的信息来描述用户如何与系统交互以及用户需要执行哪些任务来完成目标。我们需要一系列用户方案。
文档化用户方案
用户方案没有什么令人惊异之处。通常,它们只是描述用户如何与应用程序交互。用户方案的关键价值在于记录了关于每个人对用户希望系统如何运行以及应用程序应如何响应的设想。通过完成这个过程,您将可以完全了解处理各种用户与系统的交互时所需的数据点和函数。换句话说,编写完善的用户方案将有助于您确定完成解决方案需要实现的数据库、中间件和用户界面元素。
注意:Visual Studio .NET Enterprise Architect 有一项非常不错的功能,即允许您使用 Microsoft Visio? 通过 UML(统一建模语言)创建用户方案,然后生成这些方案的基本代码。在这里,我不打算深入探讨这些细节,但是您可以在 MSDN? Academic Alliance 站点找到一篇关于这一主题的好文章《Generating .NET Code Using Visio Enterprise Architect's UML》,作者是 Sreedhar Koganti。有了上一节的目标声明后,下面是 DotNetKB 项目的几个示例用户方案。
搜索知识库
匿名用户可以输入一个或多个关键字并执行搜索,搜索将返回包含这些关键字的问题和/或回答列表。用户可以将关键字搜索锁定在仅搜索问题、仅搜索回答或者二者都搜索。返回的列表将显示问题及其回复数和被其他用户访问的次数。单击链接将返回以时间先后逆序排列的回复(纯文本)列表。