摘 要:本文在分析建立动态网站的技术细节和课件发布工作流程的基础上,阐述了网站的结构与功能设计。本网站采用的是B/S结构,网站使用 Microsoft Visual Studio .NET2003作为主要开发工具,采用Dreamweaver 作为辅助开发工具实现网站的框架设计,使用SQL Server2000 数据库用来存放网页素材、课件资料以及用户资料。本系统可以实现课件的分类显示以及对课件的推荐、审核发布、更新删除等功能。用户通过Web浏览器实现对课件的查找、上传、浏览等操作。本网站可以成为学校Web站点的一个子网,具有很好的外部接口,能够很好的配合校园网的其它子系统进行学校的远程教育活动。
关键词:动态网站;课件发布;SQL;B/S;ASP.NET;C#
2.3 开发环境与技术需求
2.3.1软、硬件环境需求分析
硬件环境需求:服务器两台,一台为数据库服务器,一台为Web服务器;客户端计算机若干;服务器和客户端计算机都应该在网络上(Internet网或局域网),当然也可以单机运行。网络通讯设备,主要包括交换机、网卡、集线器、MODEM 等。
软件环境需求:软件配置要根据不同的需要进行选择。本网站采用Browser/Server体系结构, Web服务器软件采用IIS3.0(Internet Information Server),开发软件包括单机操作系统和浏览器软件,分别选用Windows 2000(服务器版)和Internet Explorer。数据库系统采用SQL Server2000 有利于方便操作。
2.3.2技术分析
用 ASP.NET环境开发网站,实现网站的前台显示和网站的后台管理功能,包括用户管理、审核课件、推荐作品、上传以及课件的查找、发布、删除、浏览课件内容等。
在实现这些功能的时候要用到的主要技术有ASP.NET控件的应用、数据库应用、Session应用、Cookie应用以及数据库访问技术和数据绑定技术。
2.3.3开发工具
1)VStudio.NET与 Dreamweaver
本网站是采用B/S结构结合Internet技术应用微软专门为.NET平台开发的C#语言和Visual Studio.NET集成开发工具进行开发的,另外为了美化网站界面而把Dreamweaver作为辅助开发工具运用到网站开发过程中。
作为本网站主要的开发工具,Visual Studio .NET 2003 充分运用微软公司推出的.NET Framework 1.1中最新发展成果的竞争优势,还包括数个程序语言的发展成果,含有新的Visual J#. NET Java语言开发人员工具、加强的Visual Basic .NET 功能,Visual C++. NET和Visual C#. NET中产能增强和标准兼容的新功能,以及为现有Visual Basic 6.0或Java语言应用程序的开发人员所提供的程序代码转换工具。
作为本网站的辅助开发工具Dreamweaver是当今最流行的专业网页制作软件,它方便快捷的操作方式、强大的编辑功能、良好的ASP. NET等动态编程语言的支持,Dreamweaver 很自然的成为设计网站框架、页面的首选开发工具。
2)SQL Server 2000
本网站采用SQL Server 2000数据库来存放网页素材、课件资料以及用户资料。SQL Server 2000数据库能够处理大量数据,同时保持数据的完整性并提供许多高级管理功能。它的灵活性、安全性和易用性为数据库编程提供了良好的条件。
SQL Server 2000是一项全面完整的数据库与分析产品。从借助浏览器实现的数据库查询功能到内容丰富的扩展标记语言(XML)支持特性均可有力地证明,SQL Server 2000能全面支持Web功能的数据库解决方案。与此同时,SQL Server 2000还在可伸缩性与可靠性方面保持着多项基准测试纪录,而这两方面特性又都是企业数据库系统在激烈市场竞争中克敌致胜的关键所在。无论以应用程序开发速度还是以事务处理运行速度来衡量,SQL Server 2000都堪称最为快捷的数据库系统,这就是我选择该产品作为本系统数据库的原因所在。
3)ASP.NET
ASP.NET 是一个已编译的、基于 .NET 的环境,把基于通用语言的程序在服务器上运行。ASP.NET 是一个已编译的、基于 .NET 的环境,可以用任何与 .NET 兼容的语言(包括 Visual Basic .NET、C# 和 JScript .NET)创作应用程序。另外,任何 ASP.NET 应用程序都可以使用整个 .NET Framework。开发人员可以方便地获得这些技术的优点,其中包括托管的公共语言运行库环境、类型安全、继承等等。
4)C#语言
C#语言是Microsoft专用在 .NET Framework平台上进行开发的一门最新的、面向对象的编程语言。虽然很多语言都能够编写.NET 代码,但C#是唯一针对.NET Framework 而设计的语言,它使得程序员可以快速地编写各种基于Microsoft .NET平台的应用程序。使用简单的C#语言结构,系统级的应用程序可以方便的转化为XML 网络服务,从而使它们可以由任何语言在任何操作系统上通过Internet进行调用,因此C#将会成为编写.NET 应用程序的首选。
5.1前台显示说明
图5-1网站首页
如图5-1,显示的是首页,最上面有课件类名:高中课件、初中课件、小学课件、其它,中间有本站公告、用户登陆等各个栏目,用户可以直接点击课件类名查看各大类课件里面的各项小课件,然后点击在线播放浏览课件内容。
浏览课件的时候有约定,除了flash课件,其它的课件要有相应的播放软件才能打开看。因为本课件发布网站已经限定了只有flash课件才能进行在线播放,所以其他类型的课件,在点击“在线播放”的时候会提示“打开、保存、取消”,点击打开按钮会打开相应的课件,也可以点击保存按钮然后进行保存,之后的操作和我们平时下载文件是一样的,当然也可以点击取消,不进行操作。
课件名列表是按照更新时间的先后顺序进行排序。要查看相关的课件内容及与课件有关的简介,即可以进入具体的各类课件栏目进行查看,又可以直接点击在首页中显示的“最新下载、最新课件、热门课件”这几个栏目中的课件名来进行查看。
5.2主要功能模块的实现
5.2.1 用户登陆
在用户登陆区设有用户“登陆”、“注册”按钮,已经注册并登陆成功的用户可以在前台进行更改资料与上传课件的操作。没有登陆的用户,进入主页后会提示“您未登陆,请登陆享受更多功能”。
//用户登陆代码如下
private void ImageButton3_Click(object sender, System.Web.UI.ImageClickEventArgs e)
{
string strconn = ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn = new SqlConnection(strconn);
cn.Open();
string mysql= "select*from courseware_user where user_id= '"+user.Text+"' and user_pwd='"+pass.Text+"'";
SqlCommand cm = new SqlCommand(mysql,cn);
SqlDataReader dr = cm.ExecuteReader();
if(dr.Read())
{
Label3.Text="";
Session["user_id"] = dr["user_id"];
Label2.Text=dr["user_id"].ToString();
Session["user_identity"]=dr["user_identity"];
Panel1.Visible =false;
Panel1.Enabled =false;
Panel2.Enabled =true;
Panel2.Visible =true;
HyperLink1.Visible = true;
HyperLink1.Enabled = true;
HyperLink2.Visible = true;
HyperLink2.Enabled = true;
string EngagementID = (string)dr["user_id"];
FormsAuthentication.SetAuthCookie(EngagementID, false);
}
else
{
Label3.Text="对不起,你的用户名或密码不正确,请重新输入。";
}
cn.Close();
}
说明:程序中的ImageButton3对应首页中的“登陆”按钮。
5.2.2 用户注册及用户信息的修改
用户想要注册只要点击“注册”按钮即可进入“用户注册”界面,当填好所需的资料之后点击“确认提交”按钮即可完成注册操作。点击“更改资料”之后进入到用户资料填写的界面,在这里用户可以进行用户的具体信息的更改以及用户密码的修改。想要进行密码修改只要点击“修改密码”按钮进入相应的界面,当密码修改完成后点击“确认修改”按钮即可看到“修改成功”的提示即完成密码的修改操作。点击 “修改成功” 返回前一页。在密码修改成功以后点击“修改资料”和“返回首页”按钮进入相应界面。
5.2.3 用户对课件的上传、搜索操作
登陆的用户想要把自己制作的或者是已经制作好了的flash课件上传到网站,点击“上传课件”进入到课件发布界面填好相应的课件信息之后就可以进行上传课件的操作。在搜索栏写入关键字即课件名,选择课件类别即高中课件、初中课件、小学课件、其他,然后点击“搜索”按钮,就可以查找到相应的课件。
//搜索课件代码如下
搜索源: string varuid= TextBox2.Text.ToString();
string xianze = DropDownList1.SelectedIndex.ToString();
Response.Redirect("sousuo.aspx?id="+varuid+"&"+"xian="+xianze);
搜索页:private void sou()
{
string id = Request.QueryString["id"].ToString();
string xian = Request.QueryString["xian"].ToString();
string strconn = ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn = new SqlConnection(strconn);
string useraudit = "";
switch(char.Parse(xian))
{
case '0':
useraudit = "select id,cw_name,up_cw_time,cw_count,cw_owner,checked,cw_sort from courseware where cw_name like '%"+id+"%' and checked = 0 order by up_cw_time desc";
break;
case '1':
useraudit = "select id,cw_name,up_cw_time,cw_count,cw_owner,checked,cw_sort from courseware where cw_name like '%"+id+"%' and checked = 0 and cw_sort = '高中' order by up_cw_time desc";
break;
case '2':
useraudit = "select id,cw_name,up_cw_time,cw_count,cw_owner,checked,cw_sort from courseware where cw_name like '%"+id+"%' and checked = 0 and cw_sort = '初中' order by up_cw_time desc";
break;
case '3':
useraudit = "select id,cw_name,up_cw_time,cw_count,cw_owner,checked,cw_sort from courseware where cw_name like '%"+id+"%' and checked = 0 and cw_sort = '小学' order by up_cw_time desc";
break;
case '4':
useraudit = "select id,cw_name,up_cw_time,cw_count,cw_owner,checked,cw_sort from courseware where cw_name like '%"+id+"%' and checked = 0 and cw_sort = '其它' order by up_cw_time desc";
break;
}
SqlDataAdapter da = new SqlDataAdapter(useraudit,cn);
DataSet ds = new DataSet();
da.Fill(ds,"table");
DataList2.DataSource = ds;
DataList2.DataBind();
cn.Close();
}
5.2.4 公告栏
公告栏显示最新发布的各项新闻信息,点击进入公告信息界面信息。
5.3后台显示说明
管理员登陆网站后台进行管理须填写“帐号”和“密码”的登陆信息,然后点击“登陆”按钮进入课件网后台管理界面。
图5-2网站后台首页
如图5-2所示在网页的最上面有“用户管理”、“审核课件”、“推荐作品”、“上传”及“退出” 链接。点击“首页”、“审核课件”、“推荐作品”、“上传”、“退出”等链接,进入到相应界面。
5.4主要功能模块的实现
5.4.1 网站公告
“网站公告”一栏中,管理员可以对其进行修改。点击具体的公告信息进入公告修改界面,在里面进行公告信息的修改操作以及删除公告信息的操作。也可以点击“添加公告”按钮进入添加公告的界面完成公告信息的添加操作。
5.4.2修改课件
在“已推荐作品”栏目中点击“删除”即可实现对课件的删除操作。
//删除课件的主要代码
try
{
if(e.Item.Cells[6].Text.Equals("/kjw/images/no_pic.gif"))
{
string delFile = Server.MapPath("..")+e.Item.Cells[5].Text.ToString();
File.Delete(delFile);
}
else{
string delFile = Server.MapPath("..")+e.Item.Cells[5].Text.ToString();
File.Delete(delFile);
string delFile1 = Server.MapPath("..")+e.Item.Cells[6].Text.ToString();
File.Delete(delFile1);
}
string strconn = ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn = new SqlConnection(strconn);
cn.Open();
string userdelete ="delete from courseware where id=@id";
SqlCommand cm= new SqlCommand(userdelete,cn);
cm.Parameters.Add("@id",SqlDbType.BigInt);
string uidvalue = e.Item.Cells[7].Text.ToString();
cm.Parameters["@id"].Value = uidvalue;
cm.ExecuteReader();
cn.Close();
}
catch(Exception f)
{Response.Write("<script>alert("+f+")</script>"); }
Response.Write("<script>alert(\"删除成功\")</script>");
bind();
5.4.3 用户管理
点击“用户管理”按钮进入到用户管理界面,在这里可以查看管理员ID,以及管理员的权限和可执行的编辑 、删除操作。
图5-3用户管理界面
如图5-3所示,在“用户资料”和“管理员资料”的栏目里,均可实现对用户信息的编辑、删除操作。点击“编辑”之后有“更新”和“取消”两个操作可以执行,点击“更新”,完成了更新操作,不更新就点击“取消”,同样点击“删除”就可删除用户信息。编辑操作可以更改用户的管理权限。如果管理权限显示的是“0”则为管理员,显示的是“1”则为普通用户。要查找用户,只须填写用户名,然后点击“查找”按钮之后在“用户资料”栏目中就会显示要查找的信息。
5.4.4 审核课件、推荐作品操作
点击“审核课件”按钮,进入到“审核课件”界面。在这里点击课件名也可以进入到“审核课件”界面,点击“通过审核”按钮完成课件的审核操作。同样点击“推荐作品”按钮,进入到“推荐课件”界面。在这里点击课件名也可以进入到“推荐作品”界面,点击“推荐该作品”按钮完成课件的推荐操作。
5.4.5 上传课件
点击“上传”按钮,进入到“课件发布”的界面。在这里只要填写完相应的内容,然后点击“发布”按钮,就可以完成课件的发布操作,或者想重新填写,点击“重置”按钮。如果想继续发布或者是返回首页,分别点击“继续发布”、“返回栏目首页”按钮即可。
//上传课件的代码如下
private void upke()
{
if(upload.PostedFile.ContentLength>0)
{
string filename=Path.GetFileName(upload.Value);
string filepath=Server.MapPath("../kjw/kejian")+"\\"+filename;
if(fileimag.PostedFile.ContentLength > 0)
{
string file=Path.GetFileName(fileimag.Value);
string fileimagpath=Server.MapPath("../kjw/imag")+"\\"+file;
if(!File.Exists(filepath)||!File.Exists(fileimagpath))
{
upload.PostedFile.SaveAs(filepath);
fileimag.PostedFile.SaveAs(fileimagpath);
string strconn = ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn = new SqlConnection(strconn);
string sql="insert into courseware(cw_name,cw_jieshao,up_cw_time,cw_writer,cw_sort,cw_owner,upwriter,cw_url,cw_pic,cw_mb) values(@cw_name,@cw_jieshao,@up_cw_time,@cw_writer,@cw_sort,@cw_owner,@upwriter,@cw_url,@cw_pic,@cw_mb);";
cn.Open();
SqlCommand cm = new SqlCommand(sql,cn);
…
cm.Parameters.Add("@cw_url",SqlDbType.Char);
cm.Parameters.Add("@cw_pic",SqlDbType.VarChar);
cm.Parameters.Add("@cw_mb",SqlDbType.BigInt);
…
cm.Parameters["@cw_url"].Value= "/"+"kjw"+"/"+"kejian"+"/"+filename;
cm.Parameters["@cw_pic"].Value = "/"+"kjw"+"/"+"imag"+"/"+file;
cm.Parameters["@cw_mb"].Value = (upload.PostedFile.ContentLength/1024/1024).ToString();
cm.ExecuteNonQuery();
cn.Close();
inf2.Text = "发布成功,谢谢你的支持";
}
else{
Response.Write("<script>alert(\"此程序名或图片名已经存在,请更换程序名或图片名\")</script>");
}
}
else{
string file=Path.GetFileName(fileimag.Value);
if(!File.Exists(filepath))
{
upload.PostedFile.SaveAs(filepath);
string strconn = ConfigurationSettings.AppSettings["dsn"];
SqlConnection cn = new SqlConnection(strconn);
string sql="insert into courseware(cw_name,cw_jieshao,up_cw_time,cw_writer,cw_sort,cw_owner,upwriter,cw_url,cw_mb) values(@cw_name,@cw_jieshao,@up_cw_time,@cw_writer,@cw_sort,@cw_owner,@upwriter,@cw_url,@cw_mb);";
cn.Open();
SqlCommand cm = new SqlCommand(sql,cn);
…
cm.Parameters.Add("@cw_url",SqlDbType.Char);
cm.Parameters.Add("@cw_mb",SqlDbType.BigInt);
…
cm.Parameters["@cw_url"].Value= "/"+"kjw"+"/"+"kejian"+"/"+filename;
cm.Parameters["@cw_mb"].Value = (upload.PostedFile.ContentLength/1024/1024).ToString();
cm.ExecuteNonQuery();
cn.Close();
inf2.Text = "发布成功,谢谢你的支持";
}
else{
Response.Write("<script>alert(\"此程序名已经存在,请更换程序名\")</script>")}
}
}
}
5.4.6 退出操作
点击“退出”按钮退出网站。