进入 ASP.NET 世界 - 第 1 部分:应用程序规划与设计(一)

目录

简介
规划基本 ASP.NET 应用程序
定义应用程序体系结构
安全规划
完成设计文档
小结并付诸行动

简介

欢迎来到“进入 ASP.NET 世界”。在随后的几周或几个月中,本系列文章将逐步详细介绍如何使用 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 的应用程序,它可以列出访问者提出的一系列问题,并显示授权专家对这些问题作出的回复。访问者可以向系统添加新问题,并可以按照问题的主题、问题和/或回答中的关键字来搜索和过滤这些问题。访问者还可以按主题或按添加到系统中的日期来对问题列表进行排序。

授权专家可以登录到应用程序中已设置安全机制的部分,审阅问题,添加、编辑和删除对一个问题的一个或多个回答。应用程序管理员还可以建立专家登录权限和登录配置文件,以及添加、编辑和删除问题主题。

此外,还提供了一些基本统计信息,包括系统中问题和回答的数量,以及每个专家的回复数量和至今已被访问的页面数量。

正如您从上面的声明中看到的那样,该解决方案非常简单。在阅读目标声明时,您可能会开始考虑可以添加到这个应用程序的许多其他功能,以使应用程序更加强大。这说明了项目目标声明的一个主要依据,即避免“功能蔓延”。我们都清楚,如果更改最终结果本来基于的概念,简单的想法将导致非常庞大且歪曲的结果。有句老格言:“如果不知道要去往何方,你可能会在某个地方停下来”,它原本揭示的是夏季公路旅行,其道理同样可用于软件项目。

一些项目的目标声明中可能需要包含更多的信息。而对于我们的使用,上面的目标声明就符合要求。现在我们对于要完成的应用程序有了一个清晰的认识,接下来需要一些详细的信息来描述用户如何与系统交互以及用户需要执行哪些任务来完成目标。我们需要一系列用户方案。

文档化用户方案

用户方案没有什么令人惊异之处。通常,它们只是描述用户如何与应用程序交互。用户方案的关键价值在于记录了关于每个人对用户希望系统如何运行以及应用程序应如何响应的设想。通过完成这个过程,您将可以完全了解处理各种用户与系统的交互时所需的数据点和函数。换句话说,编写完善的用户方案将有助于您确定完成解决方案需要实现的数据库、中间件和用户界面元素。

注意:Visual Studio .NET Enterprise Architect 有一项非常不错的功能,即允许您使用 Microsoft Visio® 通过 UML(统一建模语言)创建用户方案,然后生成这些方案的基本代码。在这里,我不打算深入探讨这些细节,但是您可以在 MSDN® Academic Alliance 站点找到一篇关于这一主题的好文章 Generating .NET Code Using Visio Enterprise Architect's UML,作者是 Sreedhar Koganti。

有了上一节的目标声明后,下面是 DotNetKB 项目的几个示例用户方案。

搜索知识库

匿名用户可以输入一个或多个关键字并执行搜索,搜索将返回包含这些关键字的问题和/或回答列表。用户可以将关键字搜索锁定在仅搜索问题、仅搜索回答或者二者都搜索。返回的列表将显示问题及其回复数和被其他用户访问的次数。单击链接将返回以时间先后逆序排列的回复(纯文本)列表。

将新问题输入到知识库中

匿名用户可以浏览用于向数据库输入新问题以供授权专家审阅和回复的屏幕。用户可以输入问题的标题和内容,并可以选择在一系列主题中的某个主题下记录该问题。用户还可以输入他们的名字和相关的 URL(电子邮件、Web 地址等)。输入将被验证,以确保包含必需的数据并确保所有输入数据不会受到脚本攻击等。一旦数据经过验证并被保存到数据库中,用户将看到一个响应屏幕,感谢用户的支持并将用户直接连接到主页。此外,用户还可以选择让该站点“记住”他们的姓名和 URL 以备以后访问该站点时使用。

您已经了解它的工作原理了,对吗?每一个方案都尝试细化用户交互的重要方面。例如,上面列出的两个方案表明用户为“anonymous”(匿名用户),这表示这类用户不需要登录或进行其他方式的授权。第二个示例还标识了若干输入值、验证步骤和可选操作。

当然,这只是两个示例;完整的系统需要更多的方案。此外,需要特别注意的是,“用户”不仅仅可以是人,也可以是您的程序需要与其通信的其他应用程序,甚至还可以是您的应用程序的其他部分。例如,一个方案描述主页如何列出最近添加到知识库中的内容,以供任何人查看。此例中的“用户”将是主页自身。还有一些方案描述专家如何查找和回复新问题以及管理员如何更新主题列表并管理系统的其他部分。我已为讨论这个简单的应用程序标识了 20 多种方案。您可以在 DotNetKB 中找到当前列表(以及与此项目相关的所有其他资料)。

至此我们就有了目标声明和一些用户方案。现在,是时候稍憩一下,然后学学一些技术了。我们需要定义应用程序体系结构,这可以帮助我们以“鲜活有效的代码”实际实现方案。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值