资源描述
基于ASP.NET的课程资源网站的功能设计0引言随着高职院校对于示范性专业建设工作的开展 ,积极探索课程改革新思路, 建立一套支持日常教学活动,集共享、管理和展示等功能于一体的课程资源库尤为重要。 通过 Web 网站建立实现课程资源库,充分利用校园网络,为师生提供了新型的教学平台.本文围绕着基于 ASP.NET的课程资源网站的功能设计, 对网站实现过程中的关键技术进行分析研究,具体介绍了大文件 上传 、定制资 源类 别导航 栏、文 档自 动转换及在线阅读的实现过程。1系统功能课程资源网站从使用角度分为前台功能和后台功能,前台功能面向浏览网页的普通用户和课程学习的学生用户,可以在线学习或者下载课程资源 ,网站后台面向网站管理员及教师用户,对网站的课程资源进行更新维护。1.1网站前台(1) 资源分类浏览模块如图 1 所示,页面左侧的垂直导航栏显示课程资源分类列表,页面的主体区域显示选中类别下的所有课程资源,显示内容包括资源的名称、文件格式、上传者和上传时间及相关描 述等 ,通 过资 源名 称链接 ,在打 开的页面中可以查看资源详细。(2) 查 看资源详细模块课程资 源包 含的文 件格 式主 要有 PDF、RAR 和 AVI这三种,因此课程资源详细页面采用三种不同的呈现方式 展现 课程资 源所 包含 的内容 . 教师 上传资 源 前 先 将word 、ppt 文档转换成 PDF 文档以实现在线阅读 , 课程项目库和案例库则是打包成 RAR 压缩文件以方便用户进行下载,对于 avi 视频文件格式,不仅能够下载,也可以通过在网页中嵌入流媒体播放器进行在线播放。 图 2 所示为在线浏览 PDF 文档转换成 swf 格式的课程资源。1.2网站后台设计(1) 课 程资源类别管理模块资源类别管理包含了添加、删除、修改资源类别。 为便于用户的查看和使用,资源类别名显示在前台页面的垂直导航栏中,在管理页面中可以对资源类别的顺序进行设置和保存,对前台页面资源导航栏进行更新。 如图3 所示为课程资源类别管理 .(2) 课程资源管理课程资源管理实现了对课程资源网站的更新,可以将选中的多个资源信息进行删除,资源信息的删除不仅删除数据库对应的表记录,还将彻底删除服务器文件上传目录对应的资源文件。 添加资源不仅将新的课程资源信息添加至数据库 ,还将 对应 的文档 、程序 包或视 频上传至服务器。2系统开发运行环境网 站 开 发 使 用 了 微 软 的 ASP.NET 技 术 ,C# 作 为 编程语言,使用 jQuery 技术在浏览器端对 HTML 元素进行操作。 开发环境选用 Visual Studio 2005,数据库平台为SQL Server 2005 , 服 务 器 软 件 IIS6.0 及 运 行 平 台 .NETframework 2.0 , 浏 览器版本在 IE9.0 以 上 .此外,还 需 要 三 个 软 件 包 的 支 持 ,分 别 是 用 于 大 文件 上 传 的 NeatUpload、 转 换 swf 格 式 的 SwfTools、 在 线 阅读播放器 Flexpaper.3关键技术实现3.1文档swf转换及在线阅读课 程 资 源 的 各 类 文 档 以 PDF 格 式 上 传 , 再 通 过SwfTools 中 的 PDF2SWF 工 具 将 PDF 文 件 转 换 为 体 积 较小的 SWF 文件,适合网络传播 2.(1) 下 载 并 安 装 SwfTools 软 件 包 , 用 于 将 PDF 文 档转换为 Swf 文档。C# 程 序调用 SwfTools 进 行文件的 Swf 转 换 :/ 提供完整的软件安装路径string cmdStr=C:Program FilesSWFToolspdf2swf.exe ;string filePath=HttpContext. Current. Server. MapPath( . . /loadpath/+NewFileName +ExtenName ) ;/ 设 置执行命令 , filePath 是 被 转 换 文 件 的 路 径 , savePath是转换后 swf 文件的存放路径string args = -t +filePath + -o +savePath + +NewFile-Name +. swf ;pdf2swf. ExecutCmd ( cmdStr , args ) ; /pdf2swf 工 具 执 行 转换命令需要注意,服务器端如果是 32 位操作系统,获取可执 行 文 件 的 路 径 需 要 写 成 C:Program Files (x86)SWFToolspdf2swf.exe, 否则无法找到转换工具 .(2) 在线阅读文档本系统使用开源的 Flexpaper 播放器,可以嵌入到网页中播放 swf 文档。首 先 , 下 载 解 压 的 js 文 件 夹 和 FlexPaperViewer.swf文 件 并 复 制 到 站 点 目 录 下 , 在 文 档 阅 读 页 面 添 加JavaScript 脚 本对播放器参数进行配置 , 这时页面中播放的文档是固定不变的。接着,进 行 资 源 文 件 的 路 径 绑 定 ,这 样 Flexpaper 播放 器中的 文档 就可 以切换 . 在该 页面中 添加 一 个 隐 藏域,通过 value 属性将对应资源的 swf 文件路径进行绑定。input type = hiddenid = filevalue = /最 后 , 通 过 变 量 fileURL 获 取 隐 藏 域 的 value 属 性值 ,var fileURL=$ (#file)。val ();将 swf 文 件 路 径 传 递给页面的播放器配置参数,最终实现了课程资源文档的在线阅读。3.2定制资源类别导航栏本系统 采用 jQuery 技 术 对 HTML 元 素 进 行 操 作 ,以 所 见 即 所 得 的 方 式 完 成 了 对 资源类别顺序的调整 3.网页中包含 jQuery 程序包,代码如下所示:编写 JavaScript 脚 本程 序, 实现 html 表 格 选 中 行 与相 邻行 的交换 ,以选 中行 上移为 例,通 过 jQuery 交 换 相邻行,代码如下:var currentStep=0 ; / 标 记选中行var max_line_num= ; / 总 共的行数function up_exchange_line ( )if ( currentStep=0 ) alert ( 请 选择一项 ! ) ;return false ;if ( currentStep弹 出 的 菜 单 中 选 选 择 项 - 弹 出 窗 口 中 选 择 浏 览 - 添 加 Brettle.Web.NeatUpload.dll ,.NET Framework 组 件选项卡中选中对应的组件,这样工具栏中就会出现 NeatUpload 控件组。 本系统主要使用 InputFile 和 ProgressBar 这两个控件。(2 ) 修 改网站配置文件Web.config 是 站点文件夹的配置文件 ,system.web 节点中写入下面的配置,设置最大请求长度和运行超时时间,并且传输文件的过程中显示进度条。(3 ) 使 用 NeatUpload 实 现大文件上传从工具栏中将 InputFile 和 ProgressBar 这两个控件拖放至页面,其中 InputFile 控件用于在浏览器端选择上传的文件,ProgressBar 控件显示传输进度。实现文件上传功能的程序如下。protected void btnOK_Click ( object sender , EventArgs e )if ( this.InputFile1.HasFile ) / 判断文件是否存在string FileName =this.InputFile1.FileName ;/ 获取上传文件的全路径string ExtenName =System.IO.Path.GetExtension( FileName ) ; / / 获 取扩展名string NewFileName =DateTime .Now.ToString( yyyyMMddhhmm ) ; / / 用当前日期时间设置新文件名string SaveFileName =System.IO.Path.Combine( Request.PhysicalApplicationPath+/loadpath/ ,NewFileName +ExtenName ) ;/ 合并上传到服务器上的全路径this.InputFile1.MoveTo ( SaveFileName , Brettle .Web.NeatU-pload.MoveToOptions.Overwrite ) ; / 执行文件上传操作软件与算法Software and Algorithms3.1定时控件。系统利用 timer 定时控件实现 波形 的实时 显示 . 为了避免 timer 定时控件在刷新时产生图形闪烁, 采用了双缓冲存储绘制的方法,其关键代码如下:BufferedGraphicsContext currentContext ;/ 为了消除绘图闪烁 , 重新定义绘制缓冲区BufferedGraphics myBuffer ;currentContext=BufferedGraphicsManager.Current ;myBuffer =currentContext.Allocate ( this.CreateGraphics ( ) ,this.DisplayRectangle ) ;3.2串口控件。使 用 serialPort 控 件 时 需 要 设 置 匹 配 的 波 特 率 以 及端口号,并在主程序中设 置开 启串口 ,通过 串口 传送过来的数据可以用 serialPort1.ReadLine 函数读取4. 参考代码如下:private void serialPort1_DataReceived ( object sender , Sys-tem.IO.Ports.SerialDataReceivedEventArgs e )serialPort1.NewLine=n ; / 判断接收是否开始string RecData ; / 定 义接收变量if ( serialPort1.IsOpen= true ) / 判 断串口状态RecData= serialPort1.ReadLine ( ) ; / 接 收数据RecData.Trim ( ) ;4结束语系统实现了测试信号的自动记录, 并加入了存储、打印、显示控制等功能。 实现了 C8051F020 单片机采集、串口通信功能;利用 C# 自行设计了专用控件,实现了信号波形的显示控制、存储打印等功能。 系统经过在部队的使用表明,满足了装备维护的需求,提高了维护效率,降低了维护成本。 系统的设计体现了装备维护信息化、自动化的特点,系统可扩 展性 强,可 延伸到 其他 型号的装备上,具有一定推广价值。
展开阅读全文