




已阅读5页,还剩26页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
江西交通职业技术学院论坛毕业设计论文专 业 软件技术 a姓 名 娄晨 a学 号 0851200002 a指导教师 吴磊 a江西交通职业技术学院信息工程系毕业论文开题报告题 目:论坛的设计与制作报告人:娄晨一、选题的目的和意义在计算机网络飞速发展的今天,BBS已经成为人们网上交流的重要平台,因此对BBS论坛的研究是十分必要的。“网站”是一种呈现在网络上的新兴媒体,通过Internet已经成为一个实时的,多媒体的信息传播渠道。它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。目前,人们渐渐开始把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet在网站上发表自己对社会对生活的理解和建议。二、研究方案本系统采用时下流行的ASP.NET技术开发,它具有高效和安全等许多优点。数据库采用的是具有稳定、安全和高效等许多特性的SQL 2000,为系统提高良好的数据保障。在系统的架构上选择三层架构,这是一种扩展性非常强的模式,在后期开发和维护中,可以体现对扩展开放对修改关闭的设计原则,此外也可以很容易的将应用程序移植到其他数据库中。三、进度计划随着过程化的开发时代渐渐退出舞台,取而代之的是面向对象的开发体系,利用ASP.NET框架的面向对象特性,我们可以很容易的构建自己想要的应用程序。在软件开发的前期,一份优秀的需求分析可以为我们减少后期开发中的错误,节省开发时间。本系统预计在一个星期左右完成系统的注册登录模块、发帖模块、回帖模块以及帖子浏览模块。四、指导教师意见指导教师: 摘 要随着时间的推移,我们以计算机为主导的生活方式不断发生着变化。如今每个人都注意到了互联网的价值。并且越来越依赖基于Web的服务。就个人而言,我喜欢通过互联网来购物、买票、比较产品、获取交通状况、阅读产品评价、在线交流等。本文将讲述一个论坛的设计与制作过程。软件的开发主要包括三个阶段:需求分析、代码编写和后期维护。本文主要从数据模型、架构设计以及安全性对论坛开发做以阐述,并对时下流行的ASP.NET、C#、JavaScript等平台或编程语言做简单介绍。本系统为一个ASP.NET技术论坛,主要作为学生群体学习交流使用,其中包括各种编程语言版块,能为学生提供一个良好的学习环境。系统采用三层架构开发,可以比较容易的转换各个版块的功能,提供了较好的灵活性和可伸缩性。我相信随着互联网的不断发展,这种模式的系统将会有很大的发展空间,利用并组合这些编程技术来为用户提供丰富的特色应用也将变的更简单。目录第一章 绪论5第二章 BBS论坛简介6第三章 开发环境概述83.1 编程语言3.2 数据库技术3.3 运行环境第四章 系统总体规划与设计114.1 架构设计4.2 数据库设计4.3 接口设计4.4 页面设计第五章 代码编写135.1 数据模型5.2 系统公用函数5.3 接口5.4 数据访问层5.5 工厂函数5.6 业务逻辑层5.7 表示层第六章 安全性与性能226.1 身份验证6.2 加密6.3 预防SQL注入6.4 预防恶意脚本6.5 性能第七章 运行效果 25第八章 总结与展望29参考文献30第一章 绪 论关键字:网络化 Internet 万维网进入二十一世纪,计算机技术迅速向着网络化、集成化方向发展。传统的单机版应用软件正在逐渐退出舞台,取而代之的是支持网络、支持多种数据信息(多媒体)的新一代网络版应用软件,而目前网络版软件中似乎存在着两种不同的趋势,一种是称为客户端服务器的C/S结构应用系统,这类软件具有结构严谨,运行效率高,服务器端压力小,安全性好等优点,被广泛运用于局域网中。而另一种,也是本毕业设计所采用的,是称为浏览器服务器的B/S结构应用系统,它的特点是在客户端直接采用了功能强大的浏览器软件作为界面,其优点在于软件开发效率高,客户端不受操作平台的限制、也不受地域的限制,网络传输量少,即适用于局域网,更适用于Internet,而且投资小、见效快,用户可以不必进行服务器方面的投资,而是去租用,甚至是免费使用ISP的服务器资源,因而受到越来越多中小型单位的青睐。Internet起源于20世纪60年代末、70年代初,当时,美国国防部为了将充斥于军事基地内各种厂商的电脑主机互连,让它们可以进行数据交换以便研究工作顺利进行,于是成立了ARPA网络计划。ARPA计划尝试建设一个网络系统,它可将各种不同厂商的电脑连接起来。随着这个计划的成功,各学术单位,研究机构也纷纷与ARPA计划所建立的ARPANet连接。到了20世纪80年代,Internet这个名词因势产生,它代表着这十年来所构建涵盖全球各地的网络系统。从1990年起,商业使用的Internet在美国急速地扩大,而Internet也从原来属于少数人使用的网络系统转变为普通百姓也能够使用的网络系统。最初的Internet资源服务都还停留在文本模式,1989年,量子物理实验室(CERN)下的一个研究小组着手开发一种全新的Internet服务,它可以在网络上传送图片、文本、影像、声音等多媒体数据。于是由Tim Berners Lee领导的小组开发出了一种主从、分布式的网络服务系统,这就是WWW,俗称“万维网”。所谓WWW其实就是连上Web服务器访问资源,取得的内容就是所谓的“主页”(HomePage)。进入的网页通常不会只有一页,而是整个网站的内容。“网站”是一种呈现在网络上的新兴媒体,通过Internet已经成为一个实时的,多媒体的信息传播渠道。它的载体主要是电脑,范围覆盖全球各地,没有国界,不分人种,时时刻刻地提供服务。目前,人们渐渐开始把网站称之为广播、电视、报刊以外的第四新闻媒体,以“共享、公平、公正、创新、国际化、团队精神”为特征的网络文明也已逐渐成为这个时代的标志,人们越来越习惯于通过Internet网络获取信息,通过Internet在网站上发表自己对社会对生活的理解和建议。本文设计实现一个基于Web的通用BBS网站,具有BBS网站应该具有的相关功能。第二章 BBS论坛简介关键字:B/S 论坛 平台BBS系统就是提供给注册用户一个平台,会员用户可以通过Internet接入,登录论坛,在这个平台上发表文章、阅读文章、回复文章等等。此类系统通常有以下四种类型的操作用户:匿名用户、普通用户、版面管理员、超级管理员。每类用户有其不同的操作集,系统通常提供一个统一的登录页面,此页面应能自动识别不同级别的用户,并提供不同的操作界面。与之相应,此类系统通常应具有以下功能:用户注册、用户登录、发表文章、阅读文章、回复文章、分页查找、主题查找、作者查找、个人资料维护、找回密码、版面管理、版主管理、用户管理、友情链接管理等等,所有操作都可以由用户在客户端浏览器中完成,而服务器端程序会按用户的要求来完成对系统数据的操作,并将结果传给Web服务器,再由Web服务器处理成HTML文件后发送到客户端浏览器。这就是所谓的B/S结构应用系统,B/S结构即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。B/S结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓N-Tier结构。B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种Script语言(VBScript、JavaScript)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着Windows 98/Windows 2000将浏览器技术植入操作系统内部,这种结构更成为当今应用软件的首选体系结构。将应用程序分成好几个离散逻辑组件,就是多层式结构 (N-Tier) 应用程序。最常见的选择是分成三个部分:表示层、事务逻辑层和数据层(3-Tier),不过也有其它的组合。多层式结构应用程序,在一开始是解决某些与传统客户端/服务器 (主从式) 应用程序相关的问题,但是随着 Web 的出现,此结构已经成为主导新程序之开发的结构。下面就是3-Tier结构各层功能以及经常采用的技术作个简介:表示层主要运行于客户端浏览器,采用Script (脚本)语言编写。HTML、JavaScript、VBScript是此类应用系统中展示层最常用的脚本编制语言,结合CCS以及ActiveX技术,能设计出交互相当灵活功能又相当强大的客户端网页。事务逻辑层设计通常有三个选择:ASP.NET网页、COM或COM+组件、DBMS中所执行的预存程序。将程序代码的一部分,建立成执行于数据库管理系统 (DBMS) 中的预存程序,使数据与程序代码储存在相同的位置,有助于最佳化执行效率,但是,预存程序都依赖于特定的数据库系统,在编写和侦错方面都相当复杂,只适宜于大型的商业应用系统。以 COM 对象的方式,编写中间层 (Middle Tier) 事务逻辑,可以使用全功能的语言,来产生经过编译的执行程序,执行效率也相当高,此外,在 COM 对象中包装事务逻辑,还可以清楚地将此程序代码与网页内含的展示程序代码分隔,这样可以使应用程序更易于维护,但是,COM对象的部署也有一定的麻烦,新编写的组件对象,只有在服务器重新启动后才能被应用程序调用。用ASP 网页设计事务逻辑相对来说比较简单,但是,ASP网页采用脚本语言来编写事务逻辑,比如VBScript,程序代码只有在执行时才被翻译,这样会降低执行效能,此外,ASP 网页中的程序代码也是难以维护的,因为事务逻辑程序代码与建立使用者接口的展示程序代码彼此混杂在一起。数据层较为灵活,视系统规模可选择Sybase、Oracle、My SQL、SQL server或者MS Access。综上所述,结合BBS论坛系统实际需要,本BBS系统采用B/S结构。论文设计开发的系统为通用BBS系统,系统应该具备较大的可伸缩性,应该能适应最基本应用最广泛的WEB平台。另外,通用系统应该具备较大的可扩展性,目前,ASP.NET技术发展较快,因此,这次设计开发的BBS论坛事务逻辑层设计采用ASP.NET网页;至于数据层,本系统采用最基本的MS SQL数据库系统。第三章 开发环境概述关键字:ASP.NET SQL IIS3.1 编程语言1ASP.NET(1). 历史我们在讲述历史之前,让我们来回顾一下asp。asp的第一个版本是0.9测试版。它给web开发带来一阵暴风,它能够将代码直接嵌入html,使得设计web页面变得更简单,更强大,并且通过内置的组件能够实现强大功能,最明显的就是activex data objects (ado),它使得建立一个动态页面如小孩子玩游戏一样简单。 最终出场的是active server page 1.0,它做为iis的附属产品免费发送。并且不久就在windows平台上广泛使用。asp与ado的结合使用开发者很容易地在一个数据库中建立和打开一个记录集。这不无疑是它如此快就被大众接受的因素,因为你现在能使用这些脚本建立和打开一个记录集,处理和输出任何数据,以任何顺序,几乎只要你能想到的,它就能完成。 1998年,微软公司又发布了asp 2.0 。asp 1.0和asp 2.0主要区别是外部的组件需要实例化。有了asp 2.0 和iis 4.0,我们就有可能建立asp应用了,而且每个组件就有了自已单独的内存空间。内置的microsoft transaction server(mts)也使用制做组件便得简单。微软公司接着开发了windows 2000操作系统。 这个windows版本给我们带上了iis 5.0 以及 asp 3.0。此次并不是简单对asp进行补充,核心的不同实际上是把很多的事情交给了com来做。在windows 2000中,微软结合了mts与com核心环境做出了com+,这就让主机有了一种新的方法来使用组件,同样给主机带来了更多的稳定性,成了一个可以升级的效率高的工作平台。iis 5.0在表面上似乎没有改什么,但是在接口上动的手术比较大。在内部,它使用com+ 组件服务来对组件提供一个更好的执行的环境。有了这些,微软公司推出了,又叫,他不是asp的简单升级,而是microsoft推出的新一代active server 是微软发展的新的体系结.net的一部分,其中全新的技术架构会让每个人的编程生活变得更的简单。(2). 优势ASP.NET使代码更加干净。现有的ASP 应用程序中,不管你将它们写得怎么样,结构总是充满了长长短短的代码。而ASP.NET的代码不仅更容易编写,而且更加干净整洁,比ASP代码更易于阅读。同时,ASP.NET代码的结构方式提高了其再利用性和共享性。 ASP.NET 改进了配置、伸缩性、安全性和可靠性。对于简单的ASP应用程序,配置其实并不算什么问题,但是当你移植到一个利用组件的N层结构中时就会遇到问题。当你对这些应用程序进行配置和维护时,DLL 陷阱问题(组件注册、版本、锁定的DLL等等)就会出现。ASP.NET中则取消了组件注册以及DLL锁定,全面使用了XML配置文件,从而解决了这个问题。这样你只需要执行复制文件的工作就能配置一个Web应用程序。 ASP.NET对各种不同的浏览器提供了更好的支持。对于ASP开发人员来说,浏览器兼容问题好象是一个永恒的问题。你或者为低一级的浏览器编写代码,例如用HTML 3.2,或者限制页面的浏览范围。无线应用程序协议WAP设备的引入还会深化这个问题。本文中Web表单这部分描述了ASP.NET是如何解决浏览器兼容性问题的。 ASP.NET 造就了一类新的Web应用程序。目前的Web应用程序通常都是同一种模式:一套线性应用程序,然后将逻辑植入其中之一。ASP.NET允许开发人员打破这种单一模式,创造出更加动态而且伸缩性更强的应用程序,这种应用程序能够更好地满足公司的商业需求,并提供一个更加丰富的开发环境。 到这里你可能会想,虽然这些目标都很高尚,但是它们会使编写应用程序变得困难。然后恰恰相反,用ASP.NET 进行开发要简单得多!2C#C#是Microsoft开发的一种面向对象的程序设计语言,也是Microsoft公司.NET软件开发平台的重要组成部分。C#包含一系列称之为“类”的独立的程序设计单元,这些类可以相互作用和交互。C#深深根植于C+语言,同时毫无疑问地也受到了微软公司其他流行语言如Visual Basic的影响。C#一个最大的好处是它的语法(或者称为代码的结构)非常类似于其他流行的程序设计语言,尤其类似于C+、Visual Basic、Java和Delphi,这使得拥有其他语言开发背景的程序员通过最小的学习曲线就能迅速掌握C#。并且,C#语言比C+和JAVA都更加简洁。3JavaScriptInternet时代,造就了我们新的工作和生活方式,其互联性、开放性和共享信息的模式,打破了传统信息传播方式的重重壁垒,为我们带来了新的机遇。通过超文本(Hyper Text)和超媒体(Hyper Media)技术结合超链接(Hyper link)的链接功能将各种信息组织成网络结构(web),构成网络文档(Document),实现Internet上的“漫游”。通过HTML符号的描述就可以实现文字、表格、声音、图像、动画等多媒体信息的检索。然而采用这种超链技术存在有一定的缺陷,那就是它只能提供一种静态的信息资源,缺少动态的客户端与服务器端的交互。虽然可通过CGI (Common Gateway Interface)通用网关接口实现一定的交互,但由于该方法编程较为复杂,因而在一段时间防碍了Internet技术的发展。而JavaScript的出现,为Internet网上用户带来了一线生机。可以这样说,JavaScript的出现是时代的需求,是当今的信息时代造就了JavaScript。JavaScript的出现,它可以使得信息和用户之间不仅只是一种显示和浏览的关系,而是实现了一种实时的、动态的、可交式的表达能力。从而基于CGI静态的HTML页面将被可提供动态实时信息,并对客户操作进行反应的Web页面的取代。JavaScript脚本正是满足这种需求而产生的语言。它深受广泛用户的喜爱的欢迎。它是众多脚本语言中较为优秀的一种,它与WWW的结合有效地实现了网络计算和网络计算机的蓝图。4CSSCSS是 Cascading Style Sheet的缩写,也被译为“层叠样式表”或“级联样式表”(下文简称“样式单”或“样式表”),在1997年 W3C颁布HTML 4标准的同时也公布了有关样式单的第一个标准CSS。样式单是对以前的HTML(32以前的 HTML版本)语法的一次重大革新,以前的HTML版本中,各种功能是通过标记元素实现的,这也造成了各个浏览器开发商为了标新立异创建各种只有自家支持的标记。然而通过样式单对各种标记互相嵌套,就可以达到不同的效果。CSS的作用之一就是针对页面中的对象的风格和样式进行定义;其二,使得HTML各个标记的属性更具有一般性和通用性。然而建立样式单的意义在于把对象真正引入了HTML,使得可以使用脚本程序(如Javascript,VBScript)调用对象属性,并且可以改变对象属性,达到动态的目的,这在以前的 HTML中是无法实现的。如果以前使用过如VB等面向对象的编程工具,可以更快的发现,使用CSS做DHTML是多么容易。样式单还有一项很大的作用简化了HTML中各种繁琐的标记,使得各个标记的属性更具有一般性和通用性,并且样式单扩展了原先的标记功能,能够实现更多的效果。样式单甚至超越了Web页面的本身显示功能,而把样式扩展到多种媒体上,功能相当强大。3.2 数据库技术1MS SQL2000数据库系统微软的SQL Server 2000界面友好,易学易用且功能强大,与Windows 2000操作系统完美结合,可以构造网络环境数据库甚至分布式数据库,可以满足企业及Intemet等大型数据库应用。 以下简单介绍它的功能特性,详细功能请访问微软网站或参阅SQI。Server 2000“联机丛书”。 (1)、实现了客户机服务器模式 客户机服务器(CS)模式数据库计算是一种分布式的数据存储、访问和处理技术,它已成为大多数企业计算的标准。Microsoft SQIServer是客户服务器系统应用的完美的例子。 (2)、与Internet集成 SQL Server 2000数据库引擎提供完整的XMI支持。具备构造大型Web站点的数据存储组件所需的可伸缩性、可用性和安全性。 (3)、具备很强的可伸缩性和可用性 SQL Server 2000包含企业版、标准版、开发版和个人版等4个版本,使同一个数据库引擎可以在不同的操作系统平台上使用,从运行Windows 9x的便携式电脑,到运行Windows2000 Data Center Server的大型多处理器的服务器。增强的图形用户界面管理工具,使管理更加方便。 (4)、具备企业级数据库功能 SQL Server 2000关系型数据库引擎支持当今苛刻的数据处理环境所需的功能,可同时管理上千个并发数据库用户,其分布式查询使用户可以引用来自不同数据源的数据,同时具备分布式事务处理系统,保障分布式数据更新的完整性。 , (5)、易于安装、部署和使用 SQL Server 2000的安装向导可帮助用户方便地实现各种方式的安装,如网络远程安装、多实例安装、升级安装和无人职守安装等。SQIServer 2000还提供了一些管理开发工具,使用户可以快速开发应用程序。 (6)、数据仓库功能 企业在正常的业务运作过程中需要收集各种数据,包含企业的动态历史记录,数据仓库的目的是合并和组织这些数据,以便可对其进行分析并用来支持业务决策。数据仓库是一种高级、复杂的技术。Microsoft SQIServer 2000提供的强大工具,可帮助您完成创建、使用和维护数据仓库的任务。如:数据转换服务、复制、Analysis ServiCeS、English Query。和MetaData Services等。3.3 运行环境(IIS)IIS是Internet Information Server的缩写,它是微软公司主推的服务器,最新的版本是Windows2000里面包含的IIS 5,IIS与WindowNT Server完全集成在一起,因而用户能够利用Windows NT Server和NTFS(NT File System,NT的文件系统)内置的安全特性,建立强大,灵活而安全的Internet和Intranet站点。IIS支持HTTP(Hypertext Transfer Protocol,超文本传输协议),FTP(File Transfer Protocol,文件传输协议)以及SMTP协议,通过使用CGI和ISAPI,IIS可以得到高度的扩展。IIS支持与语言无关的脚本编写和组件,通过IIS,开发人员就可以开发新一代动态的,富有魅力的Web站点。IIS不需要开发人员学习新的脚本语言或者编译应用程序,IIS完全支持VBScript,JScript开发软件以及Java,它也支持CGI和WinCGI,以及ISAPI扩展和过滤器。第四章 系统总体规划与设计关键字:三层架构 接口4.1 架构设计1三层架构本系统采用三层架构开发。2三层架构概述随着软件工程的不断进步和规范以及面向对象编程思想的应用,人们对封装、复用、扩展、移置等方面的要求,使得双层架构显然更加臃肿繁琐,三层程序架构体系应运而生,可以说,三层架构体系结构是面向对象思想发展中的必然产物。当然三层架构对于目前来说早已经不是什么新鲜事物了,最早听到这个词应该是几年前使用java知道的吧, j2ee三层架构体系流行了这么多年,一直没有使用过,不过j2ee三层架构体系的提出,对软件系统的架构产生了巨大的影响,Microsoft、Boland这些公司自然不甘落后,例如Microsoft的.net平台,更有甚者,称.net之c#为java的儿子。那么何谓三层架构?所谓三层架构,是在客户/服务之间加入了一个中间层,也叫组件层。它与客户层、服务器层共同构成了三层体系。这里所说的三层体系,不是指物理上的三层,不是简单地放置三台机器就是三层体系结构,也不仅仅有B/S应用才有三层体系结构,三层是指逻辑上的三层。通过引入中间层,将复杂的商业逻辑从传统的双层结构(Client-Server)应用模型中分离出来,并提供了可伸缩、易于访问、易于管理的方法,可以将多种应用服务分别封装部署于应用服务器,同时增强了应用程序可用性、安全性、封装复用性、可扩展性和可移置性,使用户在管理上所花费的时间最小化,从而实现了便捷、高效、安全、稳定的企业级系统应用。4.2 数据库设计1论坛版面关系模式(版面ID#,版面中文名,版面简介);2用户关系模式(用户名#,用户密码,用户密码提示问题,问题答案,用户EMAIL,用户真名,用户性别,用户出生年月,用户主页,用户证件名称,用户证件号码,用户联系方式,用户积分);3管理员关系模式(管理员ID#,用户名#,申请管理版面ID#,申请管理理由,申请被批示状态);4用户关系模式(用户名#,用户密码,用户密码提示问题,问题答案,用户EMAIL,用户真名,用户性别,用户出生年月,用户主页,用户证件名称,用户证件号码,用户联系方式,用户积分);5贴子关系模式(贴子ID#,标题,贴子类型,主贴子ID,回复数量,点击次数,标题图像,贴子内容,贴子书写时间);6按照上述转换方法,再结合系统一些功能以及性能方面的需要,系统所有关系模式设计如下:7论坛基本信息(论坛信息ID#,论坛名,版权说明,论坛公告标题,公告内容,最后一次修改时间);8论坛版面信息(版面ID#,版面中文名,版面英文名,版面简介);用户基本信息(用户名#,用户密码,用户密码提示问题,问题答案,用户EMAIL,用户真名,用户性别,用户出生年月,用户主页,用户证件名称,用户证件号码,用户联系方式,用户积分);9管理员基本信息(管理员ID#,用户名#,申请管理版面ID#,申请管理理由,申请被批示状态);10贴子基本信息(贴子ID#,版面ID#,用户名#,标题,贴子类型,主贴子ID,回复数量,点击次数,标题图像,贴子内容,贴子书写时间,最后一次更新贴子时间);11友情链接基本信息(链接ID#,用户名#,链接名,链接URL,链接说明);12用户访问日志信息(日志ID#,用户名#,用户登录IP,登录时间,退出时间);*注:第一个带“#”标志的属性为本关系模式的主键,其它为外键。4.3 接口设计1IBlock接口实现版块信息管理模块。2ITopic 接口实现发帖信息管理模块。3IReply 接口实现回帖信息管理模块。4IUser 接口实现用户管理模块。5ITitleType 接口实现帖子标题类型管理模块。4.4 页面设计1利用CSS进行页面布局管理。2使用Javascript 实现特效以及ajax功能。3利用Photoshop等图形软件制作界面。第五章 代码编写关键字:数据模型 数据访问层 逻辑层5.1 数据模型1数据实体说明根据论坛的功能需求,论坛管理和维护以下几种数据元素(实体Entity):会员、管理员、论坛、论坛版面、贴子。(1)、会员实体会员用户包含这样一些基本属性:用户名、用户密码、用户密码提示问题、用户密码提示问题答案、用户EMAIL、用户真名、性别、出生年月日、主页URL、联系方式、证件名称、证件号码、积分。其中,用户名为用户唯一标志,不允许重名。积分为此用户在本论坛发表文章以及文章被其它用户关注程度所累积的分数,作为衡量此用户在本论坛活跃程度的一个标志。(2)、管理员管理员实际上派生于会员用户,意味着只有会员用户才有资格申请本论坛各版面的管理权限,因此,他除了包含会员用户所有的基本属性以外,还应包含以下几个属性:申请管理版面、申请理由、申请被批准状态。一个管理员可以管理几个版面,一个版面可以由几个管理员管理,所以,应该有一个管理员序号来唯一标志这个实体。另外,管理员也分为两类,一类是超级管理员,具有管理和维护本论坛所有数据信息的权限,另一类是普通版主,只能管理与某版面相关的数据信息,可以用申请管理版面以及申请被批准状态来区分这两类管理员,如果申请管理版面为零用申请被批准通过,则此会员就为超级管理员,如果申请管理版面在本论坛存在且申请被批准通过,则此会员就为版主管理员,否则,此会员仍为普通会员。(3)、论坛论坛基本信息比较稳定,只能为超级管理员所维护,此实体包括以下一些基本属性:论坛名称、论坛版权信息、论坛公告、公告内容。(4)、版面论坛版面包含这样一些基本属性:中文名称、英文名称、版面简介、版面公告。此外,论坛版面实体与管理员实体有联系,与贴子实体也有联系。(5)、贴子贴子包含以下一些基本属性:所属版面,作者,标题,贴子类型,所属主贴,回复数量,点击次数,标题图像,贴子内容,贴子书写时间,最后一次更新贴子时间。贴子包括两种类型:主贴和回复。贴子序号为此贴子唯一标志。 2在项目中新建Models类库。3编写数据库表的实体类。4根据具体需求编写实体类。5类库中包含UserInfo,BlockInfo,KindInfo,TopicInfo,ReplyInfo,TitleTypeInfo等可进行串行化的实体类。5.2 系统公用函数1在项目中新建Util类库。2编写具体的SQLDBHelper,简化后期对数据的操作。3编写StringUtil,简化对字符的操作。4编写WebUtil,简化对页面的控制。C#实现的部分代码如下: / / 弹出JavaScript小窗口 / / 窗口信息 public static void Alert(string message) string js = alert( + message + );location.href=location.href; HttpContext.Current.Response.Write(js); / / 弹出消息框并且转向到新的URL / / 消息内容 / 连接地址 public static void AlertAndRedirect(string message, string toURL) string js = alert(0);window.location.replace(1); HttpContext.Current.Response.Write(string.Format(js, message, toURL); / / 回到历史页面 / / -1/1 public static void GoHistory(int value) string js = history.go(0); ; HttpContext.Current.Response.Write(string.Format(js, value); / / 关闭当前窗口 / public static void CloseWindow() string js = parent.opener=null;window.close(); ; HttpContext.Current.Response.Write(js); HttpContext.Current.Response.End(); / / 刷新父窗口 / public static void RefreshParent(string url) string js = window.opener.location.href= + url + ;window.close(); HttpContext.Current.Response.Write(js); / / 刷新打开窗口 / public static void RefreshOpener() string js = opener.location.reload(); ; HttpContext.Current.Response.Write(js); 5.3 接口1系统功能要求说明设计开发的BBS论坛应具有通常BBS网站应该具有的基本功能,包括用户注册、用户登录、匿名登录、发表文章、阅读文章、回复别人的文章、分页查找、主题查找、作者查找、多种方式排序、个人资料修改、在线人数统计等,此外,用户在发表贴子时,能输入带格式文本,用户在发表或回复一篇贴子时,能获得相应的积分,其积分能反应此用户在本论坛的活跃程度。设计开发的BBS论坛的操作用户按不同级别依次可分为:匿名用户、普通会员用户、版主会员用户、超级用户。高级别的用户可以继承低级别用户的公用功能。同时,各级别用户具有一定的只有以本级别身分登录才具有的私有功能。匿名用户功能要求-通用功能:查看各版面文章、查看系统版主列表、查看系统会员列表;私有功能:注册为系统正式会员、会员找回遗失密码、登录为正式会员。普通会员功能要求-通用功能:发表或回复贴子、个人资料维护、退出或重新以匿名身分登录;私有功能:申请为版面版主、注销会员资格。版主会员功能要求-通用功能:贴子管理、张贴公告、友情链接管理。超级用户功能要求-通用功能:论坛基本设定、版面管理、版主会员管理、普通会员管理。2在项目中新建IDAL类库。3按照功能要求在类库中建立IUser,IBlock,IKind,ITitleType,ITopic,IReply等接口。话题接口C#代码如下:using System;using System.Collections.Generic;using System.Text;using Models;namespace IDAL public interface ITopic List GetTopicList(int kindid,int startindex,int endindex); int GetTopicCount(int kindid); List GetTopic(int topicid); TopicDetailsInfo GetTopicDetails(int topicid); int ModifyTopic(TopicInfo info); int AddTopic(TopicInfo info); int DeleteTopic(int topicid); int AddClickCount(int topicid); 5.4 数据访问层1在项目中新建SQLDAL类库。2新建User,Block,Kind,TitleType,Topic,Reply等类,继承相应的接口。3编写实现接口的具体代码。话题操作的C#代码如下:using System;using System.Collections.Generic;using System.Text;using Models;using Util;using System.Data;using System.Data.SqlClient;namespace SQLDAL class Topic:IDAL.ITopic /存储过程参数常量 private const string PARM_KIND_ID = kind_id; private const string PARM_USER_ID = user_id; private const string PARM_TITLETYPE_ID = titletype_id; private const string PARM_TITLE = title; private const string PARM_CONTENT = topicontent; private const string PARM_STARTINDEX = startindex; private const string PARM_ENDINDEX = endindex; private const string PARM_TOPIC_ID = topic_id; /通过类型ID获取标题列表 public List GetTopicList(int kindid, int startindex, int endindex) SqlParameter param = new SqlParameter(PARM_KIND_ID, kindid),new SqlParameter(PARM_STARTINDEX,startindex),new SqlParameter(PARM_ENDINDEX,endindex) ; string cmdStr = SelectTopicList; SqlDataReader reader = SQLDBHelper.GetDataReader(cmdStr, CommandType.StoredProcedure, param); List listinfo = new List(); using (reader) while (reader.Read() TopicListInfo info = new TopicListInfo(int)readertopic_id, (int)readeruser_id, (string)readertitle, (string)readeruserName, (int)r
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中级财务会计(河南财经政法大学)知到智慧树答案
- 死因监测培训试题及答案
- 2025大连安居客平台全程监管下的二手房买卖合同
- 2025年度绿色金融垫资撤押贷款合同及碳排放权抵押担保协议
- 2025版蔬菜种植与农产品电商平台合作合同
- 2025年新型农业灌溉系统安装与运营管理合同
- 2025年水利工程桩基施工与生态修复合同
- 2025版跨境电商合作万能合同范本
- 数据驱动的实时监控与异常检测-洞察及研究
- 2025二手公寓房买卖及贷款担保与房屋租赁服务合同
- 日本设备销售合同范本
- 2025年芜湖市鸠江区医院招聘16名工作人员笔试参考题库附答案解析
- T-CBDA 86-2025 建筑幕墙、采光顶及金属屋面工程质量验收标准
- 厨房消防安全培训
- 小陈 税务风险应对常见指标与答复思路
- 2025年《中华人民共和国档案法》知识培训试题及答案
- 2025至2030年中国建筑膜行业市场调查研究及发展趋势预测报告
- 《海上风电场工程测量规程》(NB-T 10104-2018)
- 社工政策与法规
- 绿茶多酚及超级灵芝萃取物与预防癌症之关系博士
- 2021年成都中医药大学辅导员招聘笔试试题及答案解析
评论
0/150
提交评论