2.研究中涉及的关键技术
(1)多层体系结构
系统体系结构采用典型的四层B/S结构,体系结构如图1所示。
系统开发技术的研究 src="http://edu.cnzz.cn/newsfile/22000-22999/22431/090307132381000.gif" width=318>
图1 四层B/S结构图
(2)在ASP.NET中实现多层模式
在ASP.NET中,利用代码隐藏技术实现页面代码与控制代码的分离。页面代码对应于视图层,后台控制代码对应于控制层。由于各层代码分离,降低了耦合度,还减少了代码的冗余。其实现形式如表1所示。
表1 ASP. NET中的多层模式表
VIEW |
Aspx文件 |
CONTROLLER |
Aspx.cs文件 |
MODEL |
数据库类、数据库处理类 |
(3) 运用ASP.NET技术操作数据
在ASP.NET的结构中,IIS为Windows操作系统的一个组件,所有Web客户端和ASP.NET应用程序之间的联系通过IIS来进行。ASP.NET应用程序是建立在.NET框架技术的基础上的,在这些应用程序中可以充分利用由.NET框架技术提供的各种特性,体现.NET框架技术对RAD和OOP技术的支持,实现减少编程工作量和快速开发的目标。
3.“软件工程”双语教学系统的设计
软件工程双语教学系统的设计既要符合学科领域教育教学规律,又要符合现代网络教学信息处理技术的要求;既要方便老师课前课后的配套工作,又要满足学生获取多方信息及信息反馈的要求。
3.1 “软件工程”双语教学系统主要功能
基于Web的“软件工程”双语教学系统,主要含有:教学支持与交互、教学资源、系统管理这三大部分,每部分又包括各自的功能模块,各功能模块的设置如图2所示。
系统开发技术的研究 src="http://edu.cnzz.cn/newsfile/22000-22999/22431/090307132381001.gif" width=462>
图2系统功能模块
3.2 “软件工程”双语教学系统的开发及运行环境
操作系统及开发平台:Microsoft Windows 2000 Server,IIS5.0,Microsoft.NET。
数据库管理系统:以SQL Server 2000为后台数据库,通过ADO.NET访问。
开发工具及语言:以Visual C#.NET作为主要开发语言。
Web开发平台:ASP.NET。
运行平台:Windows客户端+Web Brower浏览器。
4.数据库设计及数据访问的实现
对软件工程双语教学系统中数据库的设计,要考虑到数据的唯一性、非空性、域值、主键、外键等,还要尽可能消除数据的冗余。本系统使用SQL Server 2000做为数据库支持。
4.1数据库表的设计
Admin:管理员信息表,字段属性如表2所示,字段不允许为空。
表2 Admin表字段属性
列名 |
数据类型 |
长度 |
说明 |
userid(PK) |
varchar |
20 |
管理员ID |
pwd |
char |
20 |
密码 |
name |
nvarchar |
40 |
姓名 |
lastlogintime |
smalldatetime |
4 |
上次登陆时间 |
regtime |
smalldatetime |
4 |
添加时间 |
Courseware:课件信息表,字段属性如表3所示。
表3 Courseware表字段属性
列名 |
数据类型 |
长度 |
允许空 |
说明 |
cid(PK) |
int |
4 |
课件ID | |
typeid(PK) |
int |
4 |
课件类型 | |
src |
varchar |
100 |
路径 | |
header |
varchar |
100 |
√ |
标题 |
uploadtime |
smalldatetime |
4 |
√ |
上传时间 |
Forum:帖子具体信息表,字段属性如表4所示。
表4 Forum表字段属性
列名 |
数据类型 |
长度 |
允许空 |
说明 |
forumid(PK) |
int |
4 |
帖子回复ID | |
title |
varchar |
100 |
标题 | |
content |
text |
100 |
内容 | |
isclose |
bit |
1 |
是否关闭 | |
ftype |
int |
4 |
类型 | |
initiator |
int |
20 |
发起人ID号 | |
createdate |
datetime |
8 |
发表时间 | |
username |
varchar |
32 |
√ |
发表人 |
Files:普通资源信息表,字段属性如表5所示。
表5 Files表字段属性
列名 |
数据类型 |
长度 |
允许空 |
说明 |
fid(PK) |
int |
4 |
文件ID | |
uploadtime |
smalldatetime |
4 |
上传时间 | |
fsize |
numeric |
9 |
文件大小 | |
filedescribe |
text |
100 |
√ |
备注 |
ftid |
nvarchar |
4 |
文件类型 | |
downnum |
int |
4 |
下载次数 | |
filepath |
nvarchar |
100 |
√ |
文件路径 |
Cnews:课程信息表,字段属性如表6所示,字段不允许为空。
表6 Cnews表字段属性
列名 |
数据类型 |
长度 |
说明 |
nid(PK) |
int |
4 |
信息ID |
ctitle |
nvarchar |
50 |
标题 |
content |
text |
100 |
内容 |
userid |
varchar |
50 |
发布人 |
reptime |
smalldatetime |
4 |
发布时间 |
Reguser:用户信息表(学生、教师),字段属性如表7所示。
表7 Reguser表字段属性
列名 |
数据类型 |
长度 |
允许空 |
说明 |
rid(PK) |
int |
4 |
用户ID | |
username |
varchar |
40 |
用户名 | |
pwd |
char |
20 |
密码 | |
|
varchar |
100 |
√ |
邮箱 |
lastlogintime |
smalldatetime |
4 |
√ |
上次登陆时间 |
realname |
nvarchar |
40 |
√ |
真实姓名 |
sex |
char |
8 |
√ |
性别 |
birthday |
smalldatetime |
4 |
√ |
生日 |
discribe |
text |
100 |
√ |
备注 |
department |
nvarchar |
100 |
√ |
部门 |
flag |
bit |
1 |
身份 | |
times |
int |
4 |
√ |
登陆次数 |
right |
bit |
1 |
是否可用 |
Testquestion:试题信息表,字段属性如表8所示。
表8 Testquestion表字段属性
列名 |
数据类型 |
长度 |
允许空 |
说明 |
tid(PK) |
int |
4 |
试题ID | |
question |
text |
500 |
题目 | |
ttype |
nvarchar |
30 |
试题类型 | |
A |
nvarchar |
50 |
√ |
选择答案A |
B |
nvarchar |
50 |
√ |
选择答案B |
C |
nvarchar |
50 |
√ |
选择答案C |
D |
nvarchar |
50 |
√ |
选择答案D |
answer |
text |
100 |
√ |
其它答案 |
Video:视频信息表,字段属性如表9所示,字段不允许为空。
表9 Video表字段属性
列名 |
数据类型 |
长度 |
说明 |
videoid(PK) |
int |
4 |
视频ID |
vfilepath |
varchar |
100 |
文件路径 |
addtime |
datetime |
8 |
添加时间 |
vfilename |
varchar |
50 |
文件名 |
3.2 数据库部分E-R图
用户访问数据对应的E-R图,如图3所示。
系统开发技术的研究 src="http://edu.cnzz.cn/newsfile/22000-22999/22431/090307132381002.gif" width=528>
图3 访问数据的E-R图
4.2 数据访问的程序设计
数据库连接语句获取:
public static string sqlConnection= System.Configuration.ConfigurationManager.AppSettings["connectionStrings"].ToString();
执行SQL语句填充DataSet:
public static DataSet FillDataSet(string sql)
{
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection(sqlConnection);
try
{
conn.Open();
SqlCommand sqlCommd = new SqlCommand(sql, conn);
SqlDataAdapter adapter = new SqlDataAdapter(sqlCommd);
adapter.Fill(ds);
conn.Close();
return ds;
}
catch
{
conn.Close();
throw;
}
}
执行SQL填充SqlDataReader:
public static SqlDataReader ExecuteReader(string sql)
{
SqlConnection conn = new SqlConnection(sqlConnection);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
SqlDataReader sd= cmd.ExecuteReader(CommandBehavior.CloseConnection);
return sd;
}
catch
{
conn.Close();
throw;
}
}
执行无返回数据表的SQL语句:
public static bool ExcuteNonQuery_SQL(string sql)
{
SqlConnection conn = new SqlConnection(sqlConnection);
SqlCommand cmd = new SqlCommand(sql, conn);
try
{
conn.Open();
cmd.ExecuteNonQuery();
return true;
}
catch
{
conn.Close();
return false;
}
}
执行带参数的无返回数据的存储过程:
public static bool ExcuteNonQuery(string SpName, SqlParameter[] parms,out int intResult)
{
SqlConnection conn = new SqlConnection(sqlConnection);
SqlCommand cmd = new SqlCommand(SpName,conn);
cmd.CommandType = CommandType.StoredProcedure;
foreach (SqlParameter parm in parms)
cmd.Parameters.Add(parm);
try
{
conn.Open();
cmd.ExecuteNonQuery();
intResult = 0;
return true;
}
catch
{
conn.Close();
intResult=3;
return false;
}
}
5. 系统主界面
“软件工程”双语教学系统目前已经实现,用户可以通过首页到达该网站的任何地方。首页设计力求简单、快捷、内容分类清晰、操作方便,登录后可进入系统。软件工程双语教学系统的首页如图4所示。
系统开发技术的研究 src="http://edu.cnzz.cn/newsfile/22000-22999/22431/090307132381003.jpg" width=540>
图4系统首页
6.结束语
“软件工程”双语教学系统主要结合计算机软件工程课程而进行研发的,系统基本功能齐全并已实现,具有实用性,对目前方兴未艾的双语教学网络平台会提供很大的帮助。
本文作者:未知