ASP.NET应用程序规划与设计(4)

asp.net|程序|规划|设计

 数据访问组件
  
    数据访问组件设计文档描绘与数据存储系统的交互以及与用户界面的交互的所有细节。在有些系统中,数据访问组件实际上是处理过程中各种问题的多个程序集。例如,可能会有一系列业务规则呈现在与数据存储和检索完全独立的用户界面上。在这种情况下,将业务组件与数据访问组件分开实现可能比较明智。
  
    在我们的示例中,实际实现的是两个单独的组件:Message 组件和 DataAccess 组件。如果在支持基于 XML 的数据的传输服务(例如 SOAP Web Service)中进行规划,这种面向消息的实现方案将会特别有成效。
  
    消息组件
  
    消息组件定义一系列用于在各图层之间传输数据的类。这些消息可以作为二进制或 XML 文本数据存在。消息图层的价值在于:保护系统的其余部分,使其独立于数据存储实现方案的具体细节,例如 SQL Server、XML 文件等。此外,通过实现消息图层而不是更复杂的“智能对象”库,我们的解决方案可以更轻松地支持那些不能同时发送数据和类级别逻辑的远程调用服务,例如 XML-SOAP。
  
    下面是一个消息类示例,在该示例中实现了 Topic 消息及其集合:
  
  Public Class Topic
  Private _ID As Integer
  Private _Title As String
  Private _Description As String
  
  Public Property ID() As Integer
  Get
  Return _ID
  End Get
  Set(ByVal Value As Integer)
  _ID = Value
  End Set
  End Property
  
  Public Property Title() As String
  Get
  Return _Title
  End Get
  Set(ByVal Value As String)
  _Title = Value
  End Set
  End Property
  
  Public Property Description() As String
  Get
  Return _Description
  End Get
  Set(ByVal Value As String)
  _Description = Value
  End Set
  End Property
  
  End Class
  
  Public Class Topics
  Inherits System.Collections.CollectionBase
  
  Default Public Property Item(ByVal index As Integer) As Topic
  Get
  Return CType(List(index), Topic)
  End Get
  Set(ByVal Value As Topic)
  List(index) = Value
  End Set
  End Property
  
  Public Function Add(ByVal s As Topic) As Integer
  Return List.Add(s)
  End Function
  
  Public Sub Remove(ByVal index As Integer)
  List.Remove(index)
  End Sub
  
  End Class
  
    注意:如果您已尝试过面向消息的设计,便会了解我们想要使这些消息类系列化,以便在应用程序图层之间轻松地来回发送。幸运的是,.NET 运行时知道如何进行这项操作,而无需我们做过多的工作。但是,当我们学习创建消息的文章时,我们将详细讨论 .NET 运行时如何系列化类,以及我们如何进行操作以使代码中的过程最优化。
  
    在后面实现消息组件和数据访问组件时,文章中将介绍此方法的细节。设计文档将包含一个由所有信息及其属性与数据类型组成的列表。现在,我们只是考虑如何使用此消息方法来封装图层间的数据传输,如何创建一种与本地方案和远程方案配合使用的常规数据服务。
  
    数据访问组件
  
    定义消息类的概念后,数据访问组件可以集中精力处理与数据存储系统直接对话的细节,并以正确的消息格式返回信息。在我们的示例中,这将涉及到使用来自用户界面的请求映射 SQL Server 存储过程,并创建可返回到用户界面进行显示的消息(或消息集合)。
  
    例如,下面是一个数据访问组件的一部分示例代码,该组件将从数据存储中检索单个 Topic 记录,并将正确的消息格式返回到用户界面。
  
  Public Function GetTopicRecord(ByVal ID As Integer) As Messages.Topic
  Dim t As Messages.Topic = New Messages.Topic
  cn = New SqlConnection(secureConnectionString)
  cd = New SqlCommand("GetTopic", cn)
  cd.CommandType = CommandType.StoredProcedure
  cd.Parameters.Add("@ID", ID)
  cn.Open()
  dr = cd.ExecuteReader()
  dr.Read()
  With t
  .ID = ID
  .Title = dr("Title")
  .Description = dr("Description")
  End With
  Return t
  End Function
  
    设计文档将包括一系列用于处理来自用户界面的各个请求的类和方法,并含有有关调用哪个存储过程以及返回何种消息格式的详细信息。同样,我们将在后面主要介绍数据访问图层的文章中讨论此过程的细节。
  
    Web 用户界面
  
    最后,用户界面设计文档将包括完成各种方案所需的所有用户输入和显示。通常来说,用户界面文档包括界面机制的细节以及使用户界面呈现唯一性的图形设计元素。例如,配色方案、字体和总体页面设计,与用于获取搜索查询的正确数据的输入名称和输入数量一样重要。
  
    要使文档简洁,通常在一个与图形设计单独的文档中概要描述机制细节。这是我们将要在示例中做的工作。在后面的一篇文章中,我们将创建一个综合性用户界面文档和实现方案,详细说明每个屏幕的元素和相关操作。在另一篇文章中,我们将处理应用程序有关图形的各个方面,重点讨论作为一种外观服务的级联样式表的使用。
  
    下面是一个典型的用户界面描述,它涉及“主题”编辑方案。
  
    主题输入屏幕
  
    “主题”屏幕将显示所有当前主题(主题 ID 和主题名称)的一个缩略列表,在每个主题旁边还将显示一个“编辑”链接。单击“编辑”链接将会调用关联的主题记录并将其显示在一系列的输入框中。“标题”和“描述”是可编辑的,而“主题 ID”是只读的。用户可以编辑标题和描述,然后按“保存”按钮将更改写入数据存储。输入将被验证。两者都是必需的输入项,“标题”的长度限制为 30 个字符,“描述”的长度限制为 500 个字符。更新完成后,将显示一条响应消息指出已确认更新;如果更新失败,则显示一条消息指出错误状况。
  
    用户还可以删除现有的主题记录,方法是单击列表中的“编辑”链接,审核显示屏幕上的记录细节后,单击“删除”链接。删除完成后,将显示一条响应消息指出已确认更新;如果更新失败,则显示一条消息指出错误状况。请注意,用户不能删除与现有问题或回答相关联的主题。
  
    此外,用户可以完整地添加新主题记录,方法是在初始显示屏幕上单击“新建主题”链接。将显示“标题”和“描述”输入(不显示 ID 输入)并提供一个“保存”按钮。输入将被验证。两者都是必需的输入项,“标题”的长度限制为 30 个字符,“描述”的长度限制为 500 个字符。更新完成后,将显示一条响应消息指出已确认更新;如果更新失败,则显示一条消息指出错误状况。
  
    利用上面的叙述,您可以轻松地实现一个完整的功能屏幕。判断一个好的设计文档的方法是:它能够使读者完成工作,且不会提出额外的问题。最终的用户界面设计文档将包括应用程序中每个屏幕的此类叙述。
  
    小结并付诸行动
  
    我们简要介绍了数据库、中间层和用户界面实现方案的最终设计文档。加上体系结构和初始规划文档,它们形成了我们的完整设计包。在实际的情况中,即使是最小的系统,完成这些文档也至少需要几个小时。对于大型系统,可能需要几周甚至可能几个月的时间。有些人可能会对此有一点挫败感,但是通过事先完成这些工作,您可以在进入项目的编码阶段之前很早就了解完成解决方案面临的几乎所有主要障碍。这样可以减少编写实际代码的时间,并且还可以减少您会遇到的错误和障碍的数量。
  
    在下一篇文章中,我们将讨论使用 Visual Studio .NET 在 SQL Server 中建立数据存储系统的有关细节。我们将定义数据表,创建必需的存储过程,并设置正确的数据访问,以确保任何组件和数据本身之间具有安全可靠的连接。

