BBS论坛系统技术设计方案.docx
《BBS论坛系统技术设计方案.docx》由会员分享,可在线阅读,更多相关《BBS论坛系统技术设计方案.docx(35页珍藏版)》请在冰豆网上搜索。
BBS论坛系统技术设计方案
BBS论坛系统技术设计方案
开发背景
BBS是在1992年底随着国际互联网的开始流行而迅速发展起来的。
互联网的产生使得以前只能在本地访问的BBS可以被全世界随意访问,这对大多数人来说是极具诱惑力的。
BBS是一个有多人参加的讨论系统,在BBS上大家可以对一个共同感兴趣的问题进行讨论,自由地发表自己的意见与观点,并且能直接与其他的人进行沟通。
按照的性质以及服务对象来分,迄今有以下几种类型:
一是校园BBS。
校园BBS作为主要的集中地,在BBS领域具有举足轻重的地位。
由于校园BBS的繁荣,吸引了很多的社会人士参与。
二是专业BBS。
一般是由各个著名的大公司组建,人们可以利用其交流自己对商品的看法,更为重要的是可以解决商品使用中的问题。
三是商业BBS。
它是由ISP建立的BBS站点,这类BBS站点各种信息比较多,容相当丰富。
四是小型局域BBS。
一般是由个人或小型集体建立,为小围信息交流服务。
五是业余BBS。
一般由BBS爱好者个人利用一些免费空间办的BBS,目的是为广大网友提供一个在某些专业上的交流场所。
六是新闻媒体BBS。
是由新闻媒体设立的,为广大网友提供对新闻信息进行评论、发表意见和观点的场所。
随着互联网事业的蓬勃发展。
BBS,这个具有强大实时交互功能,信息交流的平台,使人们不再像电视观众、电台听众、报纸杂志读者一样只是被动地观看、收听、阅读,而是可以积极而及时地参与讨论,在了解他人观点意见的同时也可以发表自己的看法。
BBS论坛系统是为了方便大家的沟通和获取信息而开发的系统。
我们利用ASP.NET知识和SQLServer2005开发BBS论坛管理系统。
该系统以Internet为平台,前台可使任何人注册、登录、登录在论坛上进行发帖、回帖、浏览帖子等。
管理员也可以在后台对帖子、版块、用户等进行相关的管理。
一个小型BBS论坛系统的前台功能主要包括浏览搜索帖子、用户登陆注册、发表回复帖子、个人资料管理和帖子管理;后台功能主要包括用户管理、论坛版块管理和帖子管理等。
系统目标
开发本系统意在吸纳大部分游离在众多论坛的大学生,达到校网等论坛的目标。
系统开发的总任务是实现文章的成功发表,留言的发布与回复。
从而达到用户之间信息交流的目的。
系统主要面向两类用户:
用户和系统管理员。
用户可以先注册,然后在里发表文章、留言等。
系统管理员可以对用户的信息进行增添和删除及修改,对版块进行增加、删除和修改操作;还可以对进行修改与维护。
BBS对大学生学习生活的影响
1.BBS提供了丰富的网络学习资源
论坛是一个经过学习者整理加工过的网络资源汇en集中心,从新闻、学习到娱乐、体育,从文字到视频、音频,BBS汇集了各种形式、容的网络资源。
不少BBS都设有专门的NetResources(网络资源)板块;FTP技术和BT技术的发展更是为BBS站资源的更新、共享提供了方便。
如今,大部分大学的BBS论坛都有相应的FTP服务器,不少BBS还与网络新兴的BT技术、Blog(博客)技术等连接起来BBS水木清华站就有“水木Blog”的栏目)。
2.BBS促进了协作学习
基于网络的论坛社区也是各种学习资源组合的场所,为学习者提供了学习环境。
作为一个学生参与论坛的网络活动可包括许多种学习的意义,在特定板块,论坛参与者围绕某个话题或者问题,通过发表、回复话题、版面讨论、站信件等方式进行互动讨论、相互探讨,形成了一种以学习者为中心的学习方式。
从教育网人气排名前十名的论坛的网友参与的情况来看,在各大学习板块里,基本上每帖子提出的问题都可以得到网友友好的、认真的回复解答,有着浓郁的协作探讨的学习气氛和良好的学习效果。
3.BBS提高了学生自主学习能力
网络学习的本质是一种自主学习,论坛提供了丰富的网络学习资源,使学习者能自主选择和控制学习地点、学习时间、学习方法和学习容。
在论坛里,学生可以自主地围绕学习问题,通过发帖、回复的形式提出讨论,寻求解答帮助,提高了学习的积极性和自主学习的能力。
A\关键技术介绍
IFrame框架技术
框架是在网页设计中经常用到的一种技术,通过在HTML网页文档中使用标记,就可以将一个页面拆分成多个区域,每个区域称为一个框架,一般情况下每一个框架中都会放置一个网页,这些网页间可以相互独立,也可以有所关联。
框架的网页以一种平铺的形式充满了整个页面空间。
但在网页设计中,也会经常遇到在一个网页中引用另外一个网页的情况,即在一个网页中开辟一块区域用于放置其他网页,彷佛形成了一种“画中画”的效果。
这种功能就是利用嵌入式框架(IFrame)技巧实现的。
嵌入其他网页的初始页面称为父框架,嵌入到父框架的页面称为子框架或嵌入框架。
这种网页的嵌入技术不仅在很大程度上丰富了网页的布局设计,同时也可以方便地实现多种复杂的网页特效。
嵌入式框架(IFrame)是框架的一种标记,在页面设计中经常用到。
IFrame标记又叫浮动帧标记,使用IFrame可以将一个文档嵌入在另一个文档中显示,可以随处引用不拘泥网页的布局限制。
在当今互联网网络广告横行的时代,IFrame更是无孔不入,将嵌入的文档与整个页面的容相互融合,形成了一个整体。
与框架相比,嵌框架Iframe更容易对的导航进行控制,最大的优点在于其灵活性。
第3方组件FreeTextBox
FreeTextBox的作用
FreeTextBox是一个基于InternetExplorer中MSHTML技术的ASP.NET开源服务器控件。
这是一款优秀的自由软件(FreeSoftware),我们可以轻松地将其嵌入到WebForms中实现HTML容的在线编辑,在新闻发布、博客写作、论坛社区等多种Web系统中都会有用途。
FreeTextBox的使用方法
步骤1:
从网上下载FreeTextBox控件,解压。
步骤2:
在VS2005编辑器中可通过工具>选择工具箱项>.NETFramework组件>浏览并选定FreeTextBox.dll后按确定控件将默认显示在VS2005编辑器工具箱的常规选项卡(可自行将控件拉到标准选项卡中),也可以直接在工具箱的标准选项卡列标头或所属列任何控件上右击>选择项>.NETFramework组件>浏览并选定FreeTextBox.dll后即可直接将控件加入标准选项卡。
这样以后只要在常规选项卡或标准选项卡中将FreeTextBox控件直接拖放到项目的设计页面即可完成控件的调用。
步骤3:
将FreeTextBox目录拷贝到所在项目里。
ADO.NET技术
ADO.NET的名称起源于ADO(ActiveXDataObjects),这是一个广泛的类组,用于在以往的Microsoft技术中访问数据。
之所以使用ADO.NET名称,是因为Microsoft希望表明,这是在.NET编程环境中优先使用的数据访问接口。
它提供了平台互用性和可伸缩的数据访问。
ADO.NET增强了对非连接编程模式的支持,并支持RICHXML。
由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。
事实上,接受数据的组件不一定要是ADO.NET组件,它可以是基于一个MicrosoftVisualStudio的解决方案,也可以是任何运行在其它平台上的任何应用程序。
ADO.NET是一组用于和数据源进行交互的面向对象类库。
通常情况下,数据源是数据库,但它同样也能够是文本文件、Excel表格或者XML文件。
ADO.NET允许和不同类型的数据源以及数据库进行交互。
然而并没有与此相关的一系列类来完成这样的工作。
因为不同的数据源采用不同的协议,所以对于不同的数据源必须采用相应的协议。
一些老式的数据源使用ODBC协议,许多新的数据源使用OleDb协议,并且现在还不断出现更多的数据源,这些数据源都可以通过.NET的ADO.NET类库来进行连接。
ADO.NET提供与数据源进行交互的相关的公共方法,但是对于不同的数据源采用一组不同的类库。
这些类库称为DataProviders,并且通常是以与之交互的协议和数据源的类型来命名的。
ADO.NET包含的对象:
SqlConnection对象
和数据库交互,你必须连接它。
连接帮助指明数据库服务器、数据库名字、用户名、密码,和连接数据库所需要的其它参数。
Connection对象会被Command对象使用,这样就能够知道是在哪个数据库上面执行命令。
与数据库交互的过程意味着你必须指明想要发生的操作。
这是依靠Command对象执行的。
你使用Command对象来发送SQL语句给数据库。
Command对象使用Connection对象来指出与哪个数据库进行连接。
你能够单独使用Command对象来直接执行命令,或者将一个Command对象的引用传递给SqlDataAdapter,它保存了一组能够操作下面描述的一组数据的命令。
SqlDataReader对象
许多数据操作要求你只是读取一串数据。
DataReader对象允许你获得从Command对象的SELECT语句得到的结果。
考虑性能的因素,从DataReader返回的数据都是快速的且只是“向前”的数据流。
这意味着你只能按照一定的顺序从数据流中取出数据。
这对于速度来说是有好处的,但是如果你需要操作数据,更好的办法是使用DataSet。
DataSet对象
DataSet对象是数据在存中的表示形式。
它包括多个DataTable对象,而DataTable包含列和行,就象一个普通的数据库中的表。
你甚至能够定义表之间的关系来创建主从关系(parent-childrelationships)。
DataSet是在特定的场景下使用——帮助管理存中的数据并支持对数据的断开操作的。
DataSet是被所有DataProviders使用的对象,因此它并不像DataProvider一样需要特别的前缀。
SqlDataAdapter对象
某些时候你使用的数据主要是只读的,并且你很少需要将其改变至底层的数据源。
同样一些情况要求在存中缓存数据,以此来减少并不改变的数据被数据库调用的次数。
DataAdapter通过断开模型来帮助你方便的完成对以上情况的处理。
当在一单批次的对数据库的读写操作的持续的改变返回至数据库的时候,DataAdapter填充(fill)DataSet对象。
DataAdapter包含对连接对象以及当对数据库进行读取或者写入的时候自动的打开或者关闭连接的引用。
另外,DataAdapter包含对数据的SELECT,INSERT,UPDATE和DELETE操作的Command对象引用。
你将为DataSet中的每一个Table都定义DataAdapter,它将为你照顾所有与数据库的连接。
所有你将做的工作是告诉DataAdapter什么时候装载或者写入到数据库。
总结:
ADO.NET是与数据源交互的.NET技术。
有许多的DataProviders,它将允许与不同的数据源交流――取决于它们所使用的协议或者数据库。
然而无论使用什么样的DataProvider,你将使用相似的对象与数据源进行交互。
SqlConnection对象管理与数据源的连接。
SqlCommand对象允许你与数据源交流并发送命令给它。
为了对进行快速的只“向前”地读取数据,使用SqlDataReader。
如果想使用断开数据,使用DataSet并实现能进行读取或者写入数据源的SqlDataAdapter。
Transact-SQL技术
T-SQL是Microsoft公司在关系型数据库管理系统SQLServer中的SQL-3标准的实现,是微软对SQL的扩展,具有SQL的主要特点,同时增加了变量,运算符,函数,流程控制和注释等语言元素,使得其功能更加强大。
T-SQL对SQLServer十分重要,SQLServer中使用图形界面能够完成的所有功能,都可以利用T-SQL来实现。
使用T-SQL操作时,与SQLServer通信的所有应用程序都通过向服务器发送T-SQL语句来进行,而与应用程序的界面无关。
根据其完成的具体功能,可以将T-SQL语句分为四大类,分别为数据定义语句,数据操作语句,数据控制语句和一些附加的语言元素。
数据操作语句
SELECT,INSERT,DELETE,UPDATE
数据定义语句
CREATETABLE,DROPTABLE,ALTERTABLE
CREATEVIEW,DROPVIEW
CREATEINDEX,DROPINDEX
CREATEPROCEDURE,ALTERPROCEDURE,DROPPROCEDURE
CREATETRIGGER,ALTERTRIGGER,DROPTRIGGER
数据控制语句
CRANT,DENY,REVOKE
附加的语言元素
BEGINTRANSACTION/COMMIT,ROLLBACK,SETTRANSACTION
DECLAREOPEN,FETCH,CLOSE,EXECUTE
JavaScript脚本语言
Javascript是一种由Netscape的LiveScript发展而来的原型化继承的面向对象的动态类型的区分大小写的客户端脚本语言,主要目的是为了解决服务器端语言,比如Perl,遗留的速度问题,为客户提供更流畅的浏览效果。
当时服务端需要对数据进行验证,由于网络速度相当缓慢,只有28.8kbps,验证步骤浪费的时间太多。
于是Netscape的浏览器Navigator加入了Javascript,提供了数据验证的基本功能。
JavaScript是一种基于对象和事件驱动并具有相对安全性的客户端脚本语言。
同时也是一种广泛用于客户端Web开发的脚本语言,常用来给HTML网页添加动态功能,比如响应用户的各种操作。
它最初由网景公司的BrendanEich设计,是一种动态、弱类型、基于原型的语言,置支持类。
JavaScript是Sun公司的注册商标。
Ecma国际以JavaScript为基础制定了ECMAScript标准。
JavaScript也可以用于其他场合,如服务器端编程。
完整的JavaScript实现包含三个部分:
ECMAScript,文档对象模型,字节顺序记号。
Netscape公司在最初将其脚本语言命名为LiveScript来Netscape在与Sun合作之后将其改名为JavaScript。
JavaScript最初受Java启发而开始设计的,目的之一就是“看上去像Java”[2],因此语法上有类似之处,一些名称和命名规也借自Java。
但JavaScript的主要设计原则源自Self和Scheme[3].JavaScript与Java名称上的近似,是当时网景为了营销考虑与Sun公司达成协议的结果。
为了取得技术优势,微软推出了JScript来迎战JavaScript的脚本语言。
为了互用性,Ecma国际(前身为欧洲计算机制造商协会)创建了ECMA-262标准(ECMAScript)。
现在两者都属于ECMAScript的实现。
尽管JavaScript作为给非程序人员的脚本语言,而非作为给程序人员的编程语言来推广和宣传,但是JavaScript具有非常丰富的特性,目前JavaScript的最新版本为1.9版。
ASP.NET技术
ASP.NET是用于形成于Web的应用程序的容丰富的编程框架。
它是一种创建动态Web应用程序的全新手段,它给开发人员提供了比以往更大的灵活性和更多的功能。
通过把通用代码置于控件中,并将表示逻辑和商务逻辑分离开来的崭新方法,ASP.NET使应用程序的开发和维护更加容易。
它是Microsoft.NETFramework的组成部分,允许使用Framework支持的任何语言创建代码。
像JSP、PHP和ASP一样,ASP.NET也是一种服务器端技术,它可以制作动态WEB页的容。
VisualStudio.NET不是ASP.NET必要的组成部分,许多开发人员没有它照样可以开发。
不过,一旦安装了.NETFrameworkSDK,用户就可以在任何环境下开发ASP.NET应用程序。
ASP.NET是一种用于创建容丰富的动态、WEB应用程序和XMLWEB服务的新编程模型。
ASP.NET使用编译的、事件驱动编程模型从而提高运行速度和分离应用程序逻辑和用户界面。
用ASP.NET可以很容易的开发基于三层架构的B/S应用程序。
与以往的编程模型相比,这种新编程模型提供了基于组件的架构和开发例。
第1章需求分析
需求概述
在需求分析阶段,我们采用UML建模,目的是捕捉系统的所有功能需求并加以描述,同时建立模型,分析并提取所开发系统的各种可以模块化的功能以及描述它们的合作概貌。
BBS系统的基本需求如下:
(1)它是一个计算机网络软件系统,可通过WEB浏览器进行访问;
(2)系统支持三种用户(游客、注册的用户、管理员),每种用户可使用的功能都是不同的;
(3)游客只可以查看帖子;
(4)游客可以通过注册的方法变为注册用户,注册信息包括用户名、密码及其它附属信息。
其中用户名是唯一的,不可与其它注册用户的用户名重复;
(5)游客在登录(输入用户名与密码)之后,其身份变为注册用户;
(6)注册用户可以查看所有旧帖子,并发新帖子;
(7)注册用户可以回复他人或自己发表的帖子;
(8)注册用户可以管理自己的附属信息并修改它们;
(9)管理员是管理BBS的用户,且是一种特殊的注册用户;
(10)管理员可以管理注册用户,如查看、修改、删除注册用户信息;
(11)管理员可以管理BBS的帖子,如删除不合法的帖子等。
系统用例图
在本系统中,通过分析,可以确认BBS中有三种角色:
管理员,注册用户,游客。
在此基础上,为每个角色定义他们所能执行的系统功能(用例,即每个角色的功能需求)。
游客用例图如图3.1所示。
图3.1游客用例图
游客角色指未执行登录过程的系统进入者。
游客可以查看帖子,而不能发新帖子与回复帖子。
游客在登录(输入用户名与密码)后转为注册用户。
游客在注册后自动执行登录过程,即自动转为注册用户。
注册用户用例图如图3.2所示。
图3.2注册用户用例图
注册用户指已经登录过的用户,他们不仅可以查看帖子,还可以发新帖子、回复帖子及管理个人信息。
注册用户在执行用户退出过程后变为游客。
管理员用例图如图3.3所示。
图3.3管理员用例图
管理员可视为一种特殊的注册用户,它不仅拥有注册用户的全部功能(上图中略去这部分功能),还拥有两个其它的功能:
1,帖子管理,2,用户管理(用户指注册用户、管理员)。
系统关键领域类图
分析阶段的另一项工作是特定领域分析,以列出系统中的特定领域类。
本系统中,通过系统用例分析可以发现,本系统有以下关键的领域类:
用户、帖子。
为了方便管理帖子,可以将帖子分为发布的帖子与回复的帖子。
不同用户对于帖子的权限不同。
用户类可以分为:
已注册的用户信息、当前注册的用户。
各大领域类的关键信息如下:
图3.4用户信息表图图3.5用户信息表图
发布帖子领域类中的发帖人编号即用户信息领域类中的用户编号。
回复的帖子领域类中的回帖人编号即用户信息领域类中的用户编号。
回复的帖子领域类中的帖子编号即发布帖子领域类中的帖子编号。
第2章系统概述
系统介绍
“BBS论坛管理系统”是通用性很强的论坛系统,集成了浏览帖子,发表帖子,回复帖子,删除帖子,版块管理,用户注册,用户头像管理等多种实用的功能。
本系统是运用微软可视化编程工具之一MicrosoftVisualStudio2005开发的,界面美观大方,系统运行稳定。
本系统以SQLServer2005为数据库。
主要功能
按照编程流程,把BBS论坛的模块按照实现功能来划分,包括:
(1)论坛注册模块:
用户的基本信息的填写。
(2)论坛登录模块:
论坛使用者的一定限制。
(3)论坛版块选择模块:
论坛多元化,便于对帖子的管理。
(4)帖子标题显示模块:
显示某一论坛版块的帖子。
(5)帖子回复模块:
对帖子进行回复。
(6)帖子发表模块:
发表新的帖子。
(7)论坛管理模块:
用户管理,版主管理,论坛版块管理,论坛帖子管理,头像管理。
(8)论坛主页模块:
对论坛的全局显示。
(9)数据库设计模块:
论坛所需要的数据。
主要模块介绍
主页面
主页面是论坛的门户,子页面的调用要通过主页面实现。
另外,主页面还要显示论坛最新信息、信息、广告等信息。
本系统是个综合论坛,所以在主页面中要对各类信息按类型进行分类。
除此之外,论坛最新信息要实时响应。
其运行结果如图4.1所示。
图4.1主页面运行结果
论坛注册模块
一个论坛需要对其中的用户进行管理,因此,一般只有授权用户才能够享有BBS论坛的一些基本功能,而对于一个初次登录论坛的用户,只有通过注册才能够得到基本授权。
原先的论坛在发帖时,需要填写自己的笔名。
这样对于总是重复发帖的人,总是要填写笔名,比较麻烦。
因此,论坛扩展了用户注册登录功能,参与论坛的人注册了自己的笔名和个人信息,拥有了论坛中的身份,发言时就不需要重复写个人信息了。
用户在注册过程中,一般需要确认论坛的基本准则和行为规,再填写基本的用户信息,其中最重要的自然是用户名和密码,这是一个用户在该论坛的身份象征。
论坛注册模块运行结果如图4.2所示。
图4.2论坛注册模块运行结果
论坛登录模块
想要在论坛中进行相应的操作,不但需要用户有在这个论坛上相应的权限,还需要能让论坛知道这一点,这是就是登录模块。
用户注册时提供的用户名和密码,就像通行证一样,获得了论坛的认可后,才能开始在论坛之中进行操作。
论坛登录界面运行结果如图4.3所示。
图4.3论坛登录界面运行结果
论坛版块选择模块
在论坛中,用户所发表的主题类型不同,如果只在一个区域显示,对用户的查阅,和管理员的维护带来很多的不便。
为此,我们把论坛分为不同的版块,以显示不同类型的帖子。
这样,用户在发表和查阅帖子时,可根据帖子类型到相应的论坛版块进行集中性的发表和查阅。
管理员在维护论坛时也可以节省很多不必要的时间开销。
论坛版块运行结果如图4.4所示(音乐空间版块)。
图4.4论坛区模块运行结果
帖子发表模块
这个模块的主要功能就是提供给用户一个发表自己的帖子的功能。
用户在登录之后,通过填写相应的容,如帖子标题、帖子容等,就能在论坛中的标题列表中找到自己的帖子。
帖子发布模块运行结果如图所示4.5所示。
图4.5帖子发表运行结果
第3章系统分析
BBS论坛管理系统的技术可行性分析
BBS论坛管理系统就是提供给注册用户一个平台,会员用户可以通过Internet接入,登录本系统,在这个平台上发表帖子、阅读帖子、回复帖子等等。
此类系统通常有以下四种类型的操作用户:
游客用户、普通用户、版主、管理员。
每类用户有其不同的操作集,系统通常提供一个统一的登录页面,此页面应能自动识别不同级别的用户,并提供不同的操作界面。
与之相应,此类系统通常应具有以下功能:
用户注册、用户登录、发表帖子、阅读帖子、回复帖子、个人资料维护、版块管理、版主管理、用户管理等等,所有操作都可以由用户在客户端浏览器中完成,而服务器端程序会按用户的要求来完成对系统数据的操作,并将结果传给Web服务器,再由Web服务器处理成HTML文件后发送到客户端浏览器。
这就是所谓的B/S结构应用系统,B/S结构即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。
C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用