logo资料库

ASP.NET 4.0综合实例——BBS论坛系统.pdf

第1页 / 共141页
第2页 / 共141页
第3页 / 共141页
第4页 / 共141页
第5页 / 共141页
第6页 / 共141页
第7页 / 共141页
第8页 / 共141页
资料共141页,剩余部分请下载后查看
_Hlt435423618
_Hlt435423619
_Toc371060110
_Toc371060111
_Toc371060112
_Toc371060113
_Toc371060114
_Toc435423609
_Toc435423610
OLE_LINK3
_Toc371060115
_Toc371060116
_Toc435423611
_Toc371060117
_Toc371060118
_Toc435423612
_Toc371060119
_Toc435423613
_Toc371060120
_Toc371060121
_Toc435423614
_Toc371060122
_Toc371060123
_Toc435423615
_Toc371060124
_Toc371060125
_Toc435423616
_Toc371060126
_Toc371060127
_Toc371060128
_Toc371060129
_Toc371060130
_Toc371060131
_Toc371060132
_Toc371060133
_Toc371060134
_Toc371060135
_Toc371060136
_Toc371060137
_Toc371060138
_Toc371060139
_Toc371060140
_Toc371060141
_Toc371060142
_Toc435423617
_Toc371060143
_Toc371060144
_Toc371060145
ASP.NET 程序设计实验指导书 目 录 第 2 篇 ASP.NET 4.0 综合实例——BBS 论坛系统 ............................................. 2 一、系统概述 .................................................................................................................................................... 2 二、设计前的准备 ............................................................................................................................................ 3 三、数据库设计 ................................................................................................................................................ 5 四、设计实体 (Model) 层 .............................................................................................................................. 7 五、设计数据访问 (DAL) 层 ........................................................................................................................ 13 六、设计业务逻辑 (BLL) 层 ........................................................................................................................ 41 七、主要功能界面 (WebUI 层)的实现 ........................................................................................................ 45 八、系统运行效果 ........................................................................................................................................ 132 1
ASP.NET 程序设计实验指导书 第 2 篇 ASP.NET 4.0 综合实例——BBS 论坛系 统 一、系统概述 网络论坛系统为用户提供了一个发布信息和讨论问题的平台,是访问者进行信息交流的主要方式。 本次实验将介绍如何使用 Visual Studio 2010 开发一个简洁、实用的小型网络论坛系统。通过该实例, 可以使读者快速掌握 Web 编程及数据库编程的基本技能,理解网站开发的实现过程。 1.1 学习目标  理解 ASP.NET 多层架构应用程序的概念。  掌握第三方组件 FreeTextBox 的使用方法。  掌握在 Web.Config 文件中配置相关信息的方法。  熟练掌握使用 Web 应用程序操纵 SQL Server 数据库的技术。  掌握论坛中浏览帖子、回复帖子、发表帖子、版块管理等模块的制作过程。 1.2 开发软件 Visual Studio 2010 + SQL Server 2005 1.3 项目任务和范围  搭建多层架构设计 BBS 论坛,创建解决方案,创建 Model 层、DAL 层、BLL 层、WebUI 层。  在 Model 层中,创建实体类,如 Module 类(版块类)、Post 类(帖子类)和 Revert 类(回复 信息类),等等。  在 DAL 层中,创建 5 个类,它们分别是 SQLHelper 类、PostDAL 类、UserDAL 类、ModuleDAL 类和 RevertDAL 类。  在 BLL 层中,创建 4 个类,如 UserBLL 类、PostBLL 类、ReplayBLL 类和 ModuleBLL 类。  在 WebUI 层中,设计论坛的各个页面。 1.3 设计思路 本章要实现的论坛系统主要包括如下功能:  用户管理:主要为用户提供用户注册、登录、修改个人信息等功能。用户有三种级别,分别是游 客、会员和管理员,其中会员又分为版主和普通用户,具有管理员权限的用户可以增加用户、删除用 户和修改用户的信息,游客只能浏览帖子,注册用户即会员可以发表话题和对其他帖子进行回复。  帖子管理:提供发表帖子、回复帖子、删除帖子和浏览帖子的功能。注册用户可以发表帖子表达 自己的看法,发帖要求用户指定帖子标题,用户也可以对已发表的帖子表达自己不同的看法,参与讨 论。帖子的发表和回复是论坛的主要功能,所有用户均具有此权限,而帖子的删除需要由系统的版主 和管理员来完成。  版块管理:版块管理主要是将帖子进行分类,讨论相同话题的帖子放在一个版块中,这样可以使 得对某一个话题感兴趣的用户不会受到其他帖子的干扰,有利于相同兴趣的用户相互讨论。管理员具 有增加版块、删除版块和修改版块的权限。 2
ASP.NET 程序设计实验指导书 二、设计前的准备 在论坛系统主要用到的关键技术有两点,一个是引入第三方组件 FreeTextBox,还有一个是多层架 构的开发思想,在设计论坛系统之前,先对这两点进行介绍。 2.1 引入第三方组件 FreeTextBox 在实现论坛功能的过程中,发表帖子和回复帖子,若要对帖子的内容进行一些修饰,如改变字体 大小,颜色,添加背景等,这些功能如果用.NET 的控件来实现比较复杂,故可以引用第三方组件 FreeTextBox 来完成,FreeTextBox 控件是一个在线编辑器,可以对文字以及图片内容进行处理,读者 可以从微软网站下载此组件。使用第三方组件的具体步骤如下: (1)打开 Visual Studio 2010 开发环境,新建一个网站 ch13_Test,在解决方案资源管理器中,右 击该站点,在弹出的快捷菜单中选择【添加引用】命令,在弹出的对话框中选择【浏览】选项卡,在 【查找范围】中找到下载的 FreeTextBox 组件所在的位置,FreeTextBox 3.0 以上版本均支持内部模式, 即 图 片 资 源 和 javascript 都 集 成 在 dll 中 , 故 找 到 FreeTextBox.dll 文 件 的 位 置 , 一 般 在 “FTBv3-1-1\Framework-4-0”文件夹下,如图 1 所示。 图 1“添加引用” (2)单击【确定】按钮,系统将自动创建 Bin 文件夹,并将组件存放到该文件夹中。将下载的 FreeTextBox 组件中的 aspnet_client 文件夹复制到该站点下。 (3)向页面中添加此组件。首先要注册该组件,在页面 HTML 源码的顶部添加注册代码,代码 如下: <%@ Register TagPrefix="ftb" Namespace="FreeTextBoxControls" Assembly="FreeTextBox" %> 在页面中适当的位置添加 FreeTextBox 组件,代码如下: (4)设置 FreeTextBox 组件的属性。回到设计视图,选中 FreeTextBox 组件,设置该组件的各属 性,如设置其高度 Height 属性和宽度 Width 属性。 (5)打开 Web.config 文件,在 System.Web 节点下添加。,如 图 2 所示。 3
ASP.NET 程序设计实验指导书 图 2 配置 Web.config 文件 (6)测试 FreeTextBox 组件。在页面中添加一个 Button 控件和一个 Label 控件用来测试 FreeTextBox 控件,双击 Button 按钮,编写其 Click 事件的处理代码如下: protected void Button1_Click(object sender, EventArgs e) { Label1.Text = FreeTextBox1.Text; } (7)保存文件,运行程序,在 FreeTextBox 组件内输入内容,改变文字的大小,颜色等,单击【提 交】按钮。 2.2 多层架构设计 多层式运行架构(n-tiers 结构,N 层结构)是相对于两层结构而言的。传统的项目一般是 UI、BLL 和 DAL 三层,即表示层,逻辑层和数据层。随着需求的增大,为了安全有效地在各层间进行数据传 输又出现了 Model 即实体层,用来保存传输的数据。事实上,现今的多层结构设计并不局限于这三层。 多层结构从逻辑上相互独立,某一层的变动通常不影响其他层,具有很高的可重用性。 多层架构实际是将以前系统中的显示功能、业务运算功能和数据库功能完全分开,杜绝彼此的耦 合与影响,从而实现松耦合和良好的可维护性。 主要的几层分别用来实现不同的功能。 (1)业务逻辑层(Business Logic Layer,BLL):主要是针对具体的问题的操作,也可以理解成对 数据层的操作,对数据业务逻辑进行处理。如果说数据层是积木,那么逻辑层就是对这些积木的搭建。 (2)数据访问层(Data Access Layers,DAL):主要是对原始数据(数据库或者文本文件等存放数 据的形式)的操作层,而不是指原始数据,也就是说,数据访问层是对数据的操作,而不是数据库, 主要用途是为业务逻辑层或表示层提供数据服务。业务逻辑层在数据访问层之上,即 BLL 调用 DAL 的类和对象,DAL 访问数据并将其结果转给 BLL。 (3)表现层(WebUI):在 ASP.NET 中,该层主要包括 aspx 页面、用户控件以及某些与安全相关 的类和对象。 (4)实体层(Model):是数据库表的映射。 本项目的文件组织如图 3 所示。 4
ASP.NET 程序设计实验指导书 业务逻辑层 业务逻辑层中的文件 数据访问层 数据访问层中的文件 表现层 发表帖子页面 出错页面 用户控件——网页的头部 首页/默认网页 权限出错页面 登录页面 母版页 增加版块页面 修改版块页面 版块管理页面 帖子的详细信息页面 帖子列表页面 用户注册页面 回复帖子页面 修改用户信息页面 用户管理页面 验证码生成页面 实体层 实体层中的文件 图 3 BBS 论坛系统的文件组织 三、数据库设计 论坛系统中主要的数据表有用户信息表、帖子信息表、回帖信息表和版块信息表。数据库名: 5
ASP.NET 程序设计实验指导书 BBSDB。 (1)tbUser(用户信息表):用来存储注册用户的基本信息,表结构如表 1 所示。 表 1 tbUser 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明 userID int userName varchar userPswd varchar userSex char userAge int userEmail varchar userAddress varchar userRole varchar userPhoto varchar 4 50 50 10 4 50 50 50 50 0 0 0 0 0 0 0 0 0 是 是 否 是 是 是 是 是 是 是 是 用户 ID 用户名 密码 性别 年龄 Email 地址 详细地址 角色 头像图片 (2)tbPost(帖子信息表):帖子信息表用来存储发布帖子的详细信息,表结构如表 2 所示。 表 2 tbPost 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明 postID int postTitle varchar 4 50 postContent varchar 1000 userID int postDate datetime moduleID int 4 4 0 0 0 0 0 是 是 否 否 是 是 是 是 帖子编号 帖子标题 帖子内容 用户 ID 发帖时间 对应的版块 ID (3)tbRevert(回帖信息表):用来存储对某个帖子的回帖信息,表结构如表 3 所示。 表 3 tbRevert 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明 revertID int revertTitle varchar 4 50 revertContent varchar 1000 userID int revertDate datetime postID int 4 4 0 0 0 0 0 是 是 否 是 是 是 是 是 回帖编号 回帖标题 回帖内容 用户 ID 回帖时间 帖子编号 (4)tbModule(版块信息表):用来存储论坛中所包含的版块信息,表结构如表 4 所示。 表 4 tbModule 列名 数据类型 长度 小数位 标识 主键 外键 允许空 默认值 说明 moduleID int 4 0 是 是 否 版块编号 6
ASP.NET 程序设计实验指导书 moduleName varchar 50 buildDate datetime 8 moduleIntro varchar 100 0 3 0 否 是 是 版块名称 创建时间 版块介绍 四、设计实体 (Model) 层 在多层架构设计中,实体层主要用来映射数据库中的数据表,它把数据表中各字段都封装在一个 类中。一般地,一个实体类对应一个数据表,实体类中的每个属性对应表中相应的字段。这样做的好 处是当数据库中需要修改某个字段时,只需修改实体层的对应属性,对其他层不产生影响。 在论坛网站系统中,包含 4 个实体类,它们分别是 User 类(用户信息类)、Module 类(版块类)、 Post 类(帖子类)和 Revert 类(回复信息类),这里以 Module 类为例,其他类请查看源码。 设计步骤如下。 (1)打开 Visual Studio 工具,选择【文件】∣【新建】∣【项目】命令,在弹出的对话框中,选 择项目类型为【Visual Studio 解决方案】,选择【空白解决方案】,将该解决方案命名为“BBS”,选择 保存的位置。 (2)单击【确定】按钮,在解决方案资源管理器中,右击【解决方案 BBS】,在弹出的快捷菜单 中选择【添加】∣【新建项目】命令,在模板中选择【类库】,添加一个新的类库,名称为 Model,位 置为该解决方案所在的位置。 图 4 创建解决方案 (3)单击【确定】按钮,为项目添加 Model 层。继续同样的操作为 BBS 系统添加 DAL 层和 BLL 层。 (4)在解决方案资源管理器中,右击【解决方案 BBS】,在弹出的快捷菜单中选择【添加】∣【新 建网站】命令,命名为 WebUI,单击【确定】按钮。搭建好的多层结构的设计图如图 5 所示。 7
ASP.NET 程序设计实验指导书 图 5 多层架构的基本框架 (5)在 Model 层中,将默认添加的 Class1.cs 文件名修改为 Module.cs,在 Module 类中添加于数 据表 tbModule 对应的各字段,代码如下: Module.cs 文件源码 using System; using System.Collections.Generic; using System.Linq; using System.Text; namespace Model { public class Module { private int moduleID; //版块 ID public int ModuleID { get { return moduleID; } set { moduleID = value; } } private string moduleName; //版块名称 public string ModuleName { get { return moduleName; } set { moduleName = value; } } private string moduleIntro; //版块说明 public string ModuleIntro { get { return moduleIntro; } set { moduleIntro = value; } 8
分享到:
收藏