时间: 2024-08-03 10:33:14

ASP.NET应用程序规划与设计(4)的相关文章

ASP.NET应用程序规划与设计(1)

asp.net|程序|规划|设计   摘要:了解如何规划和设计 ASP.NET 应用程序.本文以一个知识库 Web 应用程序为例,讨论实际应用程序创建实践中最常见的几个因素.       简介       这是一个系列文章,在这个系列文章中我们将逐步详细介绍如何使用 Microsoft ASP.NET 和 Microsoft Visual Studio.NET 来设计.实现和部署典型的 Web 应用程序,以探讨实际应用程序创建实践中最常见的几个因素.我们不仅仅布置一些 Web 窗体,也不局限于只

ASP.NET应用程序规划与设计(2)

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

ASP.NET应用程序规划与设计(3)

asp.net|程序|规划|设计  物理体系结构       确定逻辑层后,考虑物理层也很重要.例如,您可以在同时安装有 SQL Server.Internet Information Server.ASP.NET 和 .NET 运行时的单个实际计算机上实现这个应用程序.这将是一个物理层.但更可靠且可扩展的方法是:在由三个 Web 服务器组成的簇上部署 Web 窗体,在两个应用服务器上部署 .NET 组件程序集,在两个故障恢复模式的 SQL Server 上部署数据库.这样产生的物理体系结构将七

