孙翠华 胡元军 戈勇
摘要:文章首先分析了课程资源平台的总体架构,以《.NET动态网站开发》课程为例,设计了平台的各个功能模块,分析了主要技术模块类型管理和文章管理的LINQ实现。
关键词:课程资源平台;课程网络平台;LINQ;资源平台
中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2015)27-0018-02
1 平台开发环境
《.NET动态网站开发》课程网络资源平台基于Visual Studio 2013(NET4.0、C#)语言和SQL Server2012数据库开发,使用Linq To SQL技术对数据进行处理,使用DIV+CSS进行页面布局。
2 平台功能模块设计
《.NET动态网站开发》课程网络资源平台后台主功能模块由六大部分组成,分为系统管理、教学指导区、资料下载区、交流讨论区、成果展示区和效果评价区,其中【系统管理】模块包含七个功能,分别是班级管理、专业管理、文件类型管理、学校指导教师管理、企业指导教师管理、学生管理和学生分数管理,【教学指导区】模块包含四个功能,分别是异步视频、同步视频、作业发布和作业检查,【资料下载区】模块包含四个功能,分别是教学课件、教学文件、管理文件和学生自学相关材料,【交流讨论区】模块包含两个功能,分别是讨论区设置和交流讨论,【成果展示区】模块包含四个功能,分别是学生作品展示、学生风采展示、教师风采展示和工作室成果展示,【效果评价区】模块包含三个功能,分别是评价时间设置、查看所有评价和我的评价,平台功能模块如图1所示。
3 主要技术的实现
在平台的功能模块中,虽然分成了很多子模块,在系统实现过程中,主要分为类型管理和文章管理两大块,其中类型管理如班级管理、专业管理、文件类型管理等都可以定义为类型管理功能来实现,异步视频、同步视频、作业发布、教学课件、教学文件、管理文件等都可以归纳为文章管理来实现。
3.1 类型管理技术的实现
类型管理通过对类型的增查改删来实现管理功能。
(1)定义一个Loaddate方法,通过Linq的联合查询,查询到类型数据:
var data = from a in db.BigClass
orderby a.ID descending
select new
{ a.BigName,
a.ID
};
gvBigClass.DataSource = data;
gvBigClass.DataBind();
(2)类型的编辑功能通过btnEdit_Click()事件实现:
int id;
if (Int32.TryParse(((LinkButton)sender).CommandArgument, out id))
{
BigClass obj = db.BigClass.FirstOrDefault(a => a.ID == id);
if (obj != null)
{
this.txtEdit.Text = obj.BigName;
this.HiddenField1.Value = obj.ID.ToString();
}
}
(3) 类型的删除功能通过btnDel_Click()事件实现:
int id;
if (Int32.TryParse(((LinkButton)sender).CommandArgument, out id))
{
BigClass obj = db.BigClass.FirstOrDefault(a => a.ID == id);
if (obj != null)
{
db.BigClass.DeleteOnSubmit(obj);
var sm = db.SmallClass.Where(a => a.BigID == id);
if (sm != null)
{ db.SmallClass.DeleteAllOnSubmit(sm); }
var art = db.Article_table.Where(a => a.BigID == id);
if (art != null)
{ db.Article_table.DeleteAllOnSubmit(art); }
db.SubmitChanges();
Loaddate();
}
}
3.2文章管理技术的实现
(1)首先通过联合查询,查询到四张表格文章表、大类表、小类表和管理表中的数据:
AdminList adm = (AdminList)Session["LOG"];
var data = from a in db.Article_table
join b in db.BigClass on a.BigID equals b.ID
join c in db.SmallClass on a.SmallID equals c.ID
join d in db.AdminList on a.AddID equals d.ID
orderby a.ID descending
select new
{
a.ArticleTitle,
a.AddTime,
a.ID,
b.BigName,
a.BigID,
c.SmallName,
d.UserName,
a.AddID
};
(2)对查询到数据分别判断:
①如果不是管理员只能显示本人添加的文章
if (adm.Poperdom != 0)
{ data = data.Where(a => a.AddID == adm.ID); }
②如果关键词不为空刚显示标题包含关键字的文章列表
if (this.keyword.Text != "")
{ data = data.Where(a => a.ArticleTitle.Contains(this.keyword.Text)); }
③如果选择了大类显示该大类下的所有文章
if (this.big.SelectedItem.Value != "")
{ data = data.Where(a => a.BigID == Int32.Parse(this.big.SelectedItem.Value)); }
(3)btnEdit_Click事件实现文章的编辑功能:
if (Int32.TryParse(((LinkButton)sender).CommandArgument, out id))
{Response.Redirect("articleedit.aspx?id=" + id); }
(4)btnDel_Click()事件实现文章的删除功能:
Article_table obj = db.Article_table.FirstOrDefault(a => a.ID == id);
if (obj != null)
{
db.Article_table.DeleteOnSubmit(obj);
db.SubmitChanges();
Loaddate();
}
4 总结
《.NET动态网站开发》课程资源平台采用LINQ技术来实现,简化了代码的编写量,平台运行的学生作品展示界面如图2所示,对于高职院校软件开发专业的学生来说,LINQ技术更容易掌握,该资源平台本身就可以作为一个典型的项目案例来学习。
参考文献:
[1] 徐照兴. NET平台下LINQ TO SQL关键技术的实践研究[J]. 湖北科技学院学报,2015,35(3):6-7.
[2] 方生. 基于.NET的LINQ to SQL三层架构的研究与实现[J]. 电脑知识与技术,2014,10(12): 2743-2746.
[3] 陈建华,胡开明. 基于C#.NET的LINQ TO SQL查询[J]. 鄂州大学学报,2014,21(7): 97-98.
[4] 李成,张坤,田吉. LINQ技术在科技奖励申报系统研发中的应用[J]. 安庆师范学院学报(自然科学版),2014,20(4):84-86.
[5] 孙翠华. 高职院校《.NET动态网站开发》课程教学改革的探讨[J]. 电脑知识与技术,2014,10(31):7366-7367.
[6] 娄立志. 教师教育课程平台顶层设计的理念与构想——搭建与基础教育改革相沟通的桥梁[J]. 教育研究,2012(12):100-104.
[7] 曹刚,于欣言,杨晨. 深度课程改革下Moodle开放式课程平台的应用研究[J]. 实验技术与管理,2013,30(1):184-187.
[8] 孙翠华,王锋.基于PhoneGap的跨平台枇杷病害诊断系统设计[J]. 湖北农业科学,2015,54(19):4826-4828.