第26章个人博客博客是当前非常流行的一种网络交流方式,是继E-mail、BBS、IM(即时通讯,如QQ和MSN)后出现的第4种网络交流方式。它的英文名称为Weblog,也可称为blog,是在网络上发布和阅读的流水记录,是一个快速成长的网络活动。博主(blogger)即撰写blog的作者,也就是博客的管理人,拥有添加和管理文章、相册、图片以及管理评论等权限。博客系统是用户通过互联网来表达各种思想的虚拟场所。本章按照软件工程思想,采用ASP.NET技术,从需求分析、数据库设计、类设计到编码实现,较完整地介绍了个人博客系统的开发过程。章节内容26.1需求分析26.2数据库设计26.3类的分析与设计26.4博客首页部分的实现26.5个人页面部分的实现26.6博客系统管理页面部分的实现26.7小结26.1需求分析1.用户角色分析角色名称权限游客浏览博客信息,发表评论和留言等博主拥有游客的权限,同时可以管理自己的文章、照片、评论、自己的信息等系统管理员用户管理、文章信息管理、专栏管理、评论管理等管理职责26.1需求分析2.功能需求分析功能类别子功能角色用户管理模块注册游客登录博主,系统管理员修改资料博主文章管理模块添加博主删除博主,系统管理员评论管理模块发表评论游客,博主,系统管理员删除博主,管理员续表功能类别子功能角色照片管理模块添加照片博主删除博主,系统管理员系统管理模块管理用户系统管理员管理博客分类系统管理员统计用户排行榜系统管理员统计24小时内单击数最多的文章系统管理员统计24小时内最近更新的用户系统管理员统计用户的文章数、评论数、单击数和积分系统管理员,博主26.1需求分析26.1需求分析博主游客系统管理员文章管理评论管理博客分类管理用户管理最热文章最近更新用户博客信息用户排行个人信息管理登录注册相册管理用户26.1需求分析博主系统管理员添加文章修改文章删除文章浏览文章游客文章管理用例图博主游客系统管理员添加评论删除评论评论管理用例图26.1需求分析相册管理用例图博客分类管理用例图博主游客系统管理员浏览相册添加相册修改相册删除相册系统管理员添加博客分类删除博客分类修改博客分类名称26.1需求分析用户管理用例图博客信息管理用例图系统管理员添加用户删除用户系统管理员文章数评论数相册数单击数积分26.2数据库设计表名称描述Blog_User用户表:存储博客系统的所有用户Blog_BlogCategory博客分类表:存储系统的博客分类Blog_Post文章表:存储所有文章Blog_PostCategory文章分类表:存储用户的文章分类Blog_Comment评论表:存储所有的评论Blog_Album相册表:存储用户的相册Blog_Photo照片表:存储相册里所有的照片26.2数据库设计Blog_User属于Blog_PostBlog_PostCategoryBlog_BlogCategoryBlog_CommentBlog_AlbumBlog_Photo包含包含属于属于n11nn111nnnnn126.3类的分析与设计26.3类的分析与设计26.4.1母版页的应用26.4.2内容页的实现1.博客首页2.文章显示3.登录4.注册26.4.3用户自定义控件的实现由博客首页可以看到,本系统中使用了大量用户自定义控件,这些控件都应用在页面左边的导航栏中,通常用于实现系统中的信息统计功能。它们的文件后缀名均为.ascx,分别用于实现博客分类、最近更新、用户登录、最热文章和用户排行等功能。26.5个人页面部分的实现26.6博客系统管理页面部分的实现博客系统管理即为博客管理员所具有的功能,包括用户管理、博客的分类管理、评论管理。管理员只能对文章、用户、评论进行删除,一般情况下系统管理员不能删除博客内容,删除功能主要由用户实现,因为这是他们应有的权限。系统管理员之所以拥有这项权限是因为他们要维护博客系统的“秩序”,防止一些不健康、不合法的用户、文章和评论存在。在该系统中,系统管理员的功能由4个分页面组成,分别为CategoryManage.aspx、CommentManage.aspx、PostManage.aspx和UserManage.aspx,这4个页面的实现方法类似,因为完成的功能相似,都用到了各自类中的属性和方法,因此只需掌握其中的一种即可。26.7小结本章按照软件工程的思想和方法,开发了一个具有一定使用价值的的博客系统。下面简单总结开发的过程。首先对系统进行需求分析,通过功能需求列表和用例图分析出博客系统对于用户和管理员所应实现的功能。然后进行系统设计,设计内容包括数据库的设计和各个模块的设计。其中,在数据库设计中要设计出系统有哪些主要的表及表之间的关系,每个表包含哪些字段;在模块设计中,要设计出系统有哪些主要类及类之间的关系,每个类包含哪些主要属性和方法。对于数据库设计和类设计,分别用ER图和类图来描述。最后进行编码,各个功能模块通过代码实现。在实际开发中,编码实现之后还需要进行测试和维护。