基于LINQ与Ajax技术的办公自动化系统

点赞:23877 浏览:108016 近期更新时间:2023-12-19 作者:网友分享原创网站原创

摘 要:论文应用三层架构的开发思想提出了系统架构方案,分析并完成了办公自动化系统的功能设计和数据库设计,着重阐述了LINQ及Ajax技术在系统中的作用和用法,对类似的系统开发有一定的参考价值.

关 键 词:办公自动化;LINQ;Ajax

中图分类号:TP311文献标识码:A文章编号:1009-3044(2013)07-1476-02

传统的三层架构被广泛的应用与.NET平台下的WEB开发和WINFORM开发,以前的数据访问层需要开发者自己手工编写业务实体及业务实体方法,里面夹杂着大量的SQL语句,微软的LINQ技术改进现有开发模式下面向数据库操作的问题,使得面向对象和数据库完美结合.

1办公自动化系统需求分析及数据库设计

办公自动化系统是一个基于Web的三层结构应用系统,它采用了LINQ和Ajax技术,是从性能和伸缩性角度着重考虑如何合理组合技术,优化各个功能模块的设计.办公自动化系统共分为4个功能模块:a.管理特区,b.个人办公室,c.信息共享区,d.人力资源管理.

根据上述模块的功能设计数据库,应该包括如下13张表:短信息表、用户基本信息表、日程安排表、考勤时间设置表、考勤表、部门表、公告表、绩效表、招聘管理表、培训管理表、工资公式设置表、工资管理表、邮件怎么写作器设置表.另外本系统使用了.NET提供的几个功能:个性化设置、用户角色设置等,这些功能由系统自带的数据库ASPNETDB保存所需要的数据.

2系统具体实现

2.1系统总体架构

系统分三层:数据访问层、业务逻辑层、表示层.其中数据访问层包括实体类和DataContext类,通过DataContext类操作实体类而达到操作表的目的,数据访问层通过LINQ技术实现.业务逻辑层通过引用数据访问层实现业务逻辑并处理表示层的输入[1].表示层负责与用户交互,运用了Ajax技术.在visualstudio2010中具体实现这三层结构,可以这样做:在空白解决方案中分别添加名为BLL、DAL的两个类库项目,然后再添加一个ASP.NETweb应用程序的项目,命名为WebUI,其中DAL为数据访问层,BLL为业务逻辑层,WebUI为表示层.最后在解决方案资源管理器中,添加各项目间的引用.

2.2DAL层的实现

本系统使用LINQtoSQL技术来实现数据访问层,因此在项目中必须添加一个数据库连接,当创建好连接后,应该将数据表的信息映射到程序中来,可以向本项目中添加LINQtoSQLClasses项,然后将上面建立的13张表拖到设计界面,最后在App_Code目录下的DataClasses.design.cs文件,该文件中包含DataClassesDataContext类的定义,此类称为“数据连接上下文”,它包括所有所有的映射实体类,对应每个表的每个字段,还包括提交数据实体的方法,在添加数据时,使用InsertOnSubmit方法将新数据添加到实体中,使用SubmitChanges方法提交数据发生的变化.

2.3BLL层的实现

业务逻辑层一般是编写若干个业务类,然后在各个业务类中添加业务方法来实现.比如绩效管理子模块的实现,就可以通过添加一个类CheckM,在该类中添加若干实现绩效管理功能的业务方法.限于篇幅,以下只以查询员工考核记录这个功能的实现为例,来介绍BLL层及WebUI层的实现.查询员工考核记录可以按输入的姓名进行模糊查询,故在CheckM类中添加如下业务方法:

其中,IQueryable是LINQ查询结果的返回类型,表示对未指定数据类型的特定数据源的查询进行计算[2].IQueryable接口可实现查询结果集的遍历,可以直接绑定在ObjectDataSource数据源控件上.Check是对应Check表的实体类,而Checks则为Check类的集合.SqlMethods.Like方法是用来模糊查询的,其第二个参数为查询关 键 词.

此外,WebUI层要实现自动输入姓名功能,需要在CheckM类中再添加如下业务方法,根据参数使用模糊查询在用户基本信息表中查询出所有符合条件的用户姓名:

publicstring[]GetNameList(stringname){等}

2.4WebUI层的实现

要实现查询考核记录的功能,要在页面上添加一个文本框控件(用来输员工姓名的)、一个查询按钮、和一个GridView控件(用来显示考核记录的).为了能够无代码实现查询操作,需为GridView建立对象数据源,数据源选择上述CheckM的GetChecksbyName方法,参数值为文本框的Text属性值.

另外为了查询时页面无刷新,可以讲上述控件都放到UpdatePanel里面,这是用得非常多的Ajax控件.在查询时有可能由于网络问题导致查询有点慢,为了不让用户干着急,可以向页面添加一个UpdateProgress控件,然后再该控件中添加一个进度动画[3].最后为了提高用户输入姓名的效率,可以让输入姓名的文本框具备自动输入完成的功能,也就是用户在输入某个词句时,与已经输入的前缀或词首相符的词句就会自动列出来让您选取,此功能与百度和谷歌的搜索界面非常相似.AjaxControlToolkit提供了“自动输入完成”扩展器(AutoCompleteExtender)可以完成此功能.将此扩展器从工具箱中拖到页面上的搜索文本框中,然后设置它的ServicePath属性为AutoComplete.ax,ServiceMethod属性为GetCompletionList,其中ServicePath属性用于指定Web怎么写作的位置路径与文件名,ServiceMethod属性用于指定您要调用Web怎么写作的那个方法,该方法用于从数据库中提取员工姓名来加以比较,它以prefixText作为参数调用业务逻辑层中CheckM类的GetNameList方法.此Web怎么写作的方法必须符合下列签名格式:

基于LINQ与Ajax技术的办公自动化系统参考属性评定
有关论文范文主题研究: 数据库类论文范文 大学生适用: 高校大学论文、高校大学论文
相关参考文献下载数量: 98 写作解决问题: 写作技巧
毕业论文开题报告: 标准论文格式、论文结论 职称论文适用: 期刊发表、职称评副高
所属大学生专业类别: 写作技巧 论文题目推荐度: 免费选题