《asp.net论坛设计毕业论文.doc》由会员分享,可在线阅读,更多相关《asp.net论坛设计毕业论文.doc(41页珍藏版)》请在三一办公上搜索。
1、毕业论文(设计)设计题目: 论坛设计学生姓名: *学 号: 院 系: 软件学院专 业: 软件技术班 级: 软件技术3班指导老师: 目 录论 文 摘 要1ASP.NET论坛的设计论文2一、BBS介绍2二、使用工具及相关知识3(一)SQL Server 2008 概述3(二)ADO.NET概述3(三)ASP.NET简介4三、系统简单分析4(一)系统可行性分析4(二)系统功能的需求分析6(三)系统简要用例图分析8(四)运行环境9四、系统总体设计10(一)系统的设计目标10(二)系统功能结构11五、数据库设计12(一)数据库和设计概述12(二)概念模型设计(E-R图)13(三)数据库逻辑设计14六、系
2、统的详细设计与实现17(一)前台设计与实现17(二)论坛后台页面设计如实现28结 论36致 谢37参 考 文 献38论 文 摘 要论坛系统BBS(Bullitin Board System)是互联网上一种人与人之间交互的必备工具,特别是做网站的必备,网上论坛提供一个信息交流的空间。人们可以通过论坛一起讨论自己喜欢的话题,提出自己喜欢的话题或者是回答一些问题。用户可以在论坛上发表对某个问题的看法阐述自己的观点,给别人讨论对某个问题的看法,在Internet的发展中论坛的作用是无法代替的。然而开发论坛的应用程序必须了解两部分的内容,即前台开发工具和后台的数据库。本文利用ASP.NET技术进行前台界
3、面设计,利用SQL Server 2008设计的后台数据库以及利用ADO.NET数据库访问技术实现对数据库的各种管理操作,实现BBS的各种基本功能。主要分析了BBS的主要组成情况,包括BBS的设计目标,框架结构,数据流程和BBS的主要特点等,重点介绍了前台功能模块的详细思路和实现方法,以及对后台数据库关键技术和部分源代码的详细说明。关键词:BBS ASP.NET ADO.NET SQLASP.NET论坛的设计论文姓名(开封大学 软件技术专业)论坛系统服务已经是互联网站一种极为常见的互动交流服务。论坛可以向网友提供开放性的分类专题讨论区服务,可以在此发表自己的某些观感、交流某些技术、经验乃至人生
4、的感悟和忧欢,亦可以作为网友之间的交流渠道。通过论坛的方式,增强人与人、个人与团体、团体与团体之间的交流联系,在Internet上实习信息的传递,提高办事效率。因此论坛建设在Internet应用上的地位显而易见,它已成为现代人沟通和获取信息的重要组成部分,从而倍受人们的重视。一、 BBS介绍BBS起源于二十世纪80年代初,最早的BBS只提供消息投递和阅读功能,使用者通常是些计算机爱好者。随后,系统允许会员之间分享软件、文件,进行实时网络对话、信件传输等。为了提供更好的服务,一些站点实行收费政策,但目前Internet上还是有无数免费BBS站点。一般BBS站点地址以域名形式出现,这些站点可通过远
5、程登录进行连接,更多的站点采用WWW的形式供会员使用。BBS也被称为异步会议系统、布告板,是网络上除了E-mail之外,最为普遍的在线讨论系统,它来源于早期Internet发展的BBS系统(Bulletin Board System),随着Internet的发展,逐步演变成现在的形式基于Web的BBS系统。在本文中,主要介绍使用ASP.NET技术来实现网络论坛建设。通过基于Internet互联网的动态WEB数据技术,可以解决远程的数据传输与读取,远程的客户终端(Client)可以通过WEB页面提交请求,查询远端的数据服务器上的信息,以实现信息的共享,同时利用Internet技术可以降低软件的开
6、发和部署成本,只要在服务器上安装WEB应用就可以使每个客户端都能浏览使用。目前,通过BBS系统可随时获取各种最新的信息;也可以通过BBS系统来和别人讨论计算机软件、硬件、硬件、Internet、多媒体、程序设计及人文、地理等等各种有趣的话题;还可以利用BBS系统来发布一些“问题”、“廉价转让”、“招聘启示”等问题;更可以召集亲朋友好友到聊天室内高谈论阔这个精彩的天地就在你我的身旁,只要您拥有一台可以访问互联网的计算机,就可以通过这个交流平台,来享受它的种种服务。二、 使用工具及相关知识(一) SQL Server 2008 概述SQL Server 2008出现在微软数据平台愿景上是因为它使得
7、公司可以运行他们最关键任务的应用程序,同时降低了管理数据基础设施和发送观察和信息给所有用户的成本。这个平台有以下特点: 1.可信任的使得公司可以以很高的安全性、可靠性和可扩展性来运行他们最关键任务的应用程序。2高效的SQL Server 2008降低了管理系统、.NET架构和Visual Studio的时间和成本,使得开发人员可以开发强大的下一代数据库应用程序。 3智能的商业智能(BI)继续作为大多数公司投资的关键领域和对于公司所有层面的用户来说的一个无价的信息源。(二) ADO.NET概述ADO.NET的名称起源于ADO(ActiveX Data Objects),这是一个广泛的类组,用于在
8、以往的Microsoft技术中访问数据.之所以使用ADO.NET名称,是因为Microsoft希望表明,这是在.NET编程环境中优先使用的数据访问接口。它提供了平台互用性和可伸缩的数据访问。ADO.NET增强了对非连接编程模式的支持,并支持RICH XML。由于传送的数据都是XML格式的,因此任何能够读取XML格式的应用程序都可以进行数据处理。事实上,接受数据的组件不一定要是ADO .NET组件,它可以是基于一个Microsoft Visual Studio的解决方案,也可以是任何运行在其它平台上的任何应用程序。ADO.NET是与数据源交互的.NET技术。有许多的Data Providers,
9、它将允许与不同的数据源交流取决于它们所使用的协议或者数据库。然而无论使用什么样的Data Provider,你将使用相似的对象与数据源进行交互。SqlConnection对象管理与数据源的连接。SqlCommand对象允许你与数据源交流并发送命令给它。为了对进行快速的只“向前”地读取数据,使用SqlDataReader。如果想使用断开数据,使用DataSet并实现能进行读取或者写入数据源的SqlDataAdapter。(三) ASP.NET简介ASP.NET的前身ASP技术,是在IIS 2.0上首次推出(Windows NT 3.51),当时与 ADO 1.0 一起推出,在IIS 3.0 (W
10、indows NT 4.0)发扬光大,成为服务器端应用程序的热门开发工具,微软还特别为它量身打造了Visual InterDev开发工具,在1994年到2000年之间,ASP技术已经成为微软推展Windows NT 4.0平台的关键技术之一,数以万计的ASP网站也是这个时候开始如雨后春笋般的出现在网络上。它的简单以及高度可定制化的能力,也是它能迅速崛起的原因之一。ASP.NET具有一下几个重要特点特点:1.强大性和适应性ASP.NET是基于通用语言的编译运行的程序,所以它的强大性和适应性,可以使它运行在Web应用软件开发者的几乎全部的平台上。2.简单性和易学性ASP.NET使运行一些很平常的任
11、务如表单的提交客户端的身份验证、分布系统和网站配置变得非常简单。3.高效可管理性ASP.NET使用一种字符基础的,分级的配置系统,虚拟服务器环境和应用程序的设置更加简单,因为配置信息都保存在简单文本中,新的设置有可能都不需要启动本地的管理员工具就可以实现。三、 系统简单分析(一) 系统可行性分析可行性研究的目的,就是用最小的代价在尽可能短的时间内确定是否能够解释决。要达到这个目的,必须分析几种主要的可能解法的利弊,从而判断原定的系统规模和目标是否现实,系统完成后能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上就是要进行一次大大的压缩简化了的系统分析和设计的过程,也就是在较
12、高层次上以抽象的方式进行的系统分析和设计的过程。系统的可行性分析主要包括技术上的可行性、经济上的可行性、操作上的可行性、法律上的可行性和开发环境上的可行性。本系统的可行性分析如下:在技术方面:随着国内外软件开发的日益发展壮大,各种中小企事业单位已具备独立开发各种类型的软件的能力,能够满足不同行业的特别的需求。从整个系统的技术构成上来看,它属于一个数据库应用类的系统。其基本操作就是对存在数据库中的数据进行添加、删除、查找、编辑等。所以就单纯的数据库应用来看,暂不存在太大的技术问题。因此从技术方面来看考虑本系统的可行性是可行的。在经济方面:现在越来越多的人都是通过网络做许多事情,这个BBS系统易于
13、操作,虽然对硬件要求比较高但是其安全性和管理性比较好,实用性比较好,相信经济效益也会比较高。因此从经济方面考虑开发此系统是可行的。在操作方面:随着社会的发展,全民素质的提高,不论是对于电脑系统的基本操作还是对电脑的基本维护都有了一定的基础。同时还可以配置专业的电脑维护人员来维护电脑,不必担心电脑的鼓掌问题,且系统使用简单明了,因此从操作方面来看此系统是可行的。在法律方面:此系统没有侵犯他人的个人合法利益,系统所涉及的条款与国家的现行法律没有抵触,不损坏国家、集体、个人的任何利益,所以在法律上是完全可行的。开发环境可行性:开发此BBS系统需要硬件环境要求操作系统为Windows XP Profe
14、ssional以上系统版本,需要安装Internet信息服务,还有ASP.NET环境。目前看操作系统和软件都不是问题,系统硬件也可以满足,所以从开发环境上来说是可行的。软件需求分析工作是软件生存周期中的重要的一步,也是决定性的一步。只有通过软件需求分析,才能把软件功能和性能的总体概念描述为具体的软件需求规格说明,从而奠定软件开发的基础。因此,在软件开发前应该做好对软件的需求分析。(二) 系统功能的需求分析1. 基本功能论坛的基本功能是构成论坛系统的必要功能,包括如下基本功能。(1) 发帖。论坛最初是为了互相讨论话题而诞生的,发表帖子就是表达自己的看法,与他人进行讨论,因此发帖是论坛首要的功能。
15、(2) 浏览帖子。发表帖子,就是供他人浏览查看,与他人分享自己的想法和经验。(3) 回帖。浏览了他人发帖子,想要发表自己的想法,参与讨论,就可以回复这个帖子。其实,发帖浏览帖子回帖三大功能周而复始的循环进行,就构成了论坛,每个参与论坛的人,主要目的就是发帖,查看自己已经发表的帖子,针对自己感兴趣的帖子进行回复,参与讨论。三大基本功能的相互关系如图1所示。发帖帖子列回帖浏览帖图1论坛基本功能关系图2. 扩展功能除以上基本功能外,其它的论坛功能都是扩展功能,包括如下功能:(1) 注册登录。方便经常发帖的人不需要重复填写个人信息。(2) 分板块浏览帖子。有利于具有相同兴趣的用户相互讨论,不易跑题。(
16、3) 编辑帖子。提供给用户更新自己发言的选择。(4) 删除帖子。如果用户发飙了不符合论坛规则的帖子,组需要管理员删除这些帖子。(5) 转移帖子。论坛划分了板块,如果帖子内容不属于所在板块的关注话题,那么管理员可以选择将此帖移动到所属话题的板块中去。(6) 置顶帖子。管理员如果需要强调某些帖子的重要,有必看性,可以将这些帖子置顶。(7) 指定精华帖。如果管理员认为某帖子内容很好,可以坐上标记,推荐给用户看,用户也可以只看精华帖。(8) 搜索帖子。方便用户查找自己需要的内容。(9) 管理板块。论坛板块需要先创建才能被使用,管理还可以删除板块的相关信息。(10) 设置参数。论坛一般有一些初始化信息,
17、比如论坛名称,每页显示帖子的数量等参数信息。(11) 管理用户。管理员可以对论坛注册用户进行管理,直接添加用户,赋予相关权限,也可以修改已注册用户的权限,对于违规用户可以删除。删除作者用户注册登录转移管理板块编辑帖子板块图2论坛扩展功能图论坛扩展功能图,如图2所示。(三) 系统简要用例图分析对于访问论坛的用户,可分为注册会员和为注册的临时用户,这两种用户有着不同的权限,比如临时用户只能对帖子进行查看,而注册会员除了查看帖子之外,还可以发帖,回复,查找用户,并且可以对自己的注册资料进行修改等等。系统的用例图如下图3所示:注册用户临时用户浏览帖子发表帖子回复帖子修改资料用户搜索管理员用户管理帖子管
18、理论坛信息管理图3系统用例图(四) 运行环境运行环境配置从硬件和软件两方面描述,所列出的都是系统所能正常运行的最低限度。而更高的硬件配置和软件环境将会带来更快的运行速度以及更稳定的运行效果。硬件要求:CPU:Intel Pentium 600MHz以上。内存:128M以上。磁盘安装空间:3.2GB(完全安装,包括 .NET Frameworks 以及 .NET IDE全部开发工具和MSDN)。显示:800*600,256色。软件需求:Microsoft Windows 2000 + SP1。 Microsoft Internet Explorer 5.5 。四、 系统总体设计(一) 系统的设计
19、目标对于典型的数据库管理系统,尤其是对像论坛这样的数据流量特别大的网络管理系统,必须要满足使用方便、操作灵活等设计需求。本系统在设计时应满足以下几个目标: 1采用人机对话的操作方式,界面设计美观友好,信息查看灵活、方便、快捷、准确,数据存储安全可靠。2全面展示系统内所有分类的帖子,并进行分页显示。3为用户提供一个方便、快捷的主题信息查看功能。4实现在线发表帖子。5提供登录模块,主要用开管理员登录系统和发表帖子时留下发表者的信息。6用户随时都可以查看自己发表的帖子。7对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。8系统最大限度地实现了易维护性和易操作性。9系统运行稳定安全可靠。
20、(二) 系统功能结构1.前台功能结构查看版面下根贴查看精华帖子搜索根贴查看根贴内容用户登录用户注册用户注销发表帖子回复帖子查看自己发表的帖子BBS论坛前台用户访问论坛首页面后,可进行查看版面下根贴信息、查看自己发表的帖子、查看精华帖子、搜索帖子、查看根贴信息、用户注册等功能。用户在此BBS论坛中通过注册成为该网站的真正用户并成功登录系统后,可进行发表帖子、回复帖子、查看自己发表的帖子等操作。前台功能结构图如图4所示。图4前台功能模块图2. 后台功能结构类别管理版面管理用户管理退出管理BBS论坛后台若用户的权限为管理员,则可进入后台,可进行论坛类别的管理、版面管理和用户管理的操作。后台功能结构图
21、如下图5所示。图5后台功能模块图3. 系统流程图类别管理版面管理用户管理是否登录是否成功进入后台后台首页用户登录管理员(1) 系统后台流程图如下图6所示。图6后台功能流程图图7前台台功能流程图图(2)系统后台流程图如下图7所示。查看精华帖子搜索根贴查看版面下根贴查看根贴内容发表帖子回复帖子提前帖子删除帖子置顶帖子置为精华贴删除回复帖查看自己发表的根贴用户注册是否管理员、版主、帖子发表者是否登录是否登录提示无权操作游客访问是是否是否否前台首页用户登录成功是五、 数据库设计数据库设计是指对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统,使之能够有效地存储数据,满足各种用户的应用
22、需求(信息要求和处理要求)。(一) 数据库和设计概述1.数据库是信息系统的核心和基础,把信息系统中大量的数据按一定的模型组织起来,提供存储、维护、检索数据的功能,使信息系统可以方便、及时、准确地从数据库中获得所需的信息。2.数据库是信息系统的各个部分能否紧密地结合在一起以及如何结合的关键所在。3.数据库设计是信息系统开发和建设的重要组成部分。(二) 概念模型设计(E-R图)数据模型是是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。E-R模型的基本概念 ER图概念化地构建实体间关系的模型,这
23、使得它们区别于数据库模型图。ER图的理念是:项目所有参与者能理解ER图。ER图由不同实体类型、关系、特性和类型构成。实体是诸如用户的实际对象,有时更抽象,但必须有业务意义。特性用于描述实体,关系用于实体之间(1)实体:现实世界中的事物; (2)属性:事物的特性; (3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。用户M发表N帖子 详细资料11N管理管理员 1N添加1修改论坛图8系统E-R图本系统的E-R图如下图8所示:(三) 数据库逻辑设计图9 BBS数据库所包含的数据表结构图BlockBig(论坛区块信息表)BlockSmall(论坛版块信息表)Message(
24、消息信息表)Popedom(论坛类别信息表)Post(论坛帖子信息表)PostBack(帖子回复信息表)PostType(帖子类型信息表)Users(用户信息表)BBS根据数据库概念设计,可以创建与实体对应的数据表。本系统中所包含的数据表的结构图如图9所示。本系统包括8个数据表,下面分别是这些表的结构。1. BlockBig(论坛区块信息表),该表结构如下表表1所示。表1 BlockBig(论坛区块信息表)列名数据类型是否主键允许空值描述bigIdint是否ID自动生成bigNamevarcher否是区的名称bigDescriptionvarcher否是对区的描述BigAdminvarcher
25、否是区管理员bigAddtimedatetime否是区添加时间2. BlockSmall(论坛版块信息表),该表结构如下表表2所示。表2 BlockSmall(论坛版块信息表)列名数据类型是否主键允许空值描述small_Idint是否表Id自动生成small_Namevarchar否是板块名称small_Desciptionvarchar否是板块描述small_ImgUrlvarchar否是板块图片small_Adminint否是版主small_BigIdint否是所属区号small_Adddatedatetime否是加入时间small_PostCountint否是帖子数量small_Post
26、BackCountint否是回复帖子数量3. Message(消息信息表),该表结构如下表表3所示。表3 Message(消息信息表)列名数据类型是否主键允许空值描述message_idint是否表Id自动生成message_titlevarcher否是消息题目message_contentvarcher否是消息内容message_senderint否是消息发送者message_toUserint否是消息接收者message_IsReadint否是是否已读message_Adddatedatetime否是消息时间4. Popedom(论坛类别信息表),该表结构如下表表4所示。表4 Popedo
27、m(论坛类别信息表)列名数据类型是否主键允许空值描述popedom_idint是否表Id自动生成popedom_Namevarchar否是论坛类别名称5. Post(论坛帖子信息表),该表结构如下表表5所示。表5 Post(论坛帖子信息表)列名数据类型是否主键允许空值描述post_idint是否表Id自动生成post_Titlevarchar否是帖子题目post_Contentvarchar否是帖子内容post_Senderint否是帖子发表人post_SendTimedatetime否是帖子发送时间post_SmallIdint否是所属版块编号post_TypeIdint否是帖子类型标号po
28、st_BrowseCountint否是帖子浏览次数post_BackCountint否是帖子回复次数6. PostBack(帖子回复信息表),该表结构如下表表6所示。表6 PostBack(帖子回复信息表)列名数据类型是否主键允许空值描述Postback_Idint是否表Id自动生成Postback_contentvarchar否是帖子回复内容Postback_Senderint否是帖子回复人Postback_SendTimedatetime否是帖子回复时间Postback_PostIdint否是帖子标号7. PostType(帖子类型信息表),该表结构如下表表7所示。表7 PostType(
29、帖子类型信息表)列名数据类型是否主键允许空值描述PostType_Idint是否表Id自动生成PostType_Namevarchar否是帖子类型名称PostType_BlockSmallIdint否是所属版块标号PostType_Adddatedatetime否是帖子类型创建时间8. Users(用户信息表),该表结构如下表表8所示。表8 Users(用户信息表)列名数据类型是否主键允许空值描述UserIdint是否表Id自动生成UserNamevarchar否是用户姓名UserPwdvarchar否是用户密码UserEmailvarchar否是用户EmailUserPicvarchar否是
30、用户照片UserQxint否是用户权限设置UserOnlineint否是是否在线UserIpvarchar否是用户ipUserLoginDatedatetime否是用户注册时间IsAdminint否是是否管理员六、 系统的详细设计与实现(一) 前台设计与实现由于前台功能模块较多,而各模块的实现过程都是类似的,所以对于系统前台,现在只介绍系统重点设计。图10 Asp_netBBS论坛首页1. 论坛系统前台首页页面运行结果如下图所示。该页面为论坛首页页面,当用户进入本系统时会自动进入本页面。用户可以自行选择自己想进的版面。此BBS设计有母版页存在,故论坛首页实现代码如下: 区长: asp:Labe
31、l ID=Label1 runat=server Text= 创建日期: asp:Label ID=Label2 runat=server Text= a href=android_study.aspx?big_id= a href=android_study.aspx?big_id= 图11 Asp_netBBS论坛登录页面2. 该BBS论坛登录页面如下。该页面是用户登录页面,输入正确的用户名和密码按登录按钮则进入登录后页面,按重置按钮则清空文本框。若用户未注册按注册按钮进入注册页面。其实现代码如下:public partial class login : System.Web.UI.Pag
32、e /获取数据库连接字符串 DataHelper helper = new DataHelper(); protected void Page_Load(object sender, EventArgs e) protected void User_login_Click(object sender, EventArgs e) String Name = UserName.Text; string Pwd = User_pwd.Text; String user_ip=Request.UserHostAddress;/获取用户IP地址信息 if (Name = | Pwd = ) String
33、 alerts = 用户名或密码不能为空!; Response.Write(window.alert( + alerts + ); else VldUserLogin(Name,Pwd,user_ip); public void VldUserLogin(string strUserName, string strPassWord, string ip)/验证并修改个别信息 string strUserId = null; string isadmin = null; int UserQx=0; String connstring = helper.Getstr(); String strSq
34、l = SELECT UserId FROM Users WHERE UserName= + strUserName + and UserPwd= + strPassWord + ;/根据用户名和密码来查询用户的ID String strSql2 = SELECT IsAdmin FROM Users WHERE UserName= + strUserName + and UserPwd= + strPassWord + ;/根据用户名和密码来查询用户是否为管理的的标志 String strSql3 = SELECT UserQx FROM Users WHERE UserName= + st
35、rUserName + and UserPwd= + strPassWord + ;/查询用户的权限 string strSql4 = update Users set UserOnline= + 1 + ,UserIp= + ip + WHERE UserName= + strUserName + and UserPwd= + strPassWord + ; SqlConnection conn = new SqlConnection(connstring); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn;/设置连接 Sql
36、DataReader reader; try conn.Open(); cmd.CommandText = strSql; reader = cmd.ExecuteReader(); if (reader.Read() strUserId =readerUserId.ToString();/获取编号UserId reader.Close(); if (strUserId.Equals() String alerts = 该用户不存在!; Response.Write(window.alert( + alerts + ); else cmd.CommandText = strSql2; reader = cmd.ExecuteReader(); if (reader.Read() isadmin = readerIsAdmin.ToString();/获取是否是管理员 reader.Close(); cmd.CommandText = strSql3; reader = cmd.ExecuteReader(); if (reader.Read() UserQx = int.Parse(readerUserQx.ToString();/获取权限 reader.Close();