摘要:了解如何规划和设计 ASP.NET 应用程序。本文以一个知识库 Web 应用程序为例,讨论实际应用程序创建实践中最常见的几个因素。
简介
这是一个系列文章,在这个系列文章中我们将逐步详细介绍如何使用 Microsoft ASP.NET 和 Microsoft Visual Studio.NET 来设计、实现和部署典型的 Web 应用程序,以探讨实际应用程序创建实践中最常见的几个因素。我们不仅仅布置一些 Web 窗体,也不局限于只对后端数据库进行一些数据绑定。数据绑定和 Web 窗体布局很重要,但是有许多其他问题也非常重要。
例如,无论采用何种目标平台或语言,所有经过良好编码的项目都包括一些基本的规划步骤,例如目标声明、用户方案文档,甚至用于标识解决方案的物理边界和逻辑边界的体系结构文档。此外,在解决方案生命周期的早期就将安全规划包含在内是一种非常好的习惯。这些内容与良好的数据库模型、精心设计的中间件组件以及简洁的用户界面设计一起,可以确保您最终在生产中部署的应用程序是安全的、可靠的,并且是用户友好的。
此时,一些读者可能会认为本文属于那些基调很高的文章,目标定位在某些超大型企业级方案,而这种方案根本不适用于一般的小工厂、爱好者或个人开发团体。其实并不是这样!即使只是创建您自己个人使用的基于 Web 的小型解决方案,从一开始就进行完善的规划将有助于确保流程最终的轻松实现和部署。而且,并不是高级的程序员或 Web 开发人员才可以使用这些技术。无论您的技术水平如何,也无论您属于哪类目标读者,我相信您都会发现这一系列文章对您很有帮助,它为您提供了丰富的信息,而且(请允许我这样说)十分有趣。
我们将生成一个称为 DotNetKB 的示例知识库 Web 应用程序,这个过程将贯穿整个系列文章。在作为第一篇文章的本文中,我们将介绍典型项目的设计阶段,包括基本规划、应用程序体系结构和实现方案设计。学习完本文后,您将已经准备好所有的文档,并会迫不及待地希望开始创建解决方案。
预备工作非常简单,我们跳过这部分内容,直接开始第一步“应用程序规划”。
规划基本 ASP.NET 应用程序
使用 Visual Studio .NET 创建基于 Web 的 ASP.NET 应用程序的第一步是制定基本的应用程序规划 (AP)。制定规划不仅对于由多个开发人员建立的大型解决方案而言是必不可少的,而且即使对于最小的应用程序,一个完善的 AP 也是非常重要的。创建 AP 有助于您在开始编码“之前”就能仔细考虑一些常见问题。这样,您可以在应用程序生命周期的早期便完全了解挑战和解决方案,而不是在完全陷入窘境之后才发现问题。在《Software Project Survival Guide》一书中,作者 Steve McConnell 指出:在软件项目后期纠正错误所花的成本与在早期阶段发现并纠正这些错误所花的成本相比,前者可能是后者的 50 - 200 倍。
一个完善的项目规划包含哪些内容?可以包含许多内容,但最基本的是要包含目标声明和一系列用户方案。还有其他很多有用的资料,包括需求文档、编码标准、交付进度、测试过程等。对于我们要建立的简单示例解决方案,将主要介绍简单的应用程序声明和一些用户方案。同时还将解决一些其他问题。
应用程序声明
此系列文章要建立的项目(称为 DotNetKB)是一个简单的知识库 Web 站点,在这个站点中,用户可以提各种问题,并可以得到授权“专家”的回答。这样,以后访问者在查找常见 ASP.NET 问题的解决方案时,可以对得到的结果数据进行搜索和过滤。
这是对我们的 DotNetKB 项目的一个基本目标声明。DotNetKB 是一个基于 Web 的应用程序,它可以列出访问者提出的一系列问题,并显示授权专家对这些问题作出的回复。访问者可以向系统添加新问题,并可以按照问题的主题、问题和/或回答中的关键字来搜索和过滤这些问题。访问者还可以按主题或按添加到系统中的日期来对问题列表进行排序。
授权专家可以登录到应用程序中已设置安全机制的部分,审阅问题,添加、编辑和删除对一个问题的一个或多个回答。应用程序管理员还可以建立专家登录权限和登录配置文件,以及添加、编辑和删除问题主题。
此外,还提供了一些基本统计信息,包括系统中问题和回答的数量,以及每个专家的回复数量和至今已被访问的页面数量。
正如您从上面的声明中看到的那样,该解决方案非常简单。在阅读目标声明时,您可能会开始考虑可以添加到这个应用程序的许多其他功能,以使应用程序更加强大。这说明了项目目标声明的一个主要依据,即避免“功能蔓延”。我们都清楚,如果更改最终结果本来基于的概念,简单的想法将导致非常庞大且歪曲的结果。有句老格言:“如果不知道要去往何方,你可能会在某个地方停下来”,它原本揭示的是夏季公路旅行,其道理同样可用于软件项目。
一些项目的目标声明中可能需要包含更多的信息。而对于我们的使用,上面的目标声明就符合要求。现在我们对于要完成的应用程序有了一个清晰的认识,接下来需要一些详细的信息来描述用户如何与系统交互以及用户需要执行哪些任务来完成目标。我们需要一系列用户方案。