ASP.NET应用程序结构及安全规划

asp.net|安全|程序|规划 通过上一篇文章<规划基本 ASP.NET 应用程序>的学习,有了基本的目的和为解决方案开发的用户方案列表后,您需要开始筹划整体的体系结构.主要目标是标识应用程序的逻辑方面和物理方面,即如何将应用程序拆分为各种有用的部分.在本节中还添加了安全性方面的内容.安全是在规划的"一开始"您就需要考虑的问题,而不是在开发周期中"最后添加"的内容.我们稍后会在本节中详细讨论这个问题. 逻辑体系结构 从逻辑上讲,您需要规划解决方案以标识

不走寻常路 设计ASP.NET应用程序的七大绝招

asp.net|程序|设计 不走寻常路 设计ASP.NET应用程序的七大绝招 随着微软.NET的流行,ASP.NET越来越为广大开发人员所接受.作为ASP.NET的开发人员,我们不仅需要掌握其基本的原理,更要多多实践,从实践中获取真正的开发本领.在我们的实际开发中,往往基本的原理满足不了开发需求,我们更多的要积累一些开发技巧,本文就向大家介绍一些实用技巧,希望对大家的开发有所裨益. 1. ~ 的用法 一般的情况下,我们是使用./../ 这样的相对路径来确定和规划我们的资源(比如图片.资源文件),

使用更精简的代码保证ASP.NET应用程序的安全

asp.net|安全|程序 Michele Leroux Bustamante IDesign:.NET Design and Business Solutions 2003 年 10 月 适用于    Microsoft ASP.NET Whidbey 摘要学习 ASP.NET Whidbey 及其新的配置工具.控件和组件如何支持用于验证用户和管理受保护资源的完整系统. 下载 ASPNETWhidbeySecuritySample.msi.请注意在示例文件中程序员的注释使用的是英文本文中将其译

使用更精简的代码保证 ASP.NET 应用程序的安全

asp.net|安全|程序 使用更精简的代码保证 ASP.NET 应用程序的安全Michele Leroux BustamanteIDesign:.NET Design and Business Solutions 2003 年 10 月 适用于: Microsoft ASP.NET Whidbey 摘要:学习 ASP.NET Whidbey 及其新的配置工具.控件和组件如何支持用于验证用户和管理受保护资源的完整系统. 下载 ASPNETWhidbeySecuritySample.msi.(请注

优化ASP.NET应用程序性能研究与探讨

asp.net|程序|性能|优化 摘 要 本文从页面.数据访问.字符串操作三方面探讨如何提高ASP.NET应用程序的性能,并提供了几种测试工具用于检测ASP.NET网站性能. 关键词 ASP.NET 应用程序 性能 优化 网站的性能对于ASP.NET程序开发人员来说非常重要.一个优秀的网站虽然有美观的页面设计,完善的服务功能,但是打开网页时有长时间的延迟,用户最终将会无法忍受.尤其对于大型的电子商务网站而言,每秒钟有数万用户同时访问,没有良好的网站性能,根本无法满足庞大的需求. ASP.NET作

基于ASP.NET技术的驾校网页设计

asp.net|设计|网页|网页设计 摘 要 本文以驾校管理系统为例,介绍如何利用asp.net和SQL server 2000来进行动态网页设计,以满足用户对数据库实时更新以及查询的要求. 关键词 asp.net; c#; SQL server 2000 引言 近年来,随着Internet的迅速发展以及网页制作技术的日臻完善,驾校信息管理系统软件的设计也日趋简单化和规范化.这里我们将采用asp.net动态网页技术,通过编写c#脚本语言对SQL server 2000数据库进行操作,以实现系统中