1、 毕业设计论文(报告)题 目:个人博客系统学 号: 姓 名: 专 业: 计算机信息管理 班 级: 指导教师: 2011年 5 月计算机信息管理 专业毕业设计或实践任务书姓名: 班级: 学号: 一、 设计或实践题目:个人博客系统的设计 二、 内容及要求1. 利用ASP.NET开发个人博客系统2. 普通用户可以进行文章的阅读、评论,留言3. 管理员拥有该博客的所有管理权限 三、 完成形式论文加实例(A4打印) 四、系(部)审核意见: 指导教师: 发题日期:2010 年 12 月 10日 完成日期:2011 年 5 月 10 日摘要 博客可以说是继E-mail、BBS、ICQ(IM)之后出现的第四种
2、网络交流方式。它是英文单词Blog的音译,是WebLog(网络日志)的缩写。博客最主要的应用有3方面:一是新的人际交流方式;二是以个人为中心的信息摘选和知识管理;三是以个人为中心的传播出版。其中,尤以具有鲜明个人特色的传播出版而引人瞩目。以个人为中心的博客,以独特的视角、敏锐的观察力、逐渐冲击着传统媒体,尤其是新闻界多年形成的传统观念和道德规范。随着博客人数的增加,Blog作为一种新的生活方式、新的工作方式和新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构。网络信息不在是虚假不可验证的;交流和沟通更有明确的选择和方向性;单一的思想和群体的智慧结合变得更加有效;个人出版变成人
3、人都可以实现的梦想。Blog正在影响和改变着我们的生活。关键词:博客、网络、沟通 AbstractBlog can be said that following the E-mail, BBS, ICQ (IM) that occur after the fourth network communication. It is the English transliteration of the word Blog is WebLog (blog) abbreviation. The application has 3 main blog: First, the new way of inter
4、personal communication; second information on an individual as the center excerpt and knowledge management; Third, the spread of individual-centered publication. Among them, especially with the distinctive characteristics of the spread of personal publishing and attention. Individual-centered blog,
5、with a unique perspective, keen powers of observation, the gradual impact on the traditional media, especially the traditional concept of shape over the years the media and ethics. With the increasing number of blog, Blog as a new lifestyle, new ways of working and new ways of learning has been acce
6、pted by more and more people, and change the traditional networks and social structure. Network information can not be proven not to be false; exchange and communication more clear choice and direction; single combination of ideas and wisdom of groups become more effective; personal publishing into
7、everyone can dream. Blog is affecting and changing our lives.Key Words:blog、Internet、Communication西安航空技术高等专科学校计算机工程系西安航空技术高等专科学校计算机工程系目录1.绪论11.1 系统开发背景11.2课题研究的意义12. 系统分析22.1 需求分析22.1.1需求分析概述22.1.2系统功能模块图22.2 WEB开发技术方案论证32.3 系统开发模式方案论证42.4 数据库方案论证42.5 开发工具方案论证43. 系统设计531 系统总体设计方案532系统完成任务63.3 运行环境64
8、.数据库设计74.1数据库概要设计74.2数据库逻辑设计94.3数据库物理设计105.系统实现135.1普通用户进入的主页135.2普通用户阅读文章对文章进行评论145.3普通用户对管理员进行留言或查看管理员回复的留言165.4管理员登录界面175.5后台文章管理界面185.6后台添加文章205.7文章类别管理215.8文章评论管理215.9链接管理225.10留言管理225.11管理员进行密码修改236.系统测试246.1 测试的介绍246.2 测试的原则246.3 软件测试的方法256.4 测试用例的设计256.5 测试结论26结束语261 不足之处与改进261.1 权限分配261.2 界
9、面美观化262整体结论27致谢28参考文献291.绪论1.1 系统开发背景随着计算机技术的发展和普及,blog得到了极大的发展。Blog,是Weblog的简称。blog是一种新的生活方式、新的工作方式、新的学习方式和交流方式。它是继E-mail、BBS、ICQ、之后出现的第4种网络交流方式。Blog主要应用于3个方面:一是新的人际交流方式;二是以个人为中心的信息摘选和知识管理;三是以个人为中心的传播出版。blog作为个人的一种学习工具,简单易用,吸引人的兴趣。Blog在教育方面得到了很大的发展,它将互联网从过去的通讯功能,资料功能、交流功能等进一步强化,使其更加个性化、开放化、实时化、全球化,
10、把信息共享发展到资源共享、思想共享、生命历程共享。Blog已经成为一种继课件、积件、资源库、教育主题网站等信息化教学模式之后,新的网络应用模式。它是应时代的需求而兴起的,也是应时代需求不断进步的。1.2课题研究的意义随着Blog人数的增加,Blog作为一种新的生活方式、新的工作方式和新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构。它使交流和沟通更有明确的选择和方向性;单一的思想和群体的智慧结合变得更加有效;个人出版变成人人都可以实现的梦想。Blog正在影响和改变着我们的生活。Blog是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩
11、的个性化展示于一体的综合性平台。展示丰富的个性化,对Blog功能的要求自然更高,新一代具有更多、更新、更全功能的Blog急需走进舞台。2. 系统分析2.1 需求分析2.1.1需求分析概述该博客系统可以实现一下功能:普通用户进入系统可以进行文章的阅读、评论、给管理员留言;管理员可以进行文章的添加、删除、修改,对文章类别的增、删、改,对读者留言进行回复、删除,对友情链接进行添加、删除、修改,对管理员密码进行修改。2.1.2系统功能模块图2.2 WEB开发技术方案论证Web服务从由简单网页构成的静态服务网站,发展到可以交互执行一些复杂步骤的动态服务网站,这些服务可能需要一个Web服务调用其他的Web
12、服务,并且像一个传统软件程序那样执行命令。这就需要和其他服务整合,需要多个服务能够一起无缝地协同工作,需要能够创建出与设备无关的应用程序,需要能够容易地协调网络上的各个服务的操作步骤,容易地创建新的用户化的服务。 微软公司推出的.NET系统技术正是为了满足这种需求。.NET将Internet本身作为构建新一代操作系统的基础,并对Internet和操作系统的设计思想进行了延伸,使开发人员能够创建出与设备无关的应用程序,容易地实现Internet连接。 .NET系统包括一个相当广泛的产品家族,它们构建于XML语言和Internet产业标准之上,为用户提供Web服务的开发、管理和应用环境。.NET系
13、统由以下5个部分组成。 .NET开发平台 .NET开发平台由一组用于建立Web服务应用程序和Windows桌面应用程序的软件组件构成,包括.NET框架(Framework)、.NET开发者工具和ASP.NET。 .NET服务器 .NET服务器是能够提供广泛聚合和集成Web服务的服务器,是搭建.NET平台的后端基础。 .NET基础服务.NET基础服务提供了诸如密码认证、日历、文件存储、用户信息等必不可少的功能。 .NET终端设备 提供Internet连接并实现Web服务的终端设备是.NET的前端基础。个人计算机、个人数据助理设备PDA,以及各种嵌入式设备将在这个领域发挥作用。 .NET用户服务
14、能够满足人们各种需求的用户服务是.NET的最终目标,也是.NET的价值实现。在这5个组成部分中,.NET开发平台中的.NET框架,是.NET软件构造中最具挑战性的部分,其他4个部分紧紧围绕.NET框架来进行组织整合。.net 即DotNet。 结论现在.NET非常的流行,而ASP.NET更是好用,所以开开发过程中,全程使用了ASP.NET作为开发平台。2.3 系统开发模式方案论证B/S,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。客户机上只要安装一个浏览器,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实
15、现,但是主要事务逻辑在服务器端实现,浏览器通过Web Server 同数据库进行数据交互。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。B/S模式以Web服务器为系统的中心,客户机通过其浏览器向Web服务器提出查询请求(HTTP协议方式),Web服务器根据需要向数据库服务器发出数据请求。数据库则根据查询或查询条件返回相应的数据结果给Web服务器,最后Web服务器再将结果翻译成为HTML或
16、各类脚本语言的格式,并传送给客户机上的浏览器,用户通过浏览器即可浏览自己所需的结构。2.4 数据库方案论证SQL Server 2005是为创建可伸缩电子商务、在线商务和数据仓储解决方案而设计的真正意义上的关系型数据库管理与分析系统。SQL Server 2005中包含许多新特性,这些特性使其成为针对电子商务、数据仓库和在线商务解决方案的卓越的数据库平台。SQL Server 2005能提供超大型系统所需的数据库服务。大型服务器可能有成千上万的用户同时连接到SQL Server 2005的情况, SQL Server 2005为这些环境提供了全面的保护,具有防止问题发生的安全措施。由于它与AS
17、P.NET出自同一家公司,在设计本系统时,开发技术选用的就是ASP.NET技术,开发平台选用的也是Windows,因此,它在 windows平台上与ASP.NET有很好的兼容性,而且Microsoft SQL Server 2005选用了最先进的数据路构架,具有完全的web功能,通过对高端硬件平台以及最新的网络和存储技术的支持,可以为我们的web站点提供很好的解决方案。并且Microsoft SQL Server 2005操作简单,使用起来比较容易,那么数据库方面本人就理所当然的选用了Microsoft SQL Server 2005。2.5 开发工具方案论证Visual Studio 200
18、5 包含了一系列高效的、智能的开发工具,不论是为开发初学者,还是为经验丰富的企业开发团队都提供了很多全新的、强大的功能:减少开发的复杂度 确保您能更加轻松发布基于 Framework 的解决方案,包括 Windows、Web、移动和基于 Office 的应用。3. 系统设计31 系统总体设计方案根据需求分析本系统分为前台设计和后台设计,前台设计实现普通用户的文章查阅、评论、留言、友情链接等功能,后台设计实现管理员的文章管理、评论管理、留言管理、链接管理、修改密码等功能。本系统采用ASP.NET2.0和SQLServer2005技术实现。前台系统设计功能模块图如下:后台系统设计功能模块图如下:3
19、2系统完成任务(1)网站系统采用B/S结构,及浏览器/服务器,主要开发前台浏览器界面的搭建,后台和服务器连接代码的编程,以及数据库的合理设计。数据库应简单、合理,界面应明朗。(2)网站系统的整体运行环境采用Windows XP, SQL Server 2005作为系统数据库,选用ASP.NET作为开发技术。(3)要使用C#语言作为开发语言,利用Microsoft Visual Studio 2005作为开发平台。3.3 运行环境CUP:高于奔腾三500MHz内存:大于64M可使用的操作系统:Windows XP,Windos2000及其以上版本浏览器:IE5.5以上浏览器服务器端CPU:高于奔
20、腾三900MHz内存:大于1Gb操作系统:Windows XP浏览器:IE5.5以上浏览器软件服务器端需要Microsoft Visual Studio2005,Microsoft SQL Server 2005数据库。4.数据库设计4.1数据库概要设计文章实体E-R图:评论实体E-R图:文章类型实体E-R图:文章评论实体E-R图:管理员实体E-R图:链接实体E-R图:留言实体E-R图:4.2数据库逻辑设计admin (用户表)序号列名数据类型长度字段说明1adminIdChar10管理员唯一ID号2adminPWDNvarchar50管理员密码class (类型信息列表)序号列名数据类型长度
21、字段说明1classIdBigint8文章类型唯一ID号2classNameNvarchar50文章类型名link (链接信息列表)序号列名数据类型长度字段说明1linkIdBigint8链接唯一ID号2linkNameNvarchar50链接名3linkUrlNvarchar50链接地址message (留言信息列表)序号列名数据类型长度字段说明1messageIdBigint8留言唯一ID号2messageNickNameNvarchar50网友昵称3messageTitleNvarchar50留言标题4messageHomePageNvarchar50个人主页5messageConten
22、tNtext16留言类容6messageDateDatetime8留言时间7messageReplyNtext16留言回复article (文章信息列表)序号列名数据类型长度字段说明1articleIdBigint8文章唯一ID号2articleAuthorNvarchar50文章作者3articleTitleNvarchar200文章标题4articleBriefNvarchar200文章摘要5articleContentNtext16文章类容6articleDateDatetime8文章发表日期7articleRQBigint8文章人气8articleReplyBigint8文章回复9cl
23、assIdBigint8文章类型标号 critique (评论信息列表)序号列名数据类型长度字段说明1critiqueIdBigint8评论唯一ID号2critiqueNickNameNvarchar50评论人昵称3critiqueTitleNvarchar50评论标题4critiqueContentNvarchar250评论类容5critiqueDateDatetime8评论发表时间6articleIdBigint8评论的文章编号4.3数据库物理设计SET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FRO
24、M sys.objects WHERE object_id = OBJECT_ID(Ndbo.class) AND type in (NU)BEGINCREATE TABLE dbo.class(classId bigint IDENTITY(1,1) NOT NULL,className nvarchar(50) NOT NULL, CONSTRAINT PK_class_023D5A04 PRIMARY KEY CLUSTERED (classId ASC)WITH (IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYENDGOSET ANSI_NUL
25、LS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.link) AND type in (NU)BEGINCREATE TABLE dbo.link(linkId bigint IDENTITY(1,1) NOT NULL,linkName nvarchar(50) NOT NULL,linkUrl nvarchar(50) NOT NULL, CONSTRAINT PK_link_0425A276 PRIMARY KEY CLUST
26、ERED (linkId ASC)WITH (IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.message) AND type in (NU)BEGINCREATE TABLE dbo.message(messageId bigint IDENTITY(1,1) NOT NULL,massageNickNam
27、e nvarchar(50) NOT NULL,messageTitle nvarchar(50) NOT NULL,messageHomePage nvarchar(50) NOT NULL,messageContent ntext NOT NULL,messageDate datetime NOT NULL,messageReply ntext NULL, CONSTRAINT PK_message_060DEAE8 PRIMARY KEY CLUSTERED (messageId ASC)WITH (IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARY
28、 TEXTIMAGE_ON PRIMARYENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.admin) AND type in (NU)BEGINCREATE TABLE dbo.admin(adminId char(10) NOT NULL,adminPWD nvarchar(50) NOT NULL, CONSTRAINT PK_admin PRIMARY KEY CLUSTERED (adm
29、inId ASC)WITH (IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENTIFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.critique) AND type in (NU)BEGINCREATE TABLE dbo.critique(critiqueId bigint IDENTITY(1,1) NOT NULL,critiqueNickName nv
30、archar(50) NULL,critiqueTitle nvarchar(50) NOT NULL,critiqueContent nvarchar(250) NOT NULL,critiqueDate datetime NOT NULL,articleId bigint NOT NULL, CONSTRAINT PK_critique PRIMARY KEY CLUSTERED (critiqueId ASC)WITH (IGNORE_DUP_KEY = OFF) ON PRIMARY) ON PRIMARYENDGOSET ANSI_NULLS ONGOSET QUOTED_IDENT
31、IFIER ONGOIF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(Ndbo.article) AND type in (NU)BEGINCREATE TABLE dbo.article(articleId bigint IDENTITY(1,1) NOT NULL,articleAuthor nvarchar(50) NOT NULL,articleTitle nvarchar(200) NOT NULL,articleBrief nvarchar(200) NOT NULL,articleConten
32、t ntext NOT NULL,articleDate datetime NOT NULL,articleRQ bigint NULL CONSTRAINT DF_article_articleRQ DEFAULT (0),articleReply bigint NULL CONSTRAINT DF_article_articleReply DEFAULT (0),classId bigint NOT NULL, CONSTRAINT PK_article_09DE7BCC PRIMARY KEY CLUSTERED (articleId ASC)WITH (IGNORE_DUP_KEY =
33、 OFF) ON PRIMARY) ON PRIMARY TEXTIMAGE_ON PRIMARYENDGOIF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(Ndbo.FK_critique_critique) AND parent_object_id = OBJECT_ID(Ndbo.critique)ALTER TABLE dbo.critique WITH CHECK ADD CONSTRAINT FK_critique_critique FOREIGN KEY(articleId)REFE
34、RENCES dbo.article (articleId)GOIF NOT EXISTS (SELECT * FROM sys.foreign_keys WHERE object_id = OBJECT_ID(Ndbo.FK_article_class) AND parent_object_id = OBJECT_ID(Ndbo.article)ALTER TABLE dbo.article WITH CHECK ADD CONSTRAINT FK_article_class FOREIGN KEY(classId)REFERENCES dbo.class (classId)5.系统实现5.
35、1普通用户进入的主页从数据库中分别查询出文章类别、友情链接、人气比较高的文章作为推荐文章、所有文章的数据,具体代码如下:生成文章类别的代码如下:public void ClassBind() DBOperate DBOp = new DBOperate(); string sqlString = string.Format(select * from class); DataSet ds = DBOp.GetDataSet(sqlString); dlClass.DataSource = ds; dlClass.DataBind(); 生成友情Blog链接的代码和以上的类似生成推荐文章的代码如
36、下:public void NewArticleBind() DBOperate DBOp = new DBOperate(); string sqlString = string.Format(select top(10)* from article order by articleRQ desc); DataSet ds = new DataSet(); ds = DBOp.GetDataSet(sqlString); dlArticle.DataSource = ds; dlArticle.DataBind(); 生成文章列表的代码和上面的类似生成阅读文章的代码如下:protected
37、void grdArticle_RowUpdating(object sender, GridViewUpdateEventArgs e) string articleId = grdArticle.DataKeyse.RowIndex.Value.ToString (); string sqlString = string.Format(update article set articleRQ=articleRQ+1 where articleId=articleId); DBOperate DBOp = new DBOperate(); DBOp.Query(sqlString); Art
38、icleBind(); Response.Redirect(ReadArticle.aspx?article=+articleId); 运行界面如下:5.2普通用户阅读文章对文章进行评论普通用户点击“点击阅读文章”按钮给文章阅读数量加一,进入阅读文章界面,用户可以给文章进行评论,填写完评论内容后,点击“评论”按钮可以进行评论,具体代码如下:进行评论的代码如下:protected void btnCritique_Click(object sender, EventArgs e) if (txtName.Text.Trim() = | txtTitle.Text.Trim() = | txtCo
39、ntent.Text.Trim() = ) Response.Write(alert(网友昵称,评论标题,评论类容不能为空!); else CritiqueManage cm = new CritiqueManage(); cm.CritiqueNickName = txtName.Text.Trim(); cm.CritiqueTitle = txtTitle.Text.Trim(); cm.CritiqueContent = txtContent.Text.Trim(); cm.CritiqueDate = DateTime.Now; cm.ArticleId =Convert.ToInt
40、32( Request.QueryStringarticle); cm.AddCritique(); string sqlString = string.Format(update article set articleReply=articleReply+1 where articleId=0, cm.ArticleId); DBOperate DBOp = new DBOperate(); DBOp.Query(sqlString); ArticleBind(); txtName.Text = ; txtTitle.Text = ; txtContent.Text = ; CritiqueBind(); 运行界面如下:5.3普通用户对管理员进行留言或查看管理员回复的留言普通用户可以给管理员留言,也可以查看管理员给的回复具体代码如下:给管理员留言的代码如下:protected void btnMessage_Click(object sender, EventArgs e) if (txtName.Text.Trim() = | txtTitle.Text.Trim() = | txtContent.Text.Trim()=) Response .Write (alert(网友昵称、留言标题、留言内容不能为空!)/s