基于ASP NET的博客系统.docx
《基于ASP NET的博客系统.docx》由会员分享,可在线阅读,更多相关《基于ASP NET的博客系统.docx(33页珍藏版)》请在冰豆网上搜索。
基于ASPNET的博客系统
摘要
随着Internet的广泛应用,动态网页技术也应运而生。
本文介绍了应用ASP动态网页技术开发博客系统的设计与实现。
博客系统主要为用户提供发表文章、浏览文章等功能,用户通过Internet可以发表一些自己撰写的文章以和其他网友进行交流。
博客系统主要实现了文章管理的数字化、信息化、智能化,是打破传统报刊、杂志发表文章方式的新尝试。
本系统的开发设计实现采用ASP技术,系统后台使用SQLServer2008数据库,并通过使用ODBC技术访问。
本文对博客系统进行整体分析,明确了系统的可行性和用户需求;根据模块化原理,规划设计了系统功能模块;在数据库设计部分,详细说明了系统数据库的结构和数据库的完整性、安全性措施;程序设计则采用面向对象的程序设计思想,提出系统的程序设计思路,对前台与后台功能的程序实现进行了详细论述;系统测试部分,具体分析测试过程中出现的主要问题,并提出了解决方案,实现系统功能。
最后,对系统作以客观、全面的评价,并对进一步改进提出了建议。
关键字:
博客BlogASP.NET数据库
Abstract
WiththewidelyapplicationoftheInternet,dynamicwebpagetechnologyalsoarisesatthehistoricmoment.ThispaperintroducestheapplicationofASPdynamicwebtechnologytodevelopthedesignandimplementationofblogsystem.
Blogsystemismainlytoprovideuserswithpublishedarticles,browsethearticles,andotherfunctions,theusercanthroughtheInternet,publishedsomeofmywritingtocommunicatewithotherusers.Blogsystemmainlyimplementsthemanagementofthedigital,information,intelligence,istobreakthetraditionalwayofnewspapers,magazinespublishednewattempt.
ThedevelopmentanddesignofthissystemusingASPtechnology,useSQLServer2008databasesystembackground,andbyusingODBCtechnologytoaccess.
Inthispaper,theblogsystemontheoverallanalysisofthefeasibilityofsystemanduserneeds;Accordingtotheprincipleofmodularization,planninganddesignthesystemfunctionmodule;Indatabasedesignpart,detailedthesystemdatabasestructureanddatabaseintegrity,securitymeasures;Programdesign,theuseoftheobject-orientedprogramdesignthought,systemprogramdesignthinkingisputforward,onthefrontdeskandbackstagefunctionprogramimplementationisdiscussedindetail;Thesystemtest,concreteanalysisofthemainproblemsinthetestingprocess,andputforwardthesolution,therealizationofsystemfunctions.Finally,tomakeinanobjectiveandcomprehensiveevaluationsystem,andputsforwardSuggestionsforfurtherimprovement.
Keywords:
BlogBlogASP.NETdatabase
第一章系统概述
1.1项目背景
Blog,是Weblog的简称。
Weblog,其实是Web和Log的组合词。
Web,指WorldWideWeb,当然是指互连网了;Log的原义则是“航海日志”,后指任何类型的流水记录。
合在一起来理解,Weblog就是在网络上的一种流水记录形式或者简称“网络日志”。
Blogger或Weblogger,是指习惯于日常记录并使用Weblog工具的人。
虽然在大陆早些时候或者台湾等地,对此概念的译名不尽相同(有的称为“网志”,有的称之为“网录”等等),但目前已基本统一到“博客”一词上来。
该词最早是在2002年8月8日由著名的网络评论家王俊秀和方兴东共同撰文提出来的。
博客也好,网志也罢,仅仅是一种名称而已,它的本义还是逃不过Weblog的范围。
只是,通常我们所说的“博客”,既可用作名词Blogger或weblogger——指具有博客行为的一类人;也可以作动词用(相当于英文中的Weblog或blog),指博客采取的具有博客行为反映、是第三方可以用视觉感受到的行为,即博客们所撰写的Blog。
因此,“他/她是一位博客,他/她天天在博客”及“博客博什么客?
”在中文语法与逻辑上都是正确。
只是不同场合的用法不同罢了。
博客存在的方式,一般分为三种类型:
一是托管博客,无须自己注册域名、租用空间和编制网页,博客们只要去免费注册申请即可拥有自己的博客空间,是最“多快好省”的方式。
如英文的、及多种语言的博客室()等都提供这样的服务;二是自建独立网站的博客,有自己的域名、空间和页面风格,需要一定的条件。
如方兴东建立的“博客中国”站();三是附属博客,将自己的博客作为某一个网站的一部分(如一个栏目、一个频道或者一个地址)。
这三类之间可以演变,甚至可以兼得,一人拥有多种博客网站。
目前进行网站开发的语言很多,如ASP、PHP、JSP、ASP.NET等。
究竟应该选择什么语言来开发一个BLOG网站呢,对于一个中小型的网站来说,ASP.NET无疑是最好的选择,ASP.NET提供了一个很好的实现这种经典设计模式的类似环境。
开发者通过在ASPX页面中开发用户接口来实现视图;控制器的功能在逻辑功能代码(.cs)中实现;模型通常对应应用系统的业务部分。
在ASP.NET中实现这种设计而提供的一个多层系统,对较经典的ASP结构实现的系统来说有明显的优点。
将用户显示(视图)从动作(控制器)中分离出来,提高了代码的重用性。
1.2系统开发的意义
1.2.1发布想法
博客能让个人在互联网上表达自己的心声。
这是一个收集和共享任何感兴趣的事物的地方--可以是政治评论、个人日记或是指向您想记住的网站的链接。
许多人使用博客只是要组织自己的想法,而有些人则在全球成千上万的浏览者中赢得影响力。
职业和业余新闻记者使用博客发布特发新闻,而有写日记习惯的人则会在博客中宣示自己内心的想法。
而摄影和美术发烧者,可以通过博客系统的管理自己的作品,无论您要发表什么意见,博客都可以帮您表达出来。
博客作为一种新表达的方式,它的传播不仅情绪,包括大量的智慧、意见和思想。
某种意义上说,它也是一种新的文化现象,博客的出现和繁荣,真正凸现网络的知识价值,标志着互联网发展开始步入更高的阶段。
1.2.2博客的用途
促进学习。
写blog可以促进学习,想写出文章来,自然不能是泛泛的了解就可以的,要理解了才能写得出来的。
这就促进了对某些领域的不断学习和思考。
记录收获。
blog中,常常是记录下来都是瞬间的灵感,对事物的感悟,经过多日思考和实践的结果,对某个问题的解决方案等等,这些都是财富,要记录下来。
反映成长。
写blog,可以反映出人的思考过程,而不仅仅是思考结果。
对一个问题或领域,从不了解到了解,从了解到熟悉,从熟悉到精通。
这纪录了一个人思考和解决问题的成长过程。
很久之后,看到自己之前的文章,你将会觉得自己进步了。
结交朋友。
写了blog,自然会有许多志趣相同的朋友来阅读,这可以认识许多朋友。
大家有共同的兴趣爱好,自然谈得来。
共享知识。
blog给大家看,大家的blog也给你看。
这个问题我解决了,那个问题他解决了。
大家互通有无,建立起一个社群。
交流看法。
回复的人对blog的观点或赞同,或反对,大家一起讨论,听听别人的思想,可以促进双方的共同进步。
包装自己。
看到一篇篇用心写出的文章,自然是对自己知识技能的最好宣传。
1.3系统开发的目标
1.3.1任何拥有博客的人都可以做到
1.登录博客系统浏览文章
2.管理自己博客的基本信息
3.撰写个人随笔
4.处理留言、文章评论等内容
1.3.2访问博客系统的人,可以做到
游览博客系统中的文章目录、评论博客系统中的内容,只有博客管理员登录系统之后,才能进行管理。
而博客系统的访问者不需要注册,也不需要登录就可以访问博客系统中的内容。
第二章Blog系统分析
2.1可行性分析
可行性分析(FeasibilityAnalysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。
可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。
为了确定开发具有可行性,对本系统主要进行了以下四个方面的分析。
2.1.1经济可行性。
经济可行性主要是对项目的经济效益进行评价。
本系统对系统开发者来说并不需要太高的成本支出,只是对系统的管理者付出管理报酬即可,而且开发周期不需要太长,节省了人力、物力、财力资源,所以本系统在经济上是可行的。
2.1.2技术上的可行性。
技术上的可行性分析主要是分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。
在软件方面,本系统采用的是ASP(ActiveSeverPages)进行开发,前台网页设计使用的是vs2010,而数据库系统采用的是SQLServer2008r2。
通过分析,在软、硬件方面现有工具与环境完全可以实现系统的开发,因此具有技术上的可行性。
2.1.3时机可行性。
时机可行性是分析系统开发时机是否成熟。
目前越来越多的应用程序都已经是转向基于Web的开发,并且Internet已经广泛使用,因此系统的设计具有时机可行性。
2.1.4管理上的可行性。
主要是管理人员是否支持,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。
系统的开发主要就是为了方便校友信息的管理,补充现在传统管理方式的不足,因此具备了管理上的可行性。
综上所述,本系统开发目标已明确,在技术和经济等方面具备可行性,并且投入少、见效快,因此系统的开发是完全可行的。
2.2需求分析
在可行性分析阶段已经简要地分析和研究了本系统的基本需求,也论证了开发平台及软件的可行性,但为了明确系统设计的目标,了解用户的需求,现对用户需求作以调研,从而进一步明确了设计所实现子系统的功能。
2.2.1管理员登录
在调研中了解到,用户想要使用系统,首先要有一个友好的用户注册界面,其次,用户需要经历登录验证过程,只有合法的拥有管理员身份的用户才可以使用系统中的管理功能,这样做可以防止非法用户登录并使用本系统,妨害数据安全。
用户登录。
通过系统登录验证,用户成功进入系统并开始使用其中功能。
2.2.2文章管理
文章管理是用户所有文章的信息,用户可以进入此处进行相关文章的管理。
这部分主要包括以下方面:
1.文章信息显示。
显示出所有文章的大概信息。
2.发表新文章。
可以发表新的文章。
3.删除文章。
允许用户对文章信息进行删除操作。
2.1.3系统信息管理
系统开始运行之后,随着时间的变化会有想要更改系统的相关信息的要求,比如:
修改博客的个人头像,爱好,最难忘的事等等,因此需要提供信息修改的功能。
在此,我参考现有的几大博客网站,如新浪博客,QQ空间等,采用Browser/Server结构,将个人博客网站划分为两个子系统:
前台,后台。
下面分析各个子系统的功能需求。
在前台的功能实现上,可以分为以下几个部分:
用户登录:
网站的用户用个人注册的账号,密码登录到个人的博客网站上。
用户注册:
访客将个人的信息存储到博客网站的数据库中,以成为博客网站的正式用户。
文章管理:
博客用户可以将自己的文章进行编辑、上传分享自己的文章。
评论管理:
用户可以对自己感兴趣的文章进行评论,说出自己的建议与观点。
图片管理:
注册用户可以对博客中的图片进行管理,如:
对图片继续上传、编辑、浏览、查询等操作。
匿名用户:
未注册的用户可以浏览博客主页上的文章,可以检索或浏览博客网站中感兴趣的文章还可以对文章进行评论,但不能多博客进行编辑。
留言管理:
其他用户可以给博客主人进行留言。
链接管理:
用户可以根据链接的网址对其他网站进行访问。
2.3系统的主要技术分析
2.3.1ASP.NET介绍
本系统采用ASP.NET开发技术进行开发。
ASP.NET不仅仅是ASP的一个新版本,更是Web应用程序编程方面的一个全新的概念和方法。
ASP.NET中的新功能并不是对ASP的改进,设计它的初衷是为用户入境提供最佳的应用程序架构。
它相比于ASP有着以下几个方面的优点:
ASP曾在脚本引擎方面受到了限制,特别是VBScript和Jscript。
而ASP.NET则支持多种语言,默认情况下为VisualBasic.NET、C#和Jscript.NET,另外还支持一些第三方语言。
ASP在服务器处理上不管页面的内容是纯HTML还是ASP生成的HTML,它都是按照实现,形成所谓3-tier页面顺序显示的。
因此逻辑代码依赖于它在页面中的位置,并且无法将HTML控件作为目标,除非将它们作为流的一部分进行显示。
而ASP.NET就解决了这个问题,方法是为控件引入一个声明的基于服务器的模型,因为控件在服务器上有,可以在服务器上编程,也可以是客户端驱动的事件。
2.3.2WebForm控件
将现有的HTML控件转换为服务器端的控件是比较容易的,但是也存在一些不方便,例如比较难于区分HTML控件和服务器端的控件。
于是Microsoft公司就创建了一组专门的服务器控件,它们都用asp:
前缀标识。
代码与内容分离
一个网站的设计与开发往往由不同的人来实现的,而ASP中就是存在着这样一个问题,代码(ASP脚本)和内容(HTML)混合在一起。
这样就使得同时进行设计和开发变得很困难。
而ASP.NET则采用了代码内联和后台编码两种方法实现了代码与内容的分离。
2.3.3ASP.NET配置
A的配置文件都是XML格式的文件,XML格式文件易于书写和定制,采用这种方法进行配置方便灵活。
另外,的配置都是可以随时更改的,即应用程序运行期间,可以随时增加和删除配置文件中的项目,修改后可以立刻激活使用比当配置发生变化时需要服务重新启动配置才生效的方法有很大的优势。
该系统运用了fig文件进行配置web服务器,使用web.config文件配置web服务器简明扼要。
Web.config文件是采用XML格式进行编写的XML文件。
2.3.4XML
XML是ExtensibleMarkupLanguage(可扩展标记语言)。
它是一种存储数据的方法。
它提供一种独立于应用程序的格式来保存数据,且容易实现不同应用程序之间的数据共享。
与数据库相比,它不需要任何专用软件就可以创建和管理XML文档,只要一个文本编辑器就可以了;而数据库需要专门的数据库管理系统对数据进行管理。
2.4数据库需求分析
用户分为普通用户和管理员用户
管理员涉及类型管理、文章管理、添加文章、评论管理、链接管理、留言管理。
普通用户可以阅读文章、发表回应、留言、评论和在线聊天。
一种文章类型有多篇文章。
一篇文章有多篇评论、回复。
对上面系统功能分析,设计如下数据项:
管理员信息:
用户名、密码。
类型信息:
类型编号、类型名称。
链接:
链接编号、链接名称、链接地址。
留言:
留言编号、留言人呢称、留言标题、个人主页、留言内容、留言时间、留言回复。
文章信息:
文章序号、文章作者、文章标题、摘要、文章内容、文章发表日期、文章人气、回复、文章类型编号、文章类型名称、文章回复数。
评论:
评论序号、评论用户呢称、评论标题、评论内容、评论时间、评论的文章序号。
第三章BLOG系统设计
3.1系统设计方案
本系统是面向个人用户和小型集体用户开发的系统,完成用户在Blog上进行预定操作,实现用户和来宾之间的双向沟通。
具体设计方案为:
系统服务器为IIS,数据库为SQLSERVER2008,整个系统界面采用MicrosoftvisualStudio2010开发。
系统采用MVC框架,用C#语言实现。
服务器与数据库的连接使用OLEDB编程接口的OleDbConnection对象进行连接。
系统分成两部分,前台为普通用户操作界面,功能包括:
阅读文章,发表留言,发表评论,在线聊天。
后台为管理员操作界面,管理员通过登录进入管理界面,功能包括:
分类管理,文章管理,添加文章,评论管理,链接管理,留言管理。
3.1.1系统功能模块
系统功能模块包括两大块:
管理界面功能模块和普通用户界面功能模块。
其具体功能如下所示:
管理员功能:
分类管理,文章管理,评论管理,链接管理,留言管理。
普通用户功能:
阅读文章,留言,评论和在线聊天。
分类管理:
文章类型的添加,修改,删除。
文章管理:
文章的修改,删除。
评论管理:
评论的删除。
链接管理:
链接的添加和删除。
留言管理:
留言的删除和回复。
管理员用户功能流程如图3-1系统流程图:
图3-1系统流程图
普通用户功能模块如图3-2普通用户登录流程图:
图3-2普通用户登录流程图
3.1.2数据库逻辑结构设计
数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库逻辑结构。
博客系统中各个表的设计结果如下面表格所示。
每个表格表示在数据库中的一个表:
表3.1Admin
序号
列名
数据类型
长度
小数位
标识
主键
外键
允许空
默认值
说明
1
BlogID
int
4
0
是
是
否
2
UserName
nvarchar
50
0
是
3
PassWord
nvarchar
50
0
是
4
Sex
nvarchar
50
0
是
5
ReallyName
nvarchar
50
0
是
6
Birthday
nvarchar
50
0
是
7
Address
nvarchar
200
0
是
8
PostCode
nvarchar
50
0
是
9
Subject
nvarchar
100
0
是
10
Email
nvarchar
100
0
是
11
HomePhone
nvarchar
50
0
是
12
MobilePhone
nvarchar
50
0
是
13
QQ
nvarchar
50
0
是
14
ICQ
nvarchar
50
0
是
15
Question
nvarchar
100
0
是
16
Answer
nvarchar
100
0
是
17
RegTime
datetime
8
3
是
18
IP
nvarchar
20
0
是
19
camparpwd
varchar
50
0
是
表3.2category
序号
列名
数据类型
长度
小数位
标识
主键
外键
允许空
默认值
说明
1
c_id
bigint
8
0
是
是
否
2
c_name
nvarchar
50
0
是
3
BlogID
int
4
0
是
表3.3link
序号
列名
数据类型
长度
小数位
标识
主键
外键
允许空
默认值
说明
1
l_id
bigint
8
0
是
是
否
2
l_name
nvarchar
50
0
是
3
l_url
nvarchar
50
0
是
表3.4message
序号
列名
数据类型
长度
小数位
标识
主键
外键
允许空
默认值
说明
1
id
bigint
8
0
是
是
否
2
nickname
nvarchar
50
0
是
3
title
nvarchar
50
0
是
4
homepage
nvarchar
50
0
是
5
content
ntext
16
0
是
6
mdate
datetime
8
3
是
getdate
7
hf
ntext
16
0
是
表3.5news
序号
列名
数据类型
长度
小数位
标识
主键
外键
允许空
默认值
说明
1
n_id
int
4
0
是
是
否
2
n_author
nvarchar
50
0
是
3
n_title
nvarchar
200
0
是
4
n_key
nvarchar
200
0
是
5
n_content
ntext
16
0
是
6
n_date
datet