基于MVC的个人博客系统设计与实现毕业设计.docx
- 文档编号:16769455
- 上传时间:2023-07-17
- 格式:DOCX
- 页数:50
- 大小:487.68KB
基于MVC的个人博客系统设计与实现毕业设计.docx
《基于MVC的个人博客系统设计与实现毕业设计.docx》由会员分享,可在线阅读,更多相关《基于MVC的个人博客系统设计与实现毕业设计.docx(50页珍藏版)》请在冰点文库上搜索。
基于MVC的个人博客系统设计与实现毕业设计
本科毕业设计(论文)
题目:
基于MVC的个人博客系统设计与实现
毕业设计(论文)原创性声明和使用授权说明
原创性声明
本人郑重承诺:
所呈交的毕业设计(论文),是我个人在指导教师的指导下进行的研究工作及取得的成果。
尽我所知,除文中特别加以标注和致谢的地方外,不包含其他人或组织已经发表或公布过的研究成果,也不包含我为获得及其它教育机构的学位或学历而使用过的材料。
对本研究提供过帮助和做出过贡献的个人或集体,均已在文中作了明确的说明并表示了谢意。
作者签名:
日 期:
指导教师签名:
日 期:
使用授权说明
本人完全了解大学关于收集、保存、使用毕业设计(论文)的规定,即:
按照学校要求提交毕业设计(论文)的印刷本和电子版本;学校有权保存毕业设计(论文)的印刷本和电子版,并提供目录检索与阅览服务;学校可以采用影印、缩印、数字化或其它复制手段保存论文;在不以赢利为目的前提下,学校可以公布论文的部分或全部内容。
作者签名:
日 期:
学位论文原创性声明
本人郑重声明:
所呈交的论文是本人在导师的指导下独立进行研究所取得的研究成果。
除了文中特别加以标注引用的内容外,本论文不包含任何其他个人或集体已经发表或撰写的成果作品。
对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。
本人完全意识到本声明的法律后果由本人承担。
作者签名:
日期:
年月日
学位论文版权使用授权书
本学位论文作者完全了解学校有关保留、使用学位论文的规定,同意学校保留并向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅。
本人授权 大学可以将本学位论文的全部或部分内容编入有关数据库进行检索,可以采用影印、缩印或扫描等复制手段保存和汇编本学位论文。
涉密论文按学校规定处理。
作者签名:
日期:
年月日
导师签名:
日期:
年月日
摘要
随着计算机的发展和普及,Blog得到了极大的发展。
Blog是Weblog(网络日志)的简称。
Blog是即E-mail、BBS、ICQ之后的第四种网络交流方式,是目前互联网上流行的信息发布工具。
本系统以ASP.NET为开发技术,使用C#为开发语言,采用MVC模式设计实现了一个典型的博客系统,对系统的体系结构进行了详细的阐述,并给出了相应的实现模型,该系统具有高效、稳定、易维护等特点。
关键词:
博客;ASP.NET;MVC模式
Abstract
Alongwithcomputer'sdevelopmentandthepopularization,Blogobtainedtheenormousdevelopment.BlogisWeblog(networkdiary)abbreviation.AfterBlogisE-mail,BBS,theICQfourthnetworkexchangeway.Nowadays,BLOGispopularontheInternetasatoolforinformationpublicationandexchange.ThissystemtakeASP.NETasthedevelopmenttechnology,usesC#isthedevelopmentlanguage,designedandimplementedusetheMVCmodel,thispaperalsodescribedthearchitectureofthesystemindetail,andgiventhecorrespondingimplementationmodels,thesystemisefficient,stable,easymaintenance.
Keywords:
Blog;ASP.NET;MVCmodel
第一章概述
第一节系统开发背景
随着计算机技术的发展和普及,blog得到了极大的发展。
Blog,是Weblog的简称。
blog是一种新的生活方式、新的工作方式、新的学习方式和交流方式。
它是继E-mail、BBS、ICQ、之后出现的第4种网络交流方式。
Blog主要应用于3个方面:
一是新的人际交流方式;二是以个人为中心的信息摘选和知识管理;三是以个人为中心的传播出版。
blog作为个人的一种学习工具,简单易用,吸引人的兴趣。
Blog在教育方面得到了很大的发展,它将互联网从过去的通讯功能,资料功能、交流功能等进一步强化,使其更加个性化、开放化、实时化、全球化,把信息共享发展到资源共享、思想共享、生命历程共享。
Blog已经成为一种继课件、积件、资源库、教育主题网站等信息化教学模式之后,新的网络应用模式。
它是应时代的需求而兴起的,也是应时代需求不断进步的。
第二节课题研究的意义
随着Blog人数的增加,Blog作为一种新的生活方式、新的工作方式和新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构。
它使交流和沟通更有明确的选择和方向性;单一的思想和群体的智慧结合变得更加有效;个人出版变成人人都可以实现的梦想。
Blog正在影响和改变着我们的生活。
Blog是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。
展示丰富的个性化,对Blog功能的要求自然更高,新一代具有更多、更新、更全功能的Blog急需走进舞台。
第二章Blog系统开发技术
第一节C#语言
本系统开发的语言是C#。
C#是微软公司在2000年7月发布的一种全新且简单、安全、面向对象的程序设计语言,是专门为.NET的应用而开发的语言。
它吸收了C++、VisualBasic、Delphi、Java等语言的优点,体现了当今最新的程序设计技术的功能和精华。
C#继承了C语言的语法风格,同时又继承了C++的面向对象特性。
不同的是,C#的对象模型已经面向Internet进行了重新设计,使用的是.NET框架的类库;C#不再提供对指针类型的支持,使得程序不能随便访问内存地址空间,从而更加健壮;C#不再支持多重继承,避免了以往类层次结构中由于多重继承带来的可怕后果。
.NET框架为C#提供了一个强大的、易用的、逻辑结构一致的程序设计环境。
同时,公共语言运行时(CommonLanguageRuntime)为C#程序语言提供了一个托管的运行时环境,使程序比以往更加稳定、安全。
其特点有:
·语言简洁。
·保留了C++的强大功能。
·快速应用开发功能。
·语言的自由性。
·强大的Web服务器控件。
·支持跨平台。
·与XML相融合。
第二节ASP.NET技术
本系统采用ASP.NET开发技术进行开发。
ASP.NET不仅仅是ASP的一个新版本,更是Web应用程序编程方面的一个全新的概念和方法。
ASP.NET中的新功能并不是对ASP的改进,设计它的初衷是为用户入境提供最佳的应用程序架构。
它相比于ASP有着以下几个方面的优点:
1.多语言
ASP曾在脚本引擎方面受到了限制,特别是VBScript和Jscript。
而ASP.NET则支持多种语言,默认情况下为VisualBasic.NET、C#和Jscript.NET,另外还支持一些第三方语言。
2.服务器处理
ASP在服务器处理上不管页面的内容是纯HTML还是ASP生成的HTML,它都是按照实现,形成所谓3-tier页面顺序显示的。
因此逻辑代码依赖于它在页面中的位置,并且无法将HTML控件作为目标,除非将它们作为流的一部分进行显示。
而ASP.NET就解决了这个问题,方法是为控件引入一个声明的基于服务器的模型,因为控件在服务器上有,可以在服务器上编程,也可以是客户端驱动的事件。
3.WebForm控件
将现有的HTML控件转换为服务器端的控件是比较容易的,但是也存在一些不方便,例如比较难于区分HTML控件和服务器端的控件。
于是Microsoft公司就创建了一组专门的服务器控件,它们都用asp:
前缀标识。
4.代码与内容分离
一个网站的设计与开发往往由不同的人来实现的,而ASP中就是存在着这样一个问题,代码(ASP脚本)和内容(HTML)混合在一起。
这样就使得同时进行设计和开发变得很困难。
而ASP.NET则采用了代码内联和后台编码两种方法实现了代码与内容的分离。
第三节MVC模式
一、MVC模式基本原理
MVC(Model-View-Controller),即把一个应用的输入、处理、输出流程按照Model,View,Controller的方式进行分离,这样一个应用被分成三个层——模型层、视图层、控制层,其三层之间的关系和功能如图2.1所示:
图2.1MVC组件类型关系和功能图
MVC设计模式的典型流程为:
首先Controller接收用户的请求,并决定应该调用哪个Model来进行处理,然后Model用业务逻辑来处理用户的请求并返回数据,最后Controller用相应的View格式化Model返回的数据,并通过表示层呈现给用户。
控制层(Controller)可以理解为从用户接收请求,将模型与视图匹配在一起,共同完成用户的请求。
划分控制层的作用也很明显,它清楚地告诉我们,它就是一个分发器,选择什么样的模型,选择什么样的视图,可以完成什么样的用户请求。
控制层并不做任何的数据处理。
例如,用户点击一个链接,控制层接受请求后,并不处理业务信息,它只把用户的信息传递给模型,告诉模型做什么,选择符合要求的视图返回给用户。
因此,一个模型可能对应多个视图,一个视图可能对应多个模型。
模型层(Model)就是业务流程/状态的处理以及业务规则的制定。
业务流程的处理过程对其它层来说是黑箱操作,模型接受视图请求的数据,并返回最终的处理结果。
业务模型的设计可以说是MVC最主要的核心,必须能够满足大多数客户的需求,包括保证应用程序各组件的事务整合、维护并快速获取应用数据,支持事务工作流的协调以及在已有应用程序中集成新的应用组件等。
MVC并没有提供模型的设计方法,而只告诉我们应该组织管理这些模型,以便于模型的重构和提高重用性。
视图层(View)代表用户交互界面,对于Web应用来说,可以概括为HTML界面,但有可能为XHTML,XML和Applet。
随着应用的复杂性和规模性,界面的处理也变得具有挑战性。
一个应用可能有很多不同的视图,MVC设计模式对于视图的处理仅限于视图上数据的采集和处理,以及用户的请求,而不包括在视图上的业务流程的处理。
业务流程的处理交予模型(Model)处理。
二、MVC模式的优点
1.低耦合性
视图层和业务层分离,这样就允许更改视图层代码而不用重新编译模型和控制器代码,同样,一个应用的业务流程或者业务规则的改变只需要改动MVC的模型层即可。
因为模型与控制器和视图相分离,所以很容易改变应用程序的数据层和业务规则。
2.高重用性和可适用性
随着技术的不断进步,现在需要用越来越多的方式来访问应用程序。
MVC模式允许你使用各种不同样式的视图来访问同一个服务器端的代码。
它包括任何WEB(HTTP)浏览器或者无线浏览器(wap),比如,用户可以通过电脑也可通过手机来订购某样产品,虽然订购的方式不一样,但处理订购产品的方式是一样的。
由于模型返回的数据没有进行格式化,所以同样的构件能被不同的界面使用。
例如,很多数据可能用HTML来表示,但是也有可能用WAP来表示,而这些表示所需要的仅令是改变视图层的实现方式,而控制层和模型层无需做任何改变。
3.较低的生命周期成本
MVC使降低开发和维护用户接口的技术含量成为可能。
4.快速的部署
使用MVC模式使开发时间得到相当大的缩减,它使程序员集中精力于业务逻辑,界面程序员集中精力于表现形式。
5.可维护性
分离视图层和业务逻辑层也使得WEB应用更易于维护和修改。
6.有利于软件工程化管理
由于不同的层各司其职,每一层不同的应用具有某些相同的特征,有利于通过工程化、工具化管理程序代码。
第四节SQLServer2005数据库
SQLServer2005是一个全面的数据库平台,使用集成的商业智能(BI)工具提供了企业级的数据管理。
SQLServer2005数据库引擎为关系型数据和结构化数据提供了更安全可靠的存储功能,使您可以构建和管理用于业务的高可用和高性能的数据应用程序。
SQLServer2005数据引擎是本企业数据管理解决方案的核心。
此外SQLServer2005结合了分析、报表、集成和通知功能。
这使您的企业可以构建和部署经济有效的BI解决方案,帮助您的团队通过记分卡、Dashboard、Webservices和移动设备将数据应用推向业务的各个领域。
与MicrosoftVisualStudio、MicrosoftOfficeSystem以及新的开发工具包(包括BusinessIntelligenceDevelopmentStudio)的紧密集成使SQLServer2005与众不同。
无论您是开发人员、数据库管理员、信息工作者还是决策者,SQLServer2005都可以为您提供创新的解决方案,帮助您从数据中更多地获益。
SQLServer2005新增特性:
1.企业数据管理
SQLServer2005针对行业和分析应用程序提供了一种更安全可靠和更高效的数据平台。
SQLServer的最新版本不仅是迄今为止SQLServer的最大发行版本,而且是最为可靠安全的版本。
2.开发人员生产效率
SQLServer2005提供了一种端对端的开发环境,其中涵盖了多种新技术,可帮助开发人员大幅度提高生产效率。
3.商业智能
SQLServer2005的综合分析、集成和数据迁移功能使各个企业无论采用何种基础平台都可以扩展其现有应用程序的价值。
构建于SQLServer2005的BI解决方案使所有员工可以及时获得关键信息,从而在更短的时间内制定更好的决策。
第三章系统需求分析
第一节系统目标
博客网站系统的总目标是:
在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,开发一个具有开放体系结构的、易扩充的、易维护的、具有良好人机交互界面的个人博客网站,为网络用户提供进行在线交流的网络平台。
通过个人博客网站可以结交更多的朋友,表达更多的想法,它随时可以发布文章。
具体的要求如下:
1.拥有博客的基本功能,如注册用户、发表文章、发表评论等。
2.容易在原先基础上进行二次开发。
3.中间基础平台的无型性,尽量采用开放的标准技术,达到跨平台运行的效果。
为了达到以上的开发目的,个人博客网站应遵循一定的设计和开发与原则:
1.模块接口定义清晰。
2.基础类库和接口设计合理,尽量建立叮扩展的接口和抽象类。
3.数据库操作使用标准SQL语句,如果一定要使用有差别的SQL语句,则尽量集中在一起,以减少将来维护和移植的难度。
4.采用开放的标准和工具等。
第二节系统的功能需求
一、用户需求分析
本文研究的博客(BLOG)系统是互联网上的多用户应用系统,它是一种发表个人思想、网络链接、日志内容,通常按照时间顺序排列,并且不断更新的信息发布方式。
本系统共有两类用户:
网友(即未注册用户),匿名用户可以对其他用户的博客内容时行浏览、评论,通过RSS源订阅博客信息。
也可以通过注册后登录博客系统,申请一个属于自己的博客。
用户(即注册用户),注册用户可以登录管理文章(新增、修改或删除)、管理评论(修改或删除)、管理信息(删除或修改)、维护个人信息等。
二、功能需求分析
从系统功能角度出发,一个典型的博客(BLOG)系统主要包含以下功能模块:
(一)用户注册和登录模块
此模块的功能包括新用户的注册,已注册用户的登录。
用户需要登录博客系统才能进行相关操作,否则只能浏览和评论。
如果不是博客系统的用户,需要先行注册。
(二)博客主页面显示模块
功能是根据用户的设定将博客内容显示给用户,这些内容包括用户的文章及相关评论,用户的个性化信息以及其他信息导航栏目。
(三)文章管理模块
功能包括新增(保存)文章,文章修改(保存)功能,文章删除功能。
(四)RSS订阅模块
功能是用户能通过浏览器的RSS订阅功能,订阅本博客的最新更新内容。
(五)用户信息维护模块
管理维护用户的个性化信息,包括昵称、个性logo、签名等。
(六)评论模块
网友可以通过该模块对文章发表评论,表达自己的观点。
综合所述,博客系统的总体功能需求如图3.1所示:
图3.1博客系统总体功能需求
三、建立系统用例模型
UML通过事物、关系和图来描述建模内容。
UML采用多视图表示模型的不同侧面,表示各种元素和概念之间的划分,而每一类视图使用一种或两种特定图来可视化的表示视图中的概念。
用例图从用户角度描述系统的功能,它是用来建立系统与真实世界可视化交互的一种静态图。
它是系统的核心,指引着整个系统的方向,指明了系统到底要做什么,如何行动。
用例能够反应系统的需求,是用户和设计者交流沟通的一个很好的方式。
一般建立系统用例模型的步骤如下:
1.角色的确定
角色是对系统外的对象描述,是用户作用于系统的一个角色,它有自己的目标,通过与系统的交互来实现,交互包括信息交换和系统的协同。
在本系统的UML建模中,可以创建以下角色:
匿名用户、注册用户。
2.创建用例
博客系统根据其实现流程可分为以下几个用例。
与匿名用户相关的用例:
注册、浏览主页面、评论。
与注册用户相关的用例:
浏览主页面、评论、个人信息维护、评论管理、文章管理、用户管理。
3.建立用例图
本文的博客系统的用例图如图3.2所示:
图3.2博客系统用例图
第三节系统流程图
博客系统的流程图比较简单,登录用户可以使用系统的所有功能,未登录用户只能浏览博客主页面,评论文章,注册等。
本系统流程图如图3.3所示:
图3.3博客系统流程图
第四章数据库设计
一个设计良好的数据库,可以使系统的实现变得非常的简单。
同时,也可以使系统的执行速度变得很快。
反之,一个设计混乱的数据库,不仅增加了吸引的管理实现过程,同时在系统的执行过程中,使得检索变得很慢,降低效率。
所以数据库的设计是一个系统设计很重要的步骤。
第一节数据库需求分析
由于本系统面向的对象有两个:
注册用户和未注册用户。
所以,数据库需求分析中就要考虑两方面因素。
对于未注册用户来说,他们主要就是浏览博客内容与评论。
通过系统功能分析,针对未注册用户的需求,总结出如下关系:
1.一篇博客可以有多个评论。
2.一个评论只能对应一篇博客。
对于注册用户来说,他们所关心的是如何对博客内容的添加、修改和删除,对其它用户评论的修改和删除,对博客分类的添加、修改和删除,还有错误日志与文件的处理等。
通过分析,针对注册用户,总结出如下关系:
1.一篇博客可以对应多个分类。
2.一个分类可以对应多个博客。
3.一个用户可以对应多篇博客。
4.一篇博客只能对应一个用户。
5.上传文件存储与及错误日志的存储。
第二节数据库概念设计
根据上面的数据库需求分析,就可以构造出各种实体,以及并根据它们的关系绘制出实体间的E-R图,为以后的逻辑设计打下基础。
本系统实体间的E-R图如图4.1所示:
图4.1博客系统数据库E-R图
第三节数据库逻辑设计
数据库中各表的逻辑关系如图4.2所示:
图4.2数据库关系图
第四节数据表设计
根据上面两节的设计思路,我设计了七张表,分别是:
一、blogentrys表
blogentrys表主要用来存储博客网站中用户张贴的随笔或者文章。
表4.1blogengrys表
字段名称
数据类型
字段长度
是否为空
描述
id
int
4
NOTNULL
主键ID
author_id
int
4
NOTNULL
作者ID
title
nvarchar
150
NULL
标题
description
ntext
max
NULL
摘要
type
nvarchar
10
NULL
类型
allowcomment
bit
1
NULL
是否允许评论
markprivate
bit
1
NULL
是否为私有
body
ntext
max
NULL
内容
datecreated
datetime
8
NULL
创建时间
datepublished
datetime
8
NULL
发表时间
datemodified
datetime
8
NULL
修改时间
二、authors表
authors表主要是用来存储博客网站中的用户数据。
表4.2authors表
字段名称
数据类型
字段长度
是否为空
描述
id
int
4
NOTNULL
主键ID
username
nvarchar
100
NULL
用户名
password
nvarchar
50
NULL
用户密码
description
nvarchar
150
NULL
用户描述
三、tags表
tags表主要用来存储博客网站中文章的分类目录。
表4.3tags表
字段名称
数据类型
字段长度
是否为空
描述
id
int
4
NOTNULL
主键ID
tagname
nvarchar
100
NULL
分类名称
四、blog_tags表
blog_tags表主要用来实现数据表blogentrys与数据表tags之间多对多的关系。
表4.4blog_tags表
字段名称
数据类型
字段长度
是否为空
描述
id
int
4
NOTNULL
主键ID
tag_id
int
4
NULL
分类ID
blog_id
int
4
NULL
博客ID
五、comments表
comments表主要用来存储浏览者对随笔或者文章的评论。
表4.5comments表
字段名称
数据类型
字段长度
是否为空
描述
id
int
4
NOTNULL
主键ID
author
nvarchar
100
NULL
作者
blog_id
int
4
NOTNULL
博客ID
IP
nvarchar
50
NULL
IP地址
datecreated
datetime
8
NULL
创建时间
datemodifiled
datetime
8
NULL
修改时间
body
ntext
max
NULL
内容
六、files表
files表主要是用来存储用户张贴随笔或者文章时所需要的多媒体文件,如图片等。
表4.6files表
字段名称
数据类型
字段长度
是否为空
描述
id
int
4
NOTNULL
主键ID
filen
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 MVC 个人 博客 系统 设计 实现 毕业设计