admin 管理员组文章数量: 1184232
2024年3月7日发(作者:tkinter wxpython pyqt)
ROOLSOFT
个人博客
摘 要
随着Internet的广泛应用,动态网页技术也应运而生。本文介绍了应用ASP动态网页技术开发博客系统的设计与实现。该系统以为开发技术,使用C#为开发语言,实现Blog网站的动态管理,使得对Blog信息的管理更加及时、高效,提高了工作效率。
本文对博客系统进行整体分析,明确了系统的可行性和用户需求;根据模块化原理,规划设计了系统功能模块;在数据库设计部分,详细说明了系统数据库的结构和数据库的完整性、安全性措施;程序设计则采用面向对象的程序设计思想,提出系统的程序设计思路,对前台与后台功能的程序实现进行了详细论述;系统测试部分,具体分析测试过程中出现的主要问题,并提出了解决方案,实现系统功能。
关键词 Blog;;C#;SQLserver
I
ROOLSOFT
Personal Blog
Abstract
With the extensive application of the Internet, dynamic web technology has emerged.
This text describes the application of ASP dynamic web technology and development the
blog system.
This system take as the development technology, uses C# is the
development language, realizes the Blog website dynamic management, causes to be even
more prompt to the Blog information management, highly effective, raised the working
efficiency. In this text,it analysis the blog system by feasibility and the demand of the user.
Under the modular theory, planning and design of the system functional modules; In the
database design, a detailed description of the database structure and database integrity,
security measures; Programming is used object-oriented programming design, system
design ideas, background for the future and function of the program in detail; System
testing, Analysis of the specific course of testing the key issues and proposed solutions to
achieve system function.
Key word Blog;; C#;SQLserver
II
ROOLSOFT
目 录
第一章 绪论 ................................................................. 1
1.1 引言 ................................................................. 1
1.2 课题研究的意义 ....................................................... 2
1.3系统概述 ............................................................. 4
第二章 相关技术介绍................................................................................................................... 5
2.1 技术概论 ..................................................... 5
2.2 工作原理 ..................................................... 6
2.3 数据库选择 ........................................................... 6
2.3.1 数据分析 ....................................................... 7
2.3.2 SQL SERVER 2005 ................................................ 7
2.3.3 ........................................................ 7
2.4 配置 ......................................................... 9
第三章 需求分析 .......................................................................................................................... 10
3.1 需求分析 ............................................................ 10
3.2可行性分析 .......................................................... 10
第四章 概要设计 .......................................................................................................................... 12
4.1 系统设计方案 ........................................................ 12
4.2 系统功能模块 ........................................................ 12
4.3 数据库需求分析 ...................................................... 14
4.4 系统操作流程 ........................................................ 15
4.5数据表设计 .......................................................... 15
4.6 数据库的完整性和安全性 .............................................. 17
4.6.1 数据库的完整性约束 ............................................ 17
4.6.2 数据库的安全性 ................................................ 18
第五章 详细设计 .......................................................................................................................... 19
5.1后台功能模块详细设计 ................................................ 19
5.1.1用户注册模块设计 .............................................. 19
5.1.2博客管理员首页设计 ............................................ 23
5.1.3 博客文章信息管理页面 .......................................... 26
5.2前台功能模块详细设计 ................................................ 30
5.2.1前台主界面 .................................................... 30
5.2.2 “博客评论”功能模块设计 ...................................... 34
III
ROOLSOFT
5.2.3 友情连接管理页实现过程 ........................................ 37
第六章 测试 ................................................................................................................................ 39
6.1测试目的 ............................................................ 39
6.2测试方法 ............................................................ 39
6.3测试用例 ............................................................ 39
第七章 结论 ................................................................................................................................ 41
7.1 不足之处与改进 ...................................................... 41
7.1.1 权限分配 ...................................................... 41
7.1.2 界面美观化 .................................................... 41
7.2 结论 ................................................................ 41
致 谢 ................................................................................................................. 错误!未定义书签。
参考文献 ........................................................................................................................................ 42
IV
ROOLSOFT
V
ROOLSOFT
第一章 绪论
1.1 引言
Blog,是Weblog的简称。Weblog,其实是Web和Log的组合词。Web,指World
Wide Web,当然是指互连网了;Log的原义则是“航海日志”,后指任何类型的流水记录。合在一起来理解,Weblog就是在网络上的一种流水记录形式或者简称“网络日志”。Blogger或Weblogger,是指习惯于日常记录并使用Weblog工具的人。虽然在大陆早些时候或者台湾等地,对此概念的译名不尽相同(有的称为“网志”,有的称之为“网录”等等),但目前已基本统一到“博客”一词上来。该词最早是在2002年8月8日由著名的网络评论家王俊秀和方兴东共同撰文提出来的。博客也好,网志也罢,仅仅是一种名称而已,它的本义还是逃不过Weblog的范围。只是,通常我们所说的“博客”,既可用作名词Blogger或weblogger——指具有博客行为的一类人;也可以作动词用(相当于英文中的Weblog或blog),指博客采取的具有博客行为反映、是第三方可以用视觉感受到的行为,即博客们所撰写的Blog。因此,“他/她是一位博客,他/她天天在博客”及“博客博什么客?”在中文语法与逻辑上都是正确。只是不同场合的用法不同罢了。本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。
Blog究竟是什么?说了半天,其实一个Blog就是一个网页,它通常是由简短且经常更新的帖子(Post)所构成,这些张贴的文章都按照年份和日期倒序排列。Blog的内容和目的有很大的不同,Blog的内容和目的有很大的不同,从对其他网站的超级链接和评论,有关公司、个人、构想的新闻到日记、照片、诗歌、散文,甚至科幻小说的发表或张贴都有。许多Blogs记录着blog个人所见、所闻、所想,还有一些Blogs则是一群人基于某个特定主题或共同利益领域的集体创作。撰写这些Weblog或Blog的人就叫做Blogger或Blog writer。
博客存在的方式,一般分为三种类型:一是托管博客,无须自己注册域名、租用空间和编制网页,博客们只要去免费注册申请即可拥有自己的博客空间,是最“多快1
ROOLSOFT
好省”的方式。如英文的、及多种语言的博客室()等都提供这样的服务;二是自建独立网站的博客,有自己的域名、空间和页面风格,需要一定的条件。如方兴东建立的“博客中国”站();三是附属博客,将自己的博客作为某一个网站的一部分(如一个栏目、一个频道或者一个地址)。这三类之间可以演变,甚至可以兼得,一人拥有多种博客网站。
目前进行网站开发的语言很多,如ASP、PHP、JSP、等。究竟应该选择什么语言来开发一个BLOG网站呢,对于一个中小型的网站来说,ASP无疑是最好的选择,利用简单的HTML代码与脚本融合而成的ASP技术可以开发强大的Web应用程序。ASP(Active Sever Pages)是Microsoft推出的一种服务器端脚本环境,ASP内嵌于IIS中,让用户可以轻松的结合HTML Web页面、脚本和ActiveX组件建立或执行动态的、交互的Web服务器应用程序。ASP并不单指某一种编程语言,而是一门把HTML代码与VBScript和JavaScript等脚本语言融合在一起的技术,ASP技术的诞生,应该说是一项成功的技术,它开创了非专业人员开发高水平网站的历史。
1.2 课题研究的意义
博客的精神是:自由表达,开放宽容,个性张扬,专业精神。
在没有自己的博客之前,人们会经常进出于论坛发表贴子或者通过即时通信软件聊天,来表达自已的想法,可是这些都是零散的和杂乱的。博客的出现,让人们可以不断的把自己以前的和每天激发的一些想法或者感受整理放在自己的博客上,每次在写文章的时候,可能又会产生新的想法。虽然一些想法一些思考只是皮毛,没有什么深度,但是当下笔去写的时候每次都会对某个小小的问题有了更多的一点点思考,再写博客的时候就感觉到了一种满足感,一种想法得以释放思考得以延伸的满足感。生活中每天的一个小小的事情都会引起人们的思考,甚至是和朋友的聊天中一个小小的火花迸发。督促自己努力、把一时的想法变成观点,争取在生命中的每天里留下点什么,这也是人们写博客的目的之一。这样就能督促自己每一天不要浑浑噩噩,时光流逝无痕无声无息,写博客也是在自己的每一天上留下了一道浅浅的思考和划痕。
2
ROOLSOFT
如果说博客网站是一个舞台,那么所有的博客都是其中的舞者,把自己有价值的真实的一面展示在网络世界中,相互交流沟通; 如果博客仅仅为了写日志,那么博客是一面镜子,镜子中展现的是真实的自己;如果博客是一个自由媒体,可以把自身感觉有价值的信息通过博客这个工具发布,与网友共享
随着Blog人数的增加,Blog作为一种新的生活方式、新的工作方式和新的学习方式已经被越来越多的人所接受,并且在改变传统的网络和社会结构。它使交流和沟通更有明确的选择和方向性;单一的思想和群体的智慧结合变得更加有效;个人出版变成人人都可以实现的梦想。Blog正在影响和改变着我们的生活。
Blog是以网络作为载体,简易迅速便捷地发布自己的心得,及时有效轻松地与他人进行交流,再集丰富多彩的个性化展示于一体的综合性平台。展示丰富的个性化,对Blog功能的要求自然更高,新一代具有更多、更新、更全功能的Blog急需走进舞台。系统加入聊天功能可以更加方便大家的交流。
博客有以下用途:
(1)促进学习。写blog可以促进学习,想写出文章来,自然不能是泛泛的了解就可以的,要理解了才能写得出来的。这就促进了对某些领域的不断学习和思考。
(2)记录收获。blog中,常常是记录下来都是瞬间的灵感,对事物的感悟,经过多日思考和实践的结果,对某个问题的解决方案等等,这些都是财富,要记录下来。
(3)反映成长。写blog,可以反映出人的思考过程,而不仅仅是思考结果。对一个问题或领域,从不了解到了解,从了解到熟悉,从熟悉到精通。这纪录了一个人思考和解决问题的成长过程。很久之后,看到自己之前的文章,你将会觉得自己进步了。
(4)结交朋友。写了blog,自然会有许多志趣相同的朋友来阅读,这可以认识许多朋友。大家有共同的兴趣爱好,自然谈得来。
(5)共享知识。blog给大家看,大家的blog也给你看。这个问题我解决了,那个问题他解决了。大家互通有无,建立起一个社群。
(6)交流看法。回复的人对blog的观点或赞同,或反对,大家一起讨论,听听别人的思想,可以促进双方的共同进步。
3
ROOLSOFT
(7)包装自己。看到一篇篇用心写出的文章,自然是对自己知识技能的最好宣传。
1.3 系统概述
一个博客其实就是由一序列网页组成的,它通常是由简短且经常更新的帖子所构成的,这些张贴的文章都按照年份和日期倒序列排列,能按照日期和主题检索。博客的内容和目的有很大的不同,有到其他网站的超级链接;有对其他网站的评论;有个人的日记,日常所思所想;有个人照片、诗歌、散文,甚至科幻小说的发表。正是由于博客能收容这些不拘于个人思想的表达,使博客这种交流和表达方式日益红火起来,博客秉承了个人网站的自由精神,也开拓了激发创造的新模式,能张扬人的个性,从这个意义上说,博客将会变得越来越普及,越来越为更多的人接受。
本系统主要完成以下功能。
1.客户界面部分
我的文章
给我留言
用户注册/登录
首页:文章分类,最新评论,最新文章,最新加入
2.管理界面部分
添加分类
分类管理
文章管理
留言管理
基本设置
4
ROOLSOFT
第二章 相关技术介绍
2.1 技术概论
本系统采用开发技术进行开发。不仅仅是ASP的一个新版本,更是Web应用程序编程方面的一个全新的概念和方法。中的新功能并不是对ASP的改进,设计它的初衷是为用户入境提供最佳的应用程序架构。它相比于ASP有着以下几个方面的优点:
(1)多语言
ASP曾在脚本引擎方面受到了限制,特别是VBScript和Jscript。而则支持多种语言,默认情况下为Visual 、C#和,另外还支持一些第三方语言。
(2)服务器处理
ASP在服务器处理上不管页面的内容是纯HTML还是ASP生成的HTML,它都是按照实现,形成所谓3-tier页面顺序显示的。因此逻辑代码依赖于它在页面中的位置,并且无法将HTML控件作为目标,除非将它们作为流的一部分进行显示。而就解决了这个问题,方法是为控件引入一个声明的基于服务器的模型,因为控件在服务器上有,可以在服务器上编程,也可以是客户端驱动的事件。
(3)Web Form控件
将现有的HTML控件转换为服务器端的控件是比较容易的,但是也存在一些不方便,例如比较难于区分HTML控件和服务器端的控件。于是Microsoft公司就创建了一组专门的服务器控件,它们都用asp:前缀标识。
(4)代码与内容分离
一个网站的设计与开发往往由不同的人来实现的,而ASP中就是存在着这样一个问题,代码(ASP脚本)和内容(HTML)混合在一起。这样就使得同时进行设计和开发变得很困难。而则采用了代码内联和后台编码两种方法实现了代码与内容的分离。
5
ROOLSOFT
2.2 工作原理
在多数场合下,能够将版面容易地当做等闲的HTML版面,版面包括符号有特异处理措施的一些代码段。当安装.NET时,本地的IIS Web服务器积极搭配成查找伸展名为.aspx的文件,且用模块(名为aspnet_的文件)处理这些文件。
从技巧上讲,模块分析ASPX文件的内容,并将文件内容分解成独自的号召以发生代码的大局构造。告终此工作后,模块将各号召放置到预定义的类定义中(无须要放在同时,也无须要按编写次序放置)。然后利用这个类定义一个特异的对象Page。该对象要告终的任务之一即便生成HTML流,这些HTML流能够归来到IIS,再从IIS归来到客户。简言之,在用户哀求IIS服务器供给一个版面时,IIS服务器就依据版面上的文本、HTML和代码(这对我们来说是最重要的)发生该版面。
2.3 数据库选择
数据库(Database),是按照数据结构来组织、存储和管理数据的仓库,是用于查询的大量数据的存储区域。使用数据库可以带来许多好处:如减少了数据的冗余度,从而大大地节省了数据的存储空间,实现数据资源的充分共享等等。近年来推出的计算机关系数据库管理系统,还具有操作直观,使用灵活,编程方便,功能强大,环境适应广泛,数据处理能力极强等诸多优点。
总的来说,数据库的设计对系统的经济性、功能性和效率有很大的影响,一个好的数据库,要求在设计时尽量避免数据的多余,另外,还要尽可能提高数据的存取速度。数据库设计时速度与空间在范式上是相互矛盾的。一方面按规范化理论的要求,关系模式应尽量取高级范式,尤其对记录数较多的关系,低级范式将会造成存储的大量重复,是空间遭受严重浪费;另一方面从存取速度上考虑,应该尽量做到一个模式涉及的属性越多越好,相互运算越少越好,这样,又应取低级范式。因此我们在设计6
ROOLSOFT
数据库时要严格地探讨它的使用环境,充分了解用户的需求,清楚地掌握数据库系统的特点。经过综合的评价和分析后设计出的数据库应满足以下要求:
(1) 数据库信息要能充分体现出用户使用系统的需求。
(2) 能够支持用户对数据进行的所有处理。
(3) 能够容易被数据库管理系统运行维护。
(4) 数据一致性、完整性好,无更新异常。
本系统采用SQL SERVER2005做为后台数据库,使用技术对数据进行操作。
2.3.1 数据分析
博客系统中,主要是管理用户的文章、留言、系统信息等数据。数据的类型决定了程序对数据的处理方式也就是算法,因此,数据是系统实现分析的起点。现通过数据流图的方式分析系统中数据的流动和处理。
对系统的管理员,在登录系统后,本系统接受管理员的修改、添加、删除请求,通过分析将这种请求转化成相应的SQL语句执行对数据库的相关的操作,并将执行的相应结果送回系统中。系统接收到数据库返回的结果集,经过一定的分析处理,将其转化成ASP页面,返回到客户端显示给用户。
2.3.2 SQL SERVER 2005
SQL SERVER2005是可以在WEB上运行的数据库服务产品。它既可适用于桌面系统的单用户数据库,也可适用于企业的网络数据库,甚至适用于专业的WEB站点数据库,具有很强的可伸缩性。并且具有很高的可靠性、可用性和可管理性。从经济和开发效率上适合中小型网站。它和同属于微软公司开发,在开发接口有一致性,能更好的协调工作。同时,SQL SERVER2005对数据的安全性也有一定的保障,它对用户的访问进行了两个阶段的检查:一是认证阶段,二是许可确认阶段。数据库使用来处理数据。
2.3.3
是基于.NET框架结构、面向分布式和以XML数据格式为核心的数据访问技术,它提供了一组数据访问服务的类,可用于对Microsoft SQL Server、Oracle7
ROOLSOFT
等数据源及通过OLEDB和XML公开的数据远源的一致访问。统一了数据容器类编程接口,无论编写何种应用程序(Windows窗体、Web窗体、Web服务)都可以通过同一组类来处理数据。为使用方便,还提供了一组丰富的控件,利用可视化方式来开发数据库应用。
体系结构如下图2-1所示.NET Framework 数据提供程序
Connection
事务
DataAdapter
SelectCommand
Dataset
Data TableCollection
数据表
DataRowCollection InsertCommand
Command
参数
UpdateCommand
DataColumnCollectionn
ConstraintCollection
DeleteCommand
DataReader
DataRelationCollection
数据库
XML
图2-1 体系结构
体系结构的两大核心控件是.NET Framework数据提供程序和Dataset。.
NET Framework数据提供程序用于连接到数据库、执行命令和检索结果。Dataset是一个功能丰富、比较复杂的数据集,它是支持的断开式、分布式数据方案的核心对象。Dataset专门用来处理从数据源获得的数据,无论数据来自什么数据源,它都使用相同的方式操作数据。
8
ROOLSOFT
2.4 配置
的配置文件都是XML格式的文件,XML格式文件易于书写和定制,采用这种方法进行配置方便灵活。另外,的配置都是可以随时更改的,即应用程序运行期间,可以随时增加和删除配置文件中的项目,修改后可以立刻激活使用比当配置发生变化时需要服务重新启动配置才生效的方法有很大的优势。
9
ROOLSOFT
第三章 需求分析
3.1 需求分析
任何一个软件项目的开发都是从需求调查开始,博客管理系统也不例外。系统管理员通过前台页面进入后台管理模块后,可以对注册的博客用户进行管理,包括对注册用户的添加、查找、修改和删除等操作;而博客用户通过前台登陆后,可以对自己的博客空间进行管理,包括发布自己的网络日志、收藏个人图片、与相关人员进行交流和沟通以及删除访问者的评论等。
针对博客管理系统的一些需求,总结出如下信息:
1.用户分普通用户、管理用户和超级管理用户。
2.超级管理用户员可以对博客管理员进行管理和设置权限。
3.博客管理员涉及对博客的类型管理、文章管理、图片管理、评论管理、留言管理和通信管理。
4.普通用户可一阅读文章、发表回应、留言和评论。
5.一种文章类型有多篇文章。
6.一种文章有多篇评论。
3.2 可行性分析
可行性分析(Feasibility Analysis)也称为可行性研究,是在系统调查的基础上,针对新系统的开发是否具备必要性和可能性,对新系统的开发从技术、经济、社会的方面进行分析和研究,以避免投资失误,保证新系统的开发成功。可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。为了确定开发具有可行性,对本系统主要进行了以下四个方面的分析。
(1) 经济可行性。经济可行性主要是对项目的经济效益进行评价。本系统对系统开发者来说并不需要太高的成本支出,只是对系统的管理者付出管理报酬即可,而且开发周期不需要太长,节省了人力、物力、财力资源,所以本系统在经济上是可行的。
10
ROOLSOFT
(2) 技术上的可行性。技术上的可行性分析主要是分析技术条件能否顺利完成开发工作,硬、软件能否满足开发者的需要等。在软件方面,本系统采用的是ASP(Active
Sever Pages)进行开发,前台网页设计使用的是Dreamweaver MX,而数据库系统采用的是Microsoft Access 2000。通过分析,在软、硬件方面现有工具与环境完全可以实现系统的开发,因此具有技术上的可行性。
(3) 时机可行性。时机可行性是分析系统开发时机是否成熟。目前越来越多的应用程序都已经是转向基于Web的开发,并且Internet已经广泛使用,因此系统的设计具有时机可行性。
(4) 管理上的可行性:主要是管理人员是否支持,现有的管理制度和方法是否科学,规章制度是否齐全,原始数据是否正确等。系统的开发主要就是为了方便校友信息的管理,补充现在传统管理方式的不足,因此具备了管理上的可行性。
综上所述,本系统开发目标已明确,在技术和经济等方面具备可行性,并且投入少、见效快,因此系统的开发是完全可行的。
11
ROOLSOFT
第四章 概要设计
4.1 系统设计方案
本系统是面向个人用户和小型集体用户开发的系统,完成用户在Blog上进行预定操作,实现用户和来宾之间的双向沟通。具体设计方案为:
(1) 系统服务器为IIS,数据库为SQLSERVER2005,整个系统界面采用Microsoft
visual Studio 2008开发。
(2) 用C#语言实现。
(3) 服务器与数据库的连接使用OLEDB编程接口的OleDbConnection对象进行连接。
(4) 系统分成两部分,前台为普通用户操作界面,功能包括:阅读文章,发表留言,发表评论,在线聊天。后台为管理员操作界面,管理员通过登录进入管理界面,功能包括:分类管理,文章管理,添加文章,评论管理,链接管理,留言管理。
4.2 系统功能模块
系统功能模块包括两大块:管理界面功能模块和普通用户界面功能模块。其具体功能如下所示:本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。
博客系统文章实体E-R图如图4-1所示。
12
ROOLSOFT
文章编号文章内容发表日期文章标题浏览
用户管理管理员文章标题文章内容管理日期
图4-1 文章资源E-R图
管理员用户功能模块图4-2如下:
图4-2 管理员功能模块
普通用户功能模块图4-3如下:
13
ROOLSOFT
View_Users
me=me
用户
Users
文章
Article
图4-3 普通用户功能模块
4.3 数据库需求分析
■用户分为普通用户和管理员用户
■管理员涉及类型管理、文章管理、添加文章、评论管理、链接管理、留言管理。
■普通用户可以阅读文章、发表回应、留言、评论和在线聊天。
■一种文章类型有多篇文章。
■一篇文章有多篇评论、回复。
对上面系统功能分析,设计如下数据项:
■ 管理员信息:用户名、密码。
■ 类型信息:类型编号、类型名称。
■ 链接:链接编号、链接名称、链接地址。
■ 留言:留言编号、留言人呢称、留言标题、个人主页、留言内容、留言时间、留言回复。
■ 文章信息:文章序号、文章作者、文章标题、摘要、文章内容、文章发表日期、文章人气、回复、文章类型编号、文章类型名称、文章回复数。
■ 评论:评论序号、评论用户呢称、评论标题、评论内容、评论时间、评论的文章序号。
14
ROOLSOFT
4.4 系统操作流程
分析传统Blog系统这一环节所应具有的功能,可以得到Blog系统应具有以下功能:
高级系统用户(管理员)通过浏览器,可以实现文章的管理(对文章的各种信息进行浏览、增加、删除、修改等)、普通系统用户对文章信息只能阅读和留言。
由此得到的系统的流程图如图4-4所示
个人博客系统
个人信息管理
文章信息管理
评论信息管理
通信信息管理
查看
添加
删除
修改
查看
添加
查看
图4-4 系统操作流程
4.5 数据表设计
数据库的概念结构设计完毕后,现在可以将上面的数据库概念结构转化为某种数据库系统所支持的实际数据模型,也就是数据库逻辑结构。
博客系统中的数据管理形式采用数据库,根据系统需要与数据规范化分为博客文章类型表,博客友情链接表,留言信息列表,博客文章信息列表,评论信息列表,系统管理员列表,博客管理员列表,联系人信息列表,图片信息列表这9张表,在此只给出比较重要的数据表。
表4-1 ST_news(文章信息列表)
15
ROOLSOFT
字段
ST_n_id
ST_n_author
ST_n_title
ST_n_key
ST_n_content
说明
文章唯一ID号
文章作者
文章标题
文章摘要
文章内容
文章发表日期
文章人气
文章回复
文章类型编号
文章类型名称
文章回复数
类型
Int
nvarchar
长度 允许空
4
50
否
是
是
是
是
是
是
是
是
是
是
nvarchar 200
nvarchar 200
ntextr
datetime
bigint
bigint
bigint
nvarchar
int
50
8
8
8
8
50
4
ST_n_date
ST_n_hit
ST_n_re
ST_c_id
ST_c_name
ST_c_iscmd
表4-2 ST_replay(评论信息列表)
字段
ST_r_id
ST_r_nick
ST_r_title
ST_r_content
ST_r_date
ST_n_id
说明
评论唯一ID号
昵称
评论标题
评论内容
评论发表时间
评论文章编号
类型
bigint
nvarchar
长度 允许空
8
50
否
是
是
是
是
是
nvarchar 250
nvarchar 250
datetime
int
8
4
表4-3 ST_class(博客文章类型表)
16
ROOLSOFT
字段
ST_c_id
ST_c_name
BlogID
说明
文章唯一ID号
文章类型名称
博客唯一ID号
类型
bigint
Nvarchar
int
长度 允许空
8
50
50
否
是
是
表4-4 ST_message(留言信息列表)
字段
ST_id
ST_nickname
ST_title
ST_homepage
ST_content
ST_mdate
ST_hf
说明
留言唯一ID号
网友昵称
留言标题
个人主页
留言内容
留言时间
留言回复
类型
bigint
nvarchar
nvarchar
nvarchar
ntext
datetime
ntext
长度 允许空
8
50
50
50
16
8
16
否
是
是
是
是
是
是
4.6 数据库的完整性和安全性
4.6.1 数据库的完整性约束
数据库的完整性是指数据的正确性和相容性。数据库管理系统(DBMS)用一定的机制来检查数据库中的数据是否满足规定的条件——完整性约束条件,数据的约束条件是语义的体现,将作为模式的一部分存入数据库中。数据库的完整性约束主要包括以下三方面要求:
(1) 实体完整性
17
ROOLSOFT
实体完整性是指若属性A是基本关系R的主属性,则属性A不能取空值。对于每个表来说,主键都不可以为空。在用户提交信息时,系统会对用户所填写的信息进行验证,对于其中的关键信息没有填写或者数据非法时,系统会提示用户更改后再提交。这样保证了系统实体完整性。
(2) 参照完整性
由于表和表之间会存在某些联系,当关系R和关系S之间是一对多关系时(R的主键是A,S的主键是b,c是s中的外码),在插入数据时就要保证外码c的值或者为空或者等于R中某个元组的主码值。在对被参照表进行删除操作时应同时进行及联删除。
(3) 用户定义完整性
任何关系数据库系统都应该支持实体完整性和参照完整性。除此之外,不同的关系数据库系统根据其应用环境的不同,往往还需要一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件。它反映某一具体应用所涉及的数据必须满足的语义要求。例如某个属性必须取唯一值、某个属性的取值范围等。
4.6.2 数据库的安全性
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄漏、更改或破坏。在数据库系统中,大量的数据集中存放,同时又为许多用户直接共享,是宝贵的信息资源,因此系统的安全保护措施就显得更为重要。键全的数据库安全机制可以防止数据库被恶意的破坏和非法的存取。
本系统的安全设计包括服务器和数据库两方面设计。当用户使用系统时,系统首先会检查用户是否登录,如果用户还没有登录,系统将会弹出警告窗口提醒用户,并将相应的页面跳转至用户登录。在用户提交登录信息后,系统会对用户的身份进行核对,如果在数据库中查找到了相关记录,打开用户页面,表明用户登录成功。对于数据库的安全,主要是通过对授权用户的身份验证实现的。在的系统管理页面,提示用户使用管理员帐号在此登录,没有管理权限的系统注册用户无法登录到数据库管理的后台。系统确认了管理员身份之后统会打开管理页面,系统管理者可在此对整个系统的数据库进行管理和维护。
18
ROOLSOFT
第五章 详细设计
5.1 后台功能模块详细设计
通过此功能用户可以对主页中的许多功能和数据进行操作控制。
5.1.1 用户注册模块设计
页面主要完成引导用户进行注册,首先会提供注册表让用户输入用户名和密码等,让用户输入注册信息,输入完成后,当用户单击[注册]按钮的时候,要对用户输入的注册信息简单认证,看用户信息是否验证,如果验证进行数据库验证,查看用户之前是否已经注册过,如果没有注册则插入一条新记录到数据库,完成注册。本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。
19
ROOLSOFT
图5-1 博客注册资料
实现此功能的关键代码为:protected void btnOK_Click(object sender, EventArgs
e)
{
SqlData da = new SqlData();
SqlDataReader read = ad("select * from tb_Admin where
UserName='" + + "'");
();
if (s)
{
if ( == read["UserName"].ToString())
{
("");
20
ROOLSOFT
}
}
return;
();
string P_str_Com = "insert into
tb_Admin(UserName,PassWord,Question,Answer,ReallyName,Birthday,Address"
+
",PostCode,Email,HomePhone,MobilePhone,QQ,ICQ,RegTime,Sex,SuperAdmin,IP)
values('" + + "'"
+ ",'" + + "','" + + "','" +
+ "','" + + "'"
+ ",'" + + "','" + +
"','" + + "','" + + "'"
+ ",'" + + "','" + + "','"
+ + "','" + + "','" + ng()
+ "','" + edValue +
"','"+edValue+"','"+stAddress+"')";
bool add = L(P_str_Com);
if (add == true)
{
("");
}
else
{
("");
}
}
在博客注册页面中,还用到了一个小功能,就是在用户填写用户名时,通过单击“检测用户”按钮,触发其Click事件来检测填写的用户名是否已经存在。主要代码如下:
protected void Button1_Click(object sender, EventArgs e)
{
SqlData da = new SqlData();
SqlDataReader read = ad("select * from tb_Admin where
UserName='"++"'");
();
if (s)
{
if ( == read["UserName"].ToString())
{
("");
}
}
else
{
("");
}
}
();
22
ROOLSOFT
5.1.2 博客管理员首页设计
在博客首页中单击“管理员”超链接,弹出管理员登录对话框,输入正确的用户名和密码后,单击“登录”按钮,进入博客管理员首页,如图5-2所示。在页面左侧显示的是树形功能导航菜单,其有7项管理功能,分别为类型管理,文章管理,留言管理,评论管理,链接管理,通信管理和图片管理。单击相应的功能超链接,将在页面右侧显示相应的连接信息,例如单击“类型管理“超链接,将在页面右侧显示所有的文章类型,管理员可进行添加修改和删除等操作。
图5-2 文章信息管理图
实现代码在此内容页中的前台代码中编写如下代码:
<%@ Page Language="C#"
MasterPageFile="~/MasterPage/"
AutoEventWireup="true" CodeFile="ST_"
Inherits="Module_Admin_ST_type" Title="Untitled Page" %>
23 ROOLSOFT Runat="Server">
该页主要应用了TreeView控件,实现对博客后台的导航管理,如导向文章类型管理页面。在页面中应用的TreeView控件代码如下:
ForeColor="Black" Width="131px" style="left: 1px; position: relative; top: 27px" ImageSet="Faq" > Value="博客后台管理"> 24 ROOLSOFT Value="博客管理员"> Value="类型管理" Target="rightFrame" NavigateUrl=""> Value="文章管理" Target="rightFrame" NavigateUrl=""> Value="留言管理" Target="rightFrame" NavigateUrl="ST_admin_"> Value="回应管理" Target="rightFrame" NavigateUrl="ST_admin_"> Value="链接管理" Target="rightFrame" NavigateUrl=""> Value="通信管理" Target="rightFrame" NavigateUrl=""> Value="图片管理" Target="rightFrame" NavigateUrl=""> 25 ROOLSOFT HorizontalPadding="0px" VerticalPadding="0px" /> ForeColor="DarkBlue" HorizontalPadding="5px" NodeSpacing="0px" VerticalPadding="0px" />
5.1.3 博客文章信息管理页面
在博客的后台管理中,文章管理占有相当重要的地位。单击Blog文件夹下ST_页面中的“博客管理员”节点下的“文章管理”,就会显示出博客文章管理的相关信息,包括文章编号,文章标题,人气指数等。这部分内容的实现是由该文件夹下的页面来实现的,运行效果如图5-3所示。
此页面中用到了一个GridView控件,主要用来向用户展示已有文章信息,同时提供修改,删除,添加和查询基本操作。
26
ROOLSOFT
图5-3 博客管理
博客文章信息的查询关键代码如下:
protected void btnSearch_Click(object sender, EventArgs e)
{
SqlData da = new SqlData();
string search = edValue;
switch (search)
{
case "文章ID":
ta(ew1, "Select * From ST_news Where
ST_n_id Like '%" + + "%' and BlogID='" + ID + "'");
break;
case "文章主题":
ta(ew1, "Select * From ST_news Where
ST_n_title Like '%" + + "%' and BlogID='" + ID + "'");
break;
default:
("");
break;
}
}
博客文章信息的修改关键代码如下:
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
27
ROOLSOFT
try
{
string str;
string str2 = t["id"].ToString();
//此处用来实现将数据绑定到前台
SqlConnection mycon = new
SqlConnection(tings["conStr"]);
();
SqlDataAdapter myada = new SqlDataAdapter("select * from
ST_news where ST_n_id='" + str2 + "'", mycon);
DataSet ds = new DataSet();
(ds, "ST_news");
//创建DataRowView对象的一个实例
DataRowView rowview = ["ST_news"].DefaultView[0];
//将文章主题读取到labSubject文本框中
= rowview["ST_n_title"].ToString();
//将文章内容读取到txtContent文本框中
= rowview["ST_n_content"].ToString();
();
}
catch (Exception ex)
{
(e);
}
}
}
博客文章信息的添加关键代码如下:
28
ROOLSOFT
protected void Page_Load(object sender, EventArgs e)
{
if (Session["UserName"] == null)
{
ct("~/");
}
SqlConnection mycon = new
SqlConnection(tings["conStr"]);
();
DataSet mydataset = new DataSet();
SqlDataAdapter mydataadapter = new SqlDataAdapter("select * from
tb_Blog where UserName='" + Session["UserName"] + "'", mycon);
(mydataset, "tb_Blog");
DataRowView rowview = ["tb_Blog"].DefaultView[0];
ID = rowview["BlogID"].ToString();
string sqlstr = "select * from ST_Class where BlogID='"+ID+"'";
SqlCommand mycom = new SqlCommand(sqlstr, mycon);
SqlDataReader dr = eReader();
//判断是否有数据
while (())
{
(new
ListItem(dr["ST_c_name"].ToString(),dr["ST_c_id"].ToString()));
}
}
29
ROOLSOFT
5.2 前台功能模块详细设计
5.2.1 前台主界面前台主界面图如下
图5-4 前台主界面图
主要实现代码如下:
protected void Page_Load(object sender, EventArgs e)
{
30
ROOLSOFT
// 在此处放置用户代码以初始化页面
string ST_dns = tings["conStr"];
//最新推荐文章
string ST_cmd_sql = "select top 10 * from ST_news where
ST_n_iscmd=1 order by ST_n_date desc";
ST_myConn = new SqlConnection(ST_dns);
SqlDataAdapter ST_classCmd = new SqlDataAdapter("select ST_c_id,
ST_c_name from ST_class ", ST_myConn);
SqlDataAdapter ST_cmdCmd = new
SqlDataAdapter(ST_cmd_sql,ST_myConn);
nd();
urce = new DataView(ST_[0]);
nd();
DataSet ST_classds = new DataSet();
ST_(ST_classds,"类别列表");
DataSet ST_cmdds = new DataSet();
ST_(ST_cmdds,"推荐文章");
urce = new DataView(ST_[0]);
//调用自定义NewsBlogList_Bind方法
NewsBlogList_Bind();
if (s["colors"]!=null)
{
string ST_test = s["colors"].Value;
String[] ST_colorList = ST_(new char[] { ',' });
ST_bgcolor = ST_colorList[0];
ST_tcolor = ST_colorList[1];
31
ROOLSOFT
}
}
else
{
}
nd();
ST_bgcolor = "#FFDE94";
ST_tcolor = "#efe3ce";
public void NewsBlogList_Bind()
{
string ST_sql;
if (tring["c_id"]==null)
{
}
else
{
if (IsSafe(tring["c_id"],2)==true)
{
ST_sql = "select * from ST_news where ST_c_id="+
ST_sql = "select * from ST_news order by ST_n_date desc";
tring["c_id"] +" order by ST_n_date desc";
}
else
{
ST_sql="";
("非法参数");
32
ROOLSOFT
}
}
}
();
SqlDataAdapter ST_myCmd = new SqlDataAdapter(ST_sql,ST_myConn);
DataSet ST_ds = new DataSet();
ST_(ST_ds,"文章列表");
urce = new DataView(ST_[0]);
nd();
public bool IsSafe (string str, int prama)
{
if (prama==1)
{
}
else
{
if (f("and")>0 || f("or")>0 ||
if (h(str,"[0-9]"))
{
}
else
{
}
return false;
return true;
f("'")>0)
{
33
ROOLSOFT
}
}
}
return false;
else
{
}
return true;
#region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
InitializeComponent();
(e);
}
#endregion
protected void NewsList_PageIndexChanging(object sender,
GridViewPageEventArgs e)
{
dex = eIndex;
NewsBlogList_Bind();
}
}
5.2.2 “博客评论”功能模块设计
单击Blog文件夹下的页面中的“博客管理员”节点下的“评论管理”,就会显示出对博客文章进行评论的相关信息,包括评论者和评论内容。这部34
ROOLSOFT
分内容的实现是由该文件夹下的页面来实现的,运行效果如图5-5所示。
图5-5 回应管理图
主要功能实现代码如下:
protected void Page_Load(object sender, rgs e)
{
string ST_dns = tings["conStr"];
ST_myConn = new SqlConnection(ST_dns);
if(!Back)
{
ST_Replay_Bind();
}
}
private void ST_Replay_Bind()
{
string ST_sql = "select * from ST_replay";
//调用公共类SqlData中的ExceDS方法,返回一个DataSet类型的数据集
35
ROOLSOFT
urce = (ST_sql);
yNames = new string[] { "ST_r_id" };
nd();
}
protected void ReplayList_RowDeleting(object sender,
GridViewDeleteEventArgs e)
{
//创建公共类SqlData的一个新实例对象
SqlData da = new SqlData();
//调用公共类中的ExceSQL,执行删除的SQL语句
bool delete = L("delete from ST_replay where ST_r_id='"
+ ys[ex].ng() + "'");
if (delete)
{
("");
}
else
{
("");
}
}
}
36
ROOLSOFT
5.2.3 友情连接管理页实现过程
图5-6 超链接管理图
在此页面主要用了一个GridView 控件和一个“添加新链接“的超链接。GridView控件用来向用户展示已有的链接信息,同时提供修改和删除评论信息的操作;“查找”按钮则用来提供已有链接的查询操作。
主要功能实现代码如下:
protected void Page_Load(object sender, EventArgs e)
{ ST_check_Login();
urce = ("select * from ST_link");
yNames = new string[] { "ST_l_id" };
nd();}
SqlData da = new SqlData();
public void ST_check_Login()
{
if ((Session["UserName"] == null))
{
("");
();
37
ROOLSOFT
}
}
protected void btnSearch_Click(object sender, EventArgs e)
{
SqlData da = new SqlData();
string search = edValue;
switch (search)
{
case "地址ID":
ta(ew1, "Select * From ST_link Where
ST_l_id Like '%" + + "%'");
break;
case "网站名称":
ta(ew1, "Select * From ST_link Where
ST_l_name Like '%" + + "%'");
break;
case "链接网址":
ta(ew1, "Select * From ST_link Where
ST_l_url Like '%" + + "%'");
break;
default:
("");break; }
38
ROOLSOFT
第六章 测试
6.1 测试目的
程序测试就是在程序投入运行前,对程序的需求分析、设计规格说明和编码的最终复审,是保证程序质量的关键步骤。如果要给程序测试下定义,可以这样讲,程序测试是为了发现错误而执行程序的过程。本系统由福州远行者信息技术有限公司开发,更多内容请参阅公司官网。
测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件中的错误。在开发大型软件系统的过程中,需要面对错综复杂的问题,因此,在软件生存周期的每个阶段都不可避免地会产生错误。编程人员力求在每个阶段结束之前通过严格的技术审查,尽可能早的发现并纠正错误。
6.2 测试方法
程序测试的主要方法为黑盒测试。
黑盒测试:也称功能测试,将软件看作黑盒子,在完全不考虑程序的内部结构和特性的情况下,测试软件的外部特性。根据软件的需求规格说明书设计测试用例,从程序的输入和输出特性上测试是否满足设定的功能。
6.3 测试用例
(1) 用户测试权限
测试内容:填写用户名及密码,验证能否成功登陆。
操作:① 填写正确的用户名及密码。
② 填写错误的用户名或密码。
结果:① 成功登陆。
② 提示用户名或密码错误。
(2) 文章管理测试
(I) 发表文章
39
ROOLSOFT
测试内容:用户发表新文章,。
操作:进入博客系统,点击文章管理,选择添加文章的操作如下图6-1所示,填写完文章内容之后单击添加按钮,看系统是否会提示发表成功。
结果:测试成功。
40
ROOLSOFT
第七章 结论
7.1 不足之处与改进
本系统现已基本完成,基本功能已经具备,但在如下几个方面还存在着不足,需要做进一步的研究与开发,使Blog系统能够更完善。
7.1.1 权限分配
本系统权限分配不够细化,只分为管理员和普通用户。管理员可以对数据库进行所有操作,普通用户只能浏览文章,发表回复,在线聊天。而不能发表自己的文章,管理自己的文章,缺乏作为低级管理员的功能。如果我们能在数据库中为各种不同的用户分配不同的角色来细化权限的分配,这样可以便于我们对系统的管理和维护,也能够更多的满足广大用户的需求。
7.1.2 界面美观化
一个系统强大的功能固然重要,能有一个漂亮的界面也必不可少。特别是界面上颜色的搭配很有讲究,要符合系统的基调。让用户更加赏心悦目,为此我认真研究了CSS,.NET。在一定程度上美化了界面,但是对FLASH,PHOTOSHOP还不同熟悉,所以界面显得单调。
7.2 结论
本文提出并设计了一个基于 的完整的博客系统,该系统整合了数据库技术、技术、网站开发技术等。主要实现了当前主流博客的基本功能,功能强大而且好用。但是本系还存在着一些不足之处,如安全性上的密码未采用加密,部分功能待完善,权限分配不够全面不够细。通过对这个系统的学习与开发,让我更好地掌握了的开发技术,更深刻地理解了网站的开发流程。
在两个月的开发周期中,让我明白一点,就是测试的重要性。所谓建系统,测试先行,软件工程的知识告诉我们一个系统的开发从立项到投入运行,很长的周期都是在测试上的,这次的实际的系统开发让我增长了测试的经验。
41
ROOLSOFT
参 考 文 献
1 张树亮,李超著《2.0+sql server网络应用系统开发案例精解》[M]清华大学出版社2006-9
2 明月创作室编著《visual c#编程精彩百例》[M] 人民邮电出版社 2001-9
3 孙永强,杨丽坤著《Visual C#.NET中文版Web服务开发基础》[M] 清华大学出版社2006-9
4 金雪云著《简明教程》[M] 清华大学出版社2003-7
5 马军著《ASP网络编程从入门到精通》[M] 清华大学出版社2005-9
6 沈阳,李勇敢著《程序设计教程》[M]电子工业出版社2006-10
7 Hyde.R(美) 《编程卓越之道(第一卷):深入计算机》[M] 电子工业出版社 2006-4
8 Ryan Asleson,Nathaniel a(美) 著金灵等译《Ajax基础教程》[M] 人民邮电出版社2006-2
9 李香敏. 《ACCESS 2000编程员指南》 .北京希望电子出版社.2004
10 张海藩.《软件工程导论》(第三版)[M]. 北京:清华大学出版社.2003
42
ROOLSOFT
附录 译文
和SQL Server 2000
是一个统一的 Web 开发模型,它包括您使用尽可能少的代码生成企业级 Web 应用程序所必需的各种服务。 作为 .NET Framework 的一部分提供。当您编写 应用程序的代码时,可以访问 .NET Framework 中的类。您可以使用与公共语言运行库 (CLR) 兼容的任何语言来编写应用程序的代码,这些语言包括 Microsoft Visual Basic、C#、JScript .NET 和 J#。使用这些语言,可以开发利用公共语言运行库、类型安全、继承等方面的优点的 应用程序。
包括:
•
•
•
•
•
•
•
•
•
•
页和控件框架
编译器
安全基础结构
状态管理功能
应用程序配置
运行状况监视和性能功能
调试支持
XML Web services 框架
可扩展的宿主环境和应用程序生命周期管理
可扩展的设计器环境
43
ROOLSOFT
页和控件框架是一种编程框架,它在 Web 服务器上运行,可以动态地生成和呈现 网页。可以从任何浏览器或客户端设备请求 网页, 会向请求浏览器呈现标记(例如 HTML)。通常,您可以对多个浏览器使用相同的页,因为 会为发出请求的浏览器呈现适当的标记。但是,您可以针对诸如 Microsoft Internet Explorer 6 的特定浏览器设计 网页,并利用该浏览器的功能。 支持基于 Web 的设备(如移动电话、手持型计算机和个人数字助理 (PDA))的移动控件。
网页是完全面向对象的。在 网页中,可以使用属性、方法和事件来处理 HTML 元素。 页框架为响应在服务器上运行的代码中的客户端事件提供统一的模型,从而使您不必考虑基于 Web 的应用程序中固有的客户端和服务器隔离的实现细节。该框架还会在页处理生命周期中自动维护页及该页上控件的状态。
使用 页和控件框架还可以将常用的 UI 功能封装成易于使用且可重用的控件。控件只需编写一次,即可用于许多页并集成到 网页中。这些控件在呈现期间放入 网页中。
页和控件框架还提供各种功能,以便可以通过主题和外观来控制网站的整体外观和感觉。可以先定义主题和外观,然后在页面级或控件级应用这些主题和外观。
除了主题外,还可以定义母版页,以使应用程序中的页具有一致的布局。一个母版页可以定义您希望应用程序中的所有页(或一组页)所具有的布局和标准行为。然后可以创建包含要显示的页特定内容的各个内容页。当用户请求内容页时,这些内容页与母版页合并,产生将母版页的布局与内容页中的内容组合在一起的输出。
所有 代码都经过了编译,可提供强类型、性能优化和早期绑定以及其他优点。代码一经编译,公共语言运行库会进一步将 编译为本机代码,从而提供增强的性能。
44
版权声明:本文标题:个人博客系统的设计与实现 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/b/1709763149a545638.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论