1 引言
1.1 概述
博客是一种正处于快速发展和快速演变的互联网应用,也是一种表达个人思想,内容按照时间顺序排列,并且不断更新的出版方式。Pvra创始人EvanWilliams认为博客概念主要体现在三个方面:频繁更新(Frequency)、简洁明了(个人网站首页一般做什么Brevity)和个性化(Personality)。可见,博客是一种新的信息共享形式,主要针对个人信息共享而发展起来的一种当今较为流行的沟通方式。简易博客网站正是一种用于个人信息发布与交流的专业网站,提供最基本的交流功能和个性化设计。以最简明的方式提供对个人信息的管理功能,以达到用户方便地相互交流思想感情的目的。
1.2 设计背景
计算机科学不断的发展,给信息共享提供了有利的客观条件。随着数字信息的全球化,对信息共享的需求日益增大。现在,不仅企业、集团、单位需要共享自身的信息,个人信息共享的需求也是迫不急待。数字化的世界中,人与人的交流方式和传统的交流方式相比有所改变。博客
网站是适应这种人际交流方式的改变,迎合个人信息共享的需求,并在此基础上快速发展起来的一种个人思想感情表达方式。博客网站的出现,给Internet世界的个人交流带来了极大的方便。
1.3 设计意义
当今时代是计算机时代,人们的工作大部分都依赖计算机。计算机的功能仍在不断的增强,应用范围在不断扩大。在这种形势下,人与人之间的交流也在慢慢地计算机化。博客是发布个人信息、表达个人思想感情的一种有效方式,即博客网站就个人信息发布的场所,是人与人沟通的一个聚集地。因此,博客网站不仅需提供用户发布个人信息的功能,还需提供用户浏览信息的功能,查看用户所发布的个人信息的功能等。因此,博客网站的建设有其不容忽视的特殊意义。
1.4 设计方法
本设计采用asp(C#)技术进行开发,Asp技术相对于传统的asp技术有着绝对的优势,大大减化了程序员的代码量,对程序员开发WEB应用程序提供了完备的技术支持。的跨
平台性,也使得开发出来的WEB应用程序具有更好的扩展性,能够运行于不同的操作平台之下。
后台数据库采用SQL Server 数据库,该数据库与同属微软产品,在接口、性能支持上比其它数据库达到更好的效果。
2 需求分析
2.1 调查研究
2.1.1 注册用户需求
注册用户需求主要有:发表文章,所发表的文章能被他人阅读评论。对发表的文章,有以下的管理功能:修改文章基本信息(标题、类型、内容),删除文章,查看文章的评论,删除文章的评论等。文章评论,因为是网站游客或站内的博友阅读文章之后所发表的,所以注册用户对文章所对应的评论只能进行删除操作,此为用户的基本功能。注册用户个人基本信息,包括姓名、出生年月、省份、城市等,是用户自己维护的,即用户可进行增加、修改、删除操作。
2.1.2 普通用户需求
对于普通用户,网站系统需要提供注册功能,以便注册成为网站用户。此外,需要提供普通用户浏览网站内文章、发表文章评论、浏览注册用户基本信息等功能。同时,查看文章浏览和网站内用户信息时,需要提供查询功能,以方便快速到想要的东西。
2.1.3 管理员需求
网站运行,需要一定维护功能。系统需要提供网站管理员较强大的后台管理功能,包括:用户管理、文章管理、评论管理、发布站内公告等。
2.2 操作流程
1)注册用户输入登录名与密码,输入正确后登录入自己的个人空间。
2)在个人空间内(个人首页),首先加载个人的基本信息和站内注册信息。判断用户是否有文章,有就显示出用户最近发表的一篇文章。再判断该文章是否有评论,若有则显示出文章相关讨论的最近三条。点击可以查看该文章的所有讨论。
3)个人主页提供个人的主要功能有:
A 更改相片,点击可以更改用户出现在个人主页的相片。
B 首页,点击可以返回网站的首页。
C 管理文章,点击管理发表的所有文章。
D 发表文章,点击发表用户文章。
E 管理评论,点击管理所有文章对应的评论,当然在此只有删除功能。
F 修改密码,点击修改用户的登录密码。
G 退出登录,从自己的个人退出返回网站首页。
H 编辑,点击可以编辑用户的基本信息。
4)普通用户登录,直接通过HTTP输入本站的网站直接访问。
5)对于普通用户,可以通过注册功能注册成网站用户。
6)登录网站,提供站内文章阅读和博客浏览,条件查询文章等功能。网站管理员管理网站功能,直接管理站内的所有用户、站内的所有文章、站内的所有评论信息、管理文章的类型(添加、删除)、添加或删除网站管理员及发布站内公告等功能。
3 概要设计
3.1  模块划分
通过对网站系统需求的调查研究,确定网站系统应该对不同的用户提供不同的功能。博客网站主要用于共享个人信息,沟通Internet上人与人之间的感情。经过分析,确定本网站的用户主要分为两种:注册用户和普通用户。考虑到网站的维护问题,决定提供一个管理员权限――网站管理员。因此,本系统主要分为三大模块:注册用户、普通用户、管理员。
3.2  功能模块初步设计
3.2.1 注册用户模块
注册用户功能包括:发表文章、管理文章、管理文章评论等。
(1)发表文章。系统将文章标题、摘要、内容、人气、类型、类型编号、发表时间、发表文章作者、发表文章作者ID录入数据库。
(2)管理文章。用户管理文章的功能主要为修改和删除。系统将用户文章的基本信息显示出来,既可在查看文章详细信息之后,执行修改和删除操作,又可直接对文章基本信息执行删除操作。修改文章信息即修改文章的标题、摘要、内容、类型;删除操作,将文章的相关信息从数据库删除。
(3)管理文章评论。用户管理文章评论的功能是删除评论。系统将用户文章的基本信息显示出来,按不同的文章管理文章评论。根据文章编号,显示文章的评论信息,用户按自己的意愿删除评论,即从数据库里完全删除该条评论的相关信息。
3.2.2 普通用户模块
普通用户功能包括:阅读站内文章、发表文章评论、浏览站内博客信息等。
(1)阅读站内文章。系统还提供查询文章功能,普通用户可根据文章的标题、摘要、内容(任意部分)、类型、文章的作者等查询出相关文章信息。阅读文章内容,查看文章的详细信息,
并发表文章评论。
(2)发表文章评论。查看文章详细信息即可发表。系统将录入评论的详细信息:发表评论的昵称(非管理员用户均为“网络游客”,管理员用户为该用户的真实姓名)、评论的内容、评论时间、评论文章ID
(3)浏览博客基本信息。博客的基本信息指在网站内注册用户的基本信息,包括站内注册信息、个人基本信息、、发表的文章、文章的相关评论信息等。
3.2.3 管理员模块
管理员功能包括:管理站内的用户、文章、评论和管理站内公告。
(1)管理用户。管理员对用户管理操作即为删除。系统提供搜索功能,管理员可以通过用户登录名、真实姓名、出生年月等定位到具体用户。执行删除操作,即将用户的注册信息、基本信息、等完全从数据库删除。删除之后,该管理员用户则和普通用户一样。但是,他所发表的文章仍然存在数据库中。
(2)管理文章。管理员对文章的管理操作为删除。系统提供搜索功能,管理员可通过文章标题、摘要、内容(任意匹配)、类型、作者查询具体文章,然后执行操作。管理操作一旦执行,该文章所对应相关信息就从数据库里删除。管理员对文章的管理,还包括对文章类型的管理,即添加和删除文章类型。
(3)管理文章评论。管理员对评论管理直接操作数据库表“Remark_info”,系统显示所有评论相关信息,根据需要删除评论信息。
(4)管理公告。管理员根据网站的需要添加和删除网站内公告。
4 系统测试
4.1 遇到的问题
在系统测试过程中,遇到的问题主要如下:
5.1.1 相片正常显示问题
用户在注册时上传相片是可选项的,如果用户上传相片刚加载显示,如果用户不想上传相片,系统会自动加载默认的图片。在此,系统获取用户相片的绝对路径存入数据库。在加载显示时就不能正常显示出用户上传的相片来。
5.1.2 文章显示后的版面问题
在用户主页上,要显示出用户最新发表的一篇文章。这一篇文章的显示是通过控件Label,当从数据库里读出文章的内容时,就出现文章的内容全部显示成一行,而把对应的布局表格拉得很宽,直接影响界面美观。
5.1.3 实现搜索功能时遇到问题
在实现搜索功能时,所用的查询语句是变化的。信息的显示采用分页显示方式,在翻页时需要绑定的查询语句必须和前面的查询语句一致,否则就会出错。在查询的时候,用一种条件查询出的相关信息有多页,翻到第二页或其他的页(非第一页),此时,如用另一种条件来查询相关信息,系统就会出错。这两个问题都是做设计过程中遇到的比较棘手的问题。
4.2 解决问题的方法
下面针对系统测试过程中遇到的问题,采用相关解决方法:
5.2.1 相片显示问题
用户在注册时相片无法显示出来,是因为在编程时,系统存储图片是通过获取图片的绝对路径并将其存入数据库来实现的。用户在其它的计算机注册,此计算机上并没有对应的文件,所以无法正常显示。而且,这样对于系统的移植性也不好,在将系统移植到其他计算机上时,以前的注册用户的图片信息是不能显示出来的。因此,系统存储图片时通过获取图片的相对路径,将此相对路径存入数据库就解决问题。
5.2.2 文章显示后版面问题
文章用控件Label显示,Label属性中的HeightWidth是控制它的高和宽。如果不设置这两项属性,Label的高,固定一行文字大小的高度;Label的宽,是通过要显示文字的字数而定,即文字多Label的宽度就宽,文字少Label的宽度就窄。将数据库里面读出来的文章信息内容全部显示在一行时,出现改变版面的问题。将Label的属性中的HeightWidth均设置成100%。那么,以文章内容显示时,Label就会按其所在的表格的宽度自动的换行,从而可以解决该问题。
5.2.3 实现搜索功能时遇到问题
搜索功能的实现是在显示全部用户信息和文章信息的页面的DataGrid中。因此DataGrid必须有分页功能,因为将所有用户信息和文章信息显示在很张的一页上面是不可能的。根据不同的条件查询,需要查询条件动态的变化并且如果要翻页时,前面的查询条件还必须被保存下来才能在翻页时正确地将数据绑定到DataGrid上显示出来。在此问题上,将数据绑定函数定义成带参数的函数,所传的参数是 Sql查询语句,考虑到要保留上次查询语句用一个Session变量来保存Sql查询语句。当查询条件变化时就重写该Session值,在翻页时也可以正确的绑定到DataGrid显示出来。翻页后,改变查询条件查询时,系统会出现当前页面的CurrentPageIndex出错的问题,在条件改变翻页之前,把DataGrid的当前面设置为CurrentPageIndex=0,就可以很好地解决这个问题

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。