第28章制作一个ASP.NET留言本在了解了一些基本的模块的开发之后就能够开发一些基本的应用,这些应用可以看作是很多的模块组成应用,在开发过程中可以应用现有的模块进行应用的开发。留言本是最基础Web应用,也是初学者最常学习的Web应用。28.1系统设计系统设计在项目开发中是非常重要的,在系统设计中,需求分析也是最为重要的。需求分析规定了开发小组或团队以何种方式进行模块的开发和编码,也规定了客户最基本的需求,如果连客户最基本的需求都没有弄清楚,那么这个系统必然是失败的。28.1.1需求分析需求分析是系统设计中最为重要的组成,在任何系统的开发中都需要进行需求分析,虽然ASP.NET留言本是一个很小的项目,但是还是需要进行需求分析。需求分析并不因为项目的大小而有任何区别,需求分析更多的任务是告诉开发团队客户想要的是什么、客户需要的是什么、团队怎样进行模块划分和开发等等。虽然在ASP.NET留言本开发中需求分析显得微不足道,但是随时保持编写需求分析是一个非常良好的习惯。需求分析是软件工程中的一个概念,指的是在建立一个新的或改变一个现存的电脑系统时描写新系统的目的、范围和定义时所要做的所有的工作。简单的说需求分析也就是分析客户要的是什么、怎么做、做完了怎么办。对于ASP.NET留言本项目而言,其需求分析可以编写如下:1.目录需求分析通常情况下是一个单独的需求分析文档,需求分析文档的格式很像一本书或论文的格式,其示例目录如下所示。1.引言:通常是需求分析文档的引言,用户描述为何编写需求分析文档。1.1编写目的:编写目的用户描述为何编写需求分析文档。1.2项目背景:编写相应的项目背景。1.3定义缩写词和符号:编写在需求分析文档中定义的缩写词或符号等。1.4参考资料:用户描述在需求分析文档中所参考的资料。2.任务描述:定义任务,通常情况下用于描述完成何种任务。2.1开发目标:定义开发目标,包括为何要进行开发。2.2应用目标:定义应用目标,包括系统应用人员要实现什么功能,以及有哪些应用等。2.3软件环境:用于定义软件运行的环境。3.数据描述:用户进行数据库中数据设计开发的描述。这里只是简单的介绍了需求分析文档编写中的目录的一些基本格式,需求分析文档通常是一个单独的文档,而需求分析文档需要解决客户需要的是什么,如何进行协调开发等。对于不同的项目其需求分663析文档其目录并不限于此格式,对于小型的项目的需求分析可以灵活更改。2.引言在需求分析文档中,通常需要编写引言用户描述为何编写需求分析文档和需求分析文档的作用,对于ASP.NET留言本而言,其引言可以编写如下:在对客户现有的应用模块的调查和了解的基础上,用户希望能够在现有的应用中加上留言本的功能以便能够及时的和用户进行信息反馈和调查。此规格说明书在详细的调查了客户现有的应用模块和基本的操作流程后进行编写,对留言本功能进行了详细的规划、设计,明确了软件开发中应具有的功能、性能使得系统的开发人员和维护人员能够详细清楚的了解软件是如何开发和进行维护的,并在此基础上进一步提出概要设计说明书和完成后续设计与开发工作。本规格说明书的预期读者包括客户、业务或需求分析人员、测试人员、用户文档编写者、项目管理人员等。3.项目背景项目背景用于描述该项目在何种背景或何种条件下进行开发的,以及为何要进行现有的项目的开发或升级,ASP.NET留言本的项目背景可以编写如下:由于现在信息化的迅猛发展,原有的软件项目已经不能满足现今越来越多的需求,更多的厂商都将软件应用基于互联网进行开发和使用。相对于原有的C/S软件开发而言,基于互联网的软件开发具有部署快、成本低、维护性低的特性,对于企业而言可以使用基于互联网的应用进行信息的发布和反馈。对于原有的系统而言,用户必须下载客户端才能够与企业内部数据进行通信,这样难免会造成使用不便和安全性的问题,因为用户需要进行软件下载。如果用户并没有连接到网络,就不能够及时的了解用户的信息也无法下载现有的程序,如果用户将现有的程序进行反编译等操作也会造成安全性的问题。随着互联网的发展,越来越多的用户已经可以使用互联网进行信息交互,也促成了越来越多的基于浏览器的应用程序,企业可以使用服务器/客户端的开发模型进行系统的开发,ASP.NET留言本就是为了解决信息交互复杂和交互困难的问题的而诞生的。为了解决现有的企业中企业与用户信息反馈困难等情况,让企业能够更加方便的同用户进行信息交互,在征求了多方意见的情况下进行此ASP.NET留言本的开发,以便解决现有的企业难题。4.任务描述任务描述用于描述客户的任务,以及基本的如何完成任务的描述,ASP.NET留言本的任务描述可以编写为如下所示:为了加强现有的企业和用户之间的信息交互,也解决企业和用户的沟通不便的情况,现开发基于.NET平台的留言本应用程序,用户能够使用留言本进行信息的反馈和调查,能够及时的获取用户的相关意见或信息的数据。注意:任务描述作为章节的概述,在软件规格说明书中,该章节的其他章节将需要对概述进行更详细的说明。5.开发目标ASP.NET留言本的开发目标是为了加强现有的企业和用户之间的信息交互,解决企业和用户的沟通不便的情况,进行企业和用户之间的数据整合和交互。6.应用目标ASP.NET留言本的应用目标是为了能够让企业能够获取用户的信息,这些信息包括用户的意见、反馈的信息以及用户数据等,同时企业也能够通过留言本进行基础的意见调查。664需求分析是系统设计中最为重要的一部分,如果在系统设计初期需求分析设计的非常好也就方便了后期的开发和维护。28.1.2系统功能设计ASP.NET留言本是企业内部的一个信息交互平台,用户可以在相应的主题的留言本之内进行信息发布和反馈,用户还能够通过留言本进行信息的交互。在留言本的开发过程中需要确定基本的系统功能,这些基本的系统功能包括如下:1.留言信息浏览用户可以在相应的留言页面进行留言信息的浏览,包括对企业产品的意见以及功能反馈等,在留言页面中按照用户的习惯可以进行按回复查看,按时间查看等选项。用户还能够通过导航栏进行不同留言板的跳转。管理员可以在留言信息浏览页面进行信息回复,可以对用户的疑问和意见进行反馈,管理员还能够删除不良的留言和屏蔽相关用户等操作。2.注册登录功能在用户进行留言之前,必须进行注册和登录等操作,如果用户没有登录就不能够进行留言操作,用户登录或注册后可以通过留言索引自己的留言并进行留言修改或增加。3.用户留言索引登录的用户可以索引自己的留言,对于自己较早的留言能够进行查看,这样就方便了用户进行信息整合,管理员也能够通过用户的索引相应的用户信息并进行用户管理。4.管理员留言管理管理员对于不良的留言进行删除、屏蔽等操作,当用户进行了不良信息发布后管理员能够在留言页面进行删除操作。28.1.3模块功能划分当介绍了系统所需实现的功能模块后并执行了相应的功能模块的划分和功能设计,可以编写相应的模块操作流程和绘制模块图,ASP.NET留言本总体模块划分如图28-1所示。图28-1描述了系统的总体模块功能划分,其中包括前面章节中讲到的留言信息浏览、用户信息注册、用户登录操作、用户留言索引以及管理员留言管理等操作,其中可以将用户注册、登录、信息浏览和索引等操作进行划分,如图28-2所示。665图28-1系统总体模块功能划分图28-2用户操作模块流程图用户在进行页面访问时,可以呈现相关的留言信息,当用户进行留言时就必须登录,如果用户事先没有任何账号信息可以进行注册,注册完成后会跳转到登录页面进行登录操作,如果用户已经存在账号就能够直接登录进行操作。在用户注册或登录后就可以进行留言的索引和留言的添加,留言的索引能够方便用户查询长时间之前的自己的留言信息,例如用户进行留言后一个月再次访问企业网站,就会很难搜索到自己的留言,而通过索引能够方便的索引到自己的留言信息。如果用户没有任何留言可以选择添加留言,添加后的留言能够提交给管理员进行审核并回复。对于管理员而言,管理员需要查看留言并进行留言的管理,在管理员管理之前也需要进行登录操作,以验证管理员身份的正确性和权限。当管理员验证通过后可以进行相应的管理操作,管理员操作流程图如28-3所示。图28-3管理员操作模块流程图在管理员进行管理之前同样需要进行身份验证,否则会造成系统的安全性问题,管理员只有在身份验证之后才能够进行管理回复和留言的删除操作。66628.2数据库设计在ASP.NET留言本的功能模块描述中,可以看出在数据库的设计中包括多个表,这些表包括留言表、留言分类表、用户信息表、管理员信息表等表,这些表用于实现前面小节中系统设计所规划的系统功能。28.2.1数据库的分析和设计在前面的系统设计中已经详细的了解了系统的功能,在数据库的设计中,需要充分的了解系统的功能并进行合理的抽象再进行数据库设计,数据库设计图如图28-4所示。图28-4数据库设计图其中初步的为数据库中的表进行设计,这里包括四个表,作用分别如下:用户信息表:用于存放用户的信息并进行用户信息的管理。管理员信息表:用于存放管理员的信息并在管理员登录时进行数据验证。留言信息表:用于存放留言信息。留言分类表:用于进行留言分类。其中留言信息表和留言的分类表用于描述留言项目,一个企业网站不只包含一个留言页面,当企业有多个产品时,需要考虑到留言模块的扩展性,使用留言分类可以进行相应的功能的扩展。在ASP.NET留言本中最为重要的就是留言信息表和留言分类表,其中留言信息表的字段可以归纳如下。留言编号:用于标识留言本的编号进行索引,为自动增长的主键。留言标题:用户留言的标题。留言名称:用户的名称。留言时间:用户留言的时间。留言内容:用户留言的内容。回复标题:管理员回复留言的标题。管理员名称:管理员的名称。回复时间:管理员回复留言的时间。回复内容:管理员回复的内容。所属留言分类:用户留言所属的分类。所属用户:留言所属的用户ID。上述表用于描述用户留言信息,用户留言表中的信息为最主要的数据,在进行留言呈现时呈现的就667是此数据表中的数据。同时为了能够将留言数据进行分类,需要创建留言分类表,其字段可以描述如下所示。分类编号:用于标识留言本分类的编号,为自动增长的主键。分类名称:用于描述分类的名称,例如“客户服务”等。留言分类和留言表一起描述留言项目,这样能够增加留言本系统的扩展性,管理员可以创建多个留言分类进行留言管理。例如现在企业有一个“皮鞋”产品,可以创建一个主题为“皮鞋”的留言本,但是如果企业有一天多了一个产品,那么就需要重新制作留言本,重新制作的留言本在数据和管理上都需要重新操作。而如果将一个留言本进行分类处理,当有新产品出现时就能够很好的扩展。在进行留言前,用户必须要登录,如果没有登录就必须要注册,这里可以使用注册模块进行注册功能的实现,注册模块中用户表的字段可以归纳如下。用户名:用于保存用户的用户名,当用户登录时可以通过用户名验证。密码:用于保存用户的密码,当用户使用登录时可以通过密码验证。性别:用于保存用户的性别。头像:用于保存用户的个性头像。QQ/MSN:用于保存用户的QQ/MSN等信息。个性签名:用于展现用户的个性签名等资料。备注:用于保存用户的备注信息。用户情况:用于保存用户的状态,可以设置为通过审批和未通过等。用户在注册后就能够进行登录,登录后的用户将能够通过留言页面进行信息发布和反馈。在用户发布信息后,管理员可以对这些信息进行管理,同样管理员在进行管理时也需要进行登录操作,其字段可以归纳如下。管理员编号:用于标识管理员信息,为自动增长的主键。管理员用户名:用于标识管理员用户名。管理员密码:用于标识管理员的密码,通常情况下和管理员用户名一起进行身份验证。管理员要进行操作前需要进行登录并通过数据进行身份验证,验证通过后才能够进行相应的数据更改,在对数据库进行基本的分析后,就能够创建相应的数据表进行数据存储。28.2.2数据表的创建创建表可以通过SQLServerManagementStudio视图进行创建也可以通