1、摘 要 ASP.NET 同时为 Web 站点开发者和管理员提供更加易用的管理特征。配置文件包含更丰富的配置元素集合,让站点开发者能够对未来特征和控件升级进行控制。新的配置 API 使得配置信息具有可编程性。新的工具为应用程序的配置提供 GUI 接口,Web Site Administration Tool 是基于 Web 接口的实用工具,让开发者对站点的本地管理和远程管理变得更容易。还有一种 ASP.NET 专用的 MMC 插件可以让管理员使用基于 Windows 服务器的标准工具来管理复杂的配置方案集。ASP.NET 新增加了代码分离模型,但仍支持较早版本中的单文件模型,新的代码分离模型允许
2、开发者根据需要创建文件,并使用 .NET Framework 中的新特征和特殊对象(如事件处理等等)。最终产生完全与页面标记完全分离开的代码文件,即健壮的页面代码管理模型。 随着互联网技术的飞速发展,利用网络进行辅助教学已经成为时代发展的必然趋势,建立精品课程网站,尽可能提高优质教学的利用率,对实现人才培养,促进社会经济发展都能起到十分重要的作用,也可以引导用户主动学习,提高学习效率,更为教学双方提供了一个进行协作学习和交流的平台,实现教学资源的共享。 关键词:.net数据库、连接数据库、控件目 录一、课程设计的目的 1二、系统需求 2三、系统设计 4四、系统实现 11五、系统测试 15六、课
3、设总结与体会 18参考文献 19附录 20一、 课程设计的目的1对于一个优秀的学校网站,精品课程网站的建设可以说是代表了个学校的教育方面的成就,因为它是嵌入在学校网站首页的比较突出的组成模块。2一个好的精品课程网站能够起到很好的宣传作用,它能让学校的特色专业通过网络传播出去,为学校的招生加大筹码。3精品课程是高校课程中的精华,它是高等学校教育质量与教学改革工程的重要组成部分。当今社会是一个信息高度发达、高速流通的时代,计算机的普及以及计算机网络的广泛应用,让普通人能够接触到比以往更多的知识。所以,很多人一直都在思考这个问题,如何将教育资源移植到网络上,让更多人能够资源共享,精品课程网站就是这样
4、应用而生的。4作为一个以传播知识为主要职能的机构,学校建立一个自己的精品课程网站是十分有必要的事情,这不仅能使更多的人享用宝贵的教育资源,同时也对于提升学校自身的知名度,提高用户自学能力,有相当大的帮助。5本网站的内容,基本采用动态生成,即所有内容从后台数据库中调用,这就为网站更新节省了资源,方便用户及时更新网站。二、 系统需求 随着互联网技术的飞速发展,利用网络进行辅助教学已经成为时代发展的必然趋势,建立精品课程网站,尽可能提高优质教学的利用率,对实现人才培养,促进社会经济发展都能起到十分重要的作用,也可以引导用户主动学习,提高学习效率,更为教学双方提供了一个进行协作学习和交流的平台,实现教
5、学资源的共享,因此,这个网站的设计是十分有必要的。通过调查,要求网站具有以下功能:1 由于该网站的目标是要提高优质资源的利用率,为用户提供一个学习和交流的平台,实现教学资源的共享,所以要求具有彼此互动的功能,所以该网站增加了论坛模块。2 由于该网站的用户角色不同,所以应该具有权限分配功能。3 由于该网站力求对内容的快速更新,所以所有内容均动态从数据库中读入。4 为了使网站能够重用,能够实现快速改版升级,网页布局采用“div+css”,改版时只要更改css样式就可以方便改版。本系统的设计是在Windows 7操作系统环境下,使用Visual Studio 2008中文版开发成功的。Visual
6、Studio具有以下特点: 1、面向对象设计不再是单纯的从代码的第一行一直编到最后一行,而是考虑如何创建类和对象,利用类和对象来简化程序设计,并提供代码的封装和可重用性,便于程序的维护与扩展。2、所谓的对象是一种抽象的名称,用来对应实现世界存在的“东西”。一个窗口、一个按钮、一个菜单都可视为一个对象,而按钮对象、菜单对象、又会出现在窗口对象中,因此按钮对象、菜单对象便是窗口的组件之一。对象内部的数据是不能随意更改的,必须由外部向其传递信息,再由对象按其方法加以处理。用户无需知道其任何细节,操作是封闭的,对象之间能通过函数调用相互通信。3、类可视为一个产品模具、一个模块。在面向对象设计中,类是对
7、象的原型,是对象的制作器。类的概念是面向对象程序设计最重要的特征。所谓类,是指由数据结构及其相关操作所形成的集合,描述该类任一对象的共同的行为特征,是对一组性质相同的对象的程序描述,概括了对象的共同性质和数据。 4、面向对象设计的核心是类的设计。例如:可以定义一个“成绩查询”类,该类中可以定义查询的姓名、学号、班级等信息,则以此类为原型可以设计出众多的“成绩查询”类的对象实例,这些实体都具有类中所定义的特征。三、 系统设计3.1网站功能设计 该网站的总体目标是为用户提供一个学习和交流的平台,实现教学优质资源的共享,并且能够使网站内容快速更新,及时有效地满足用户的学习要求,并且该网站力求能够实现
8、页面版式的快速更新,而在布局上采用div+css样式表的形式,在改变前台布局时,只要改变css样式表中的内容就可以有效地改变前台布局元素,实现网站的重用性。精品课程网站可以大体上分为两部分,即前台设计和后台设计。前台总体设计图:课程概况网络课堂课程建设作业习题实践教学在线交流参考资料考试考核首页学时分配课程简介主讲教师教学大纲实践范例学生作品教学指导期末测试考试办法考试试卷单元测试教师队伍教材建设获奖情况前台页面大体功能如下:l 由于我们开发的网站是为了给用户提供一个学习和交流的平台,所以在网站页面设计上不应该太过专业,界面达到简约和易于让人操作为主要目标。l 在前台主页布局上,本网站主要采用
9、“div+css”布局,目的是为了实现版式的快速改版,在改版时,只要改变css样式表就可以方便的改版。l 在子叶设计上,要达到风格一致,让用户有一种轻松和惬意的感觉。后台模块设计:论坛管理用户管理新闻发布课件发布后台管理l 后台模块的划分是根据前台的内容进行划分的,后台管理大体可分为用户管理,新闻发布管理模块,课件发布管理模块,论坛管理模块。l 用户管理模块主要是为用户提供不同的操作权限而设计的,新闻发布模块主要是管理新闻的添加,删除,更新等操作的,课件发布模块主要是管理课件的添加,删除,更新等操作的,论坛管理模块主要是为了管理网站用户的跟帖,发帖等。l 后台管理界面的布局,不必太过专业,只要
10、易于管理者操作即可。3.2数据库概念结构设计 需求分析: 用户信息:包括的数据项有用户编号,用户名,密码,确认密码,用户年龄,性别,用户手机号,用户邮箱,注册时间。 新闻表信息:包括新闻编号,新闻标题,新闻内容,新闻发布时间,新闻类别号。 类别表信息:包括新闻类别编号,类别名,序号。 课件发布表:包括课件编号,课件标题,课件内容,课件发布时间,课件类别号。 发帖信息表:包括帖子编号,帖子标题,帖子内容,发帖人,创建时间,回复时间,人气,浏览人数。 回帖信息表:编号,回复编号,回复标题,回复内容,回帖人,回复时间。 头像信息表:头像编号,头像图片。 用户信息表:编号,用户名,用户密码,英文姓名,
11、电子邮箱,头像。用户信息用户手机号性别密码用户编号用户名用户邮箱注册时间用户年龄确认密码本网站的实体有:用户实体、新闻表实体、类别表实体、课件发布表实体等。各个实体具体的描述E-R图如图下所示。图3.1 用户信息实体ER图 新闻表信息新闻内容新闻标题新闻类别号新闻编号新闻发布时间 图3.2 新闻表信息实体ER图 类别表信息序号类别编号类别名图3.3 类别表信息实体ER图课件发布表信息课件内容课件标题课件类别号课件编号课件发布时间 图3.4 课件发布表信息实体ER图 发帖信息帖子编号帖子标题发帖人帖子内容浏览人数人气回复时间创建时间 图3.5 发帖信息实体ER图回帖信息编号回复编号回复标题回复时
12、间回帖人回复内容图3.6 回帖信息实体ER图头像信息头像编号头像图片图3.7 头像信息实体ER图用户信息编号用户名用户密码头像电子邮箱英文姓名图3.8 用户信息实体ER图 现在需要将上面的数据库概念结构转化为SQL Server 2005 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。表3.1 发帖信息表表3.2 回帖信息表表3.3 头像信息表表3.4 用户信息表表3.5 新闻类别表表3.6 课件发布表表3.7 新闻表表3.8 用户信息表四、系统实现网上论坛模块代码:/登陆按钮处代码protected void ImageButton1_Click1(object sender, I
13、mageClickEventArgs e) SqlConnection con = DB.createDB(); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; con.Open(); cmd.CommandText = select count(*) from tb_Users where UserName= + this.txtname.Text + and UserPwd= + this.txtpwd.Text + ; int a = Convert.ToInt32(cmd.ExecuteScalar(); if (a 0
14、) Response.Write(alert(恭喜您登录成功!);location=javascript:history.go(-1); SessionUserName = this.txtname.Text; SessionUserPwd = this.txtpwd.Text; this.Literal1.Text = SessionUserName .ToString()+ + 登录成功; txtname.Text = ; txtpwd.Text = ; else Response.Write(alert(很遗憾,登录失败!);location=javascript:history.go(
15、-1); con.Close(); 课件发布模块代码:/课件添加模块按钮处代码 protected void bt_insert_Click(object sender, EventArgs e) news news1 = new news(); news1.Title = txt_title.Text; news1.Content = txtProduct.Value; news1.Time = DateTime.Now; news1.Cid = int.Parse(txt_cid.Text); if (new bllnews ().insert (news1) this.ClientScr
16、ipt.RegisterStartupScript(this.GetType(), alert(添加成功!); Response.Redirect(kejianfabulist.aspx); else this.ClientScript.RegisterStartupScript(this.GetType(), alert(添加失败!); /课件更新时按钮处代码 protected void bt_update_Click(object sender, EventArgs e) news1.Id = int.Parse(Request.QueryStringid.ToString(); new
17、s1.Title = txt_title.Text; news1.Content = txtProduct.Value; if (new bllnews().update(news1) this.ClientScript.RegisterStartupScript(this.GetType(), alert(修改成功!); Response.Redirect(kejianfabulist.aspx); else this.ClientScript.RegisterStartupScript(this.GetType(), alert(!); 数据库结构的实现: 图3.9 发帖信息表结构图图3.
18、10 回帖信息表结构图图3.11头像信息表结构图图3.12 新闻类别表结构图五、 系统测试/新闻添加模块按钮处代码 protected void bt_insert_Click(object sender, EventArgs e) news news1 = new news(); news1.Title = txt_title.Text; news1.Content = txtProduct .Value; news1.Time = DateTime.Now; news1.Cid = int.Parse( txt_cid.Text); if (new bllnews ().insert (n
19、ews1) this.ClientScript.RegisterStartupScript(this.GetType(), , alert(添加成功!); Response.Redirect(newslist.aspx); else this.ClientScript.RegisterStartupScript(this.GetType(), , alert(添加失败!); /新闻更新时按钮处代码 protected void bt_update_Click(object sender, EventArgs e) news1.Id = int.Parse(Request.QueryString
20、id.ToString(); news1.Title = txt_title.Text; news1.Content = txtProduct.Value; if (new bllnews().update(news1) this.ClientScript.RegisterStartupScript(this.GetType(), , alert(修改成功!); Response.Redirect(newslist.aspx); else this.ClientScript.RegisterStartupScript(this.GetType(), alert(!); 六、课设总结与体会 该网
21、站从主题的选取、调研、需求分析、布局设计、编码实现到论文的撰写过程中,所遇到的问题和感想颇多,收获也很多,大致的总结几点,如下: 设计开发一个网站,首先要了解该网站是否有开发的必要,因此,对于网站的需求分析就是一个非常重要的环节。网站针对的人群,网站的应用单位对于网站的颜色搭配以及界面的美观程度也有很大的不同,比如说政府类网站的颜色一般选取红色和黄色作为网站的主色调,界面比较简单并且正式。 在开发一个网站时,前期的分析准备工作非常的重要。我们既要考虑到网站前台的布局和色调的选取,又要考虑到网站后台模块的划分是否合理,因为网站的后台是为了对前台进行管理而设置的。 在网站开发过程中,对于数据库的设
22、计也是一个十分关键的环节,因为,一个好的数据库能够有效地管理网站内容,不致出现数据的冗余和空间的浪费。能够使管理员有条不紊的实现网站的快速更新等。 懂得充分利用网络资源,因为实地调研的时间是非常有限的,所以需求分析中大部分分析结构都是在我阅读专业书籍,网络资料后得出的。在这过程中我们要不断地总结我们在此过程中所犯的错误,其实错误的纠正过程正是我们所学最多的。参考文献1 麦斯科.ASP.NET项目开发全程实录. 北京:清华大学出版社.20052 刘亚秋.ASP.NET3.5 揭秘M. 北京:电子工业出版社.20043 朱冰.ASP.NET实用教程M. 北京:中国铁道出版社.2005 4 王华杰,
23、李律松.精通C#数据库开发M. 北京:清华大学出版社.2004 附录/登陆按钮处代码protected void ImageButton1_Click1(object sender, ImageClickEventArgs e) SqlConnection con = DB.createDB(); SqlCommand cmd = new SqlCommand(); cmd.Connection = con; con.Open(); cmd.CommandText = select count(*) from tb_Users where UserName= + this.txtname.Te
24、xt + and UserPwd= + this.txtpwd.Text + ; int a = Convert.ToInt32(cmd.ExecuteScalar(); if (a 0) Response.Write(alert(恭喜您登录成功!);location=javascript:history.go(-1); SessionUserName = this.txtname.Text; SessionUserPwd = this.txtpwd.Text; this.Literal1.Text = SessionUserName .ToString()+ + 登录成功; txtname.
25、Text = ; txtpwd.Text = ; else Response.Write(alert(很遗憾,登录失败!);location=javascript:history.go(-1); con.Close(); /课件添加模块按钮处代码 protected void bt_insert_Click(object sender, EventArgs e) news news1 = new news(); news1.Title = txt_title.Text; news1.Content = txtProduct.Value; news1.Time = DateTime.Now; n
26、ews1.Cid = int.Parse(txt_cid.Text); if (new bllnews ().insert (news1) this.ClientScript.RegisterStartupScript(this.GetType(), alert(添加成功!); Response.Redirect(kejianfabulist.aspx); else this.ClientScript.RegisterStartupScript(this.GetType(), alert(添加失败!); /课件更新时按钮处代码 protected void bt_update_Click(ob
27、ject sender, EventArgs e) news1.Id = int.Parse(Request.QueryStringid.ToString(); news1.Title = txt_title.Text; news1.Content = txtProduct.Value; if (new bllnews().update(news1) this.ClientScript.RegisterStartupScript(this.GetType(), alert(修改成功!); Response.Redirect(kejianfabulist.aspx); else this.Cli
28、entScript.RegisterStartupScript(this.GetType(), alert(!); /新闻更新时按钮处代码 protected void bt_update_Click(object sender, EventArgs e) news1.Id = int.Parse(Request.QueryStringid.ToString(); news1.Title = txt_title.Text; news1.Content = txtProduct.Value; if (new bllnews().update(news1) this.ClientScript.Re
29、gisterStartupScript(this.GetType(), , alert(修改成功!); Response.Redirect(newslist.aspx); else this.ClientScript.RegisterStartupScript(this.GetType(), alert(!); /后台管理模块按钮处代码protected void bt_login_Click(object sender, EventArgs e) users users1 = new users(); users1.Username = txt_name.Text; users1.Userp
30、wd = txt_pwd.Text; if (new dalusers().Isexit(users1) Sessionname = txt_name.Text; Response.Redirect(./admin/Default.aspx); else this.ClientScript.RegisterStartupScript(this.GetType(), , alert(密码错误或帐号不存在!); Response.Redirect(./admin/adminregister.aspx); /新闻添加模块按钮处代码 protected void bt_insert_Click(obj
31、ect sender, EventArgs e) news news1 = new news(); news1.Title = txt_title.Text; news1.Content = txtProduct .Value; news1.Time = DateTime.Now; news1.Cid = int.Parse( txt_cid.Text); if (new bllnews ().insert (news1) this.ClientScript.RegisterStartupScript(this.GetType(), , alert(添加成功!); Response.Redirect(newslist.aspx); else this.ClientScript.RegisterStartupScript(this.GetType(), , alert(添加失败!); 22