自学考试统一信息管理平台的研究与实现

2014-03-15 04:08刘泽波刘太甫
黄冈职业技术学院学报 2014年3期
关键词:开发人员视图应用程序

刘泽波,刘太甫

(黄冈职业技术学院成教学院,湖北黄冈438002)

当前Web应用为用户提供了一种全新解决方案以改善用户的应用体验和应对人们对Web应用日益苛刻的要求,Web应用要不断满足简化开发的复杂性、需求的可变性和快速开发的要求。在这个背景下,高校需要利用现代Web开发技术构建一个自学考试统一信息管理平台,从而实现数据共享、应对日益扩大的规模和提高信息管理效率。

1 ASP.NET MVC和Entity Framework框架技术简介

1.1 ASP.NET MVC 框架技术及优势

MVC设计的目的是要填平人类用户的思维模式和计算机的数字模型之间的鸿沟。自2007年秋微软宣布将以ASP.NET为核心创建基于MVC的现代 Web开发平台-ASP.NET MVC框架,并于2009年3月13日发布 ASP.NET MVC 1版本,其后几乎每年都推出一个新版本,功能越来越强大和灵活。

MVC主旨在于简化软件开发的复杂度,以一种概念简单、权责分明的架构来引导开发流程,将业务逻辑层和数据表现层分离,编写具有模块化和易维护性的程序。MVC将应用程序划分为三个主要单元:模型(M)、视图(V)、控制器(C),它们有各自的工作职责。模型处理与数据有关的任务,描述了要处理的数据以及修改和操作数据的业务规则。视图负责所有与用户有关的接口,主要用于向用户展示信息和接收用户的输入。控制器是视图和模型之间主要的衔接,用于处理来自用户、整个应用程序流以及特定应用程序逻辑的通信。

ASP.NET MVC使开发人员可以在.NET平台上,借助MVC设计模式开发Web应用以发挥其独特优势:(1)分解关注点与可维护性:其非常清楚的“分解关注点”架构既能使项目易于维护,也能使项目可以应对需求的变更,以加快项目开发速度和提高客户满意度。(2)可扩展性:ASP.NET MVC框架的组件都是可定制可替换设计的,可以替换原有的显示引擎、URL重写策略或者其他模块以适应特殊需求。(3)可测试性:其本身就是基于分离的结构让应用程序的测试性得到大大的提升。(4)约定优于配置:ASP.NET MVC应用程序对约定的依赖性很强,这样可避免开发人员配置具体化约定可以设置的项目,简化应用程序开发工作。

1.2 Entity Framework框架及特点

面向对象开发方式是主流开发范式,开发人员是同样以面向对象的思维方式分析解决对数据库的操作问题,理想的做法是开发人员使用面向对象技术的同时并提供访问不同类型数据源的统一方式标准,这恰好是对象关系映射技术的终极目标。Entity Framework是微软的标准ORM解决方案,是在ADO.NET数据访问和LINQ查询技术基础上构建全新的完整数据访问框架。

采用Entity Framework开发应用程序优点是明显的,一方面可让开发人员通过以应用程序为中心的概念模型来进行工作,不用对特定的数据源有硬编码依赖性。另一方面开发人员在改变概念模型和特定存储架构之间的映射时可不更改应用程序代码,使用可映射到各种存储架构的一致应用程序对象模型,同时LINQ为查询提供针对概念模型的编译时语法验证。

2 自学考试统一信息管理平台系统架构

自学考试统一信息管理平台系统架构如图1所示。

图1 自学考试统一信息管理平台架构

表现层:它是用户与系统交互的主要接口,它将后台数据通过一定的格式向用户展现,同时可接收用户的请求,通过与业务逻辑层交互协调处理用户请求。系统的表现层在处理客户端请求和页面逻辑采用ASP.NET MVC3框架,使用jQuery技术并结合图片、CSS控制和展现页面布局和设计。系统应用流程由ASP.NET MVC中的View接收HTTP请求,然后发送到Controller并根据请求内容更新Model,最后将Model加载到对应的View。

业务逻辑:它负责表现层和数据访问层的连接,在架构中起到承上启下的作用。业务逻辑层主要功能是按业务需求处理数据,它根据前台不同的请求和系统业务定义的规则,通过对封装在仓储模型中的添加、修改、删除和查询等方法(数据访问层)的请求调用进行数据处理,调用者将获取返回的数据处理结果。在本项目设计中,业务逻辑层直接在控制器中实现并调用。数据访问层:在系统中基于Entity Framework实现数据访问层,系统使用EF产品组新发布的实用工具(EFPower Tool)自动生成以提高开发效率。在实体数据模型建立以后,编码人员利用数据仓储模式将所有系统业务需求的数据访问方法进行封装,方便系统业务逻辑层调用。数据仓储充分利用LINQ技术在实体集合的基础上处理相对复杂的数据访问逻辑。

3 系统使用的开发环境和技术

自学考试统一信息管理平台开发过程中,使用Visual Studio 2010作为集成开发环境,选择C#4.0作为服务器后台的编程语言,选定ASP.NET MVC 3框架为 Web前端技术。由于安装 ASP.NET MVC3后同时自动安装Entity Framework 4.1,所以项目直接使用的Entity Framework 4.1和仓储模式实现模型。

4 自学考试统一信息管理平台主要开发过程

4.1 数据库设计

根据项目需求和现有自学考试信息数据及结构,经过详细地分析和设计,在SQL Server 2008上设计和构建系统所需的数据库,数据库中有19张数据表保存系统相关数据。主要数据包含考生信息数据、成绩数据、专业和课程数据、通知信息数据和用户基本数据,辅助数据主要保存与学生信息相关的信息,如民族、职业,部门等表,同时优化数据库表设计,减少数据量和冗余。

4.2 表现层实现

4.2.1 布局的实现

ASP.NET MVC 3中Razor的布局有助于使应用程序的多个视图保持一致外观,而且其提供更简洁的语法和更大的灵活性。本系统就利用此特性统一了界面的外观,同时在布局中渲染分部视图以显示复杂的信息。

4.2.2 Controller和 View 的实现

系统Controller和View的创建可利用 ASP.NET MVC3框架中的基架为应用程序的创建、读取、更新和删除(CRUD)功能生成所需的模板代码。虽然不能奢望它创建整个应用程序,但它可以让程序员从琐碎繁杂的工作中解脱出来,避免程序完全手动编写代码,还可以调整和编辑基架生成的代码来创建自己的应用程序。

通过基架生成Controller时会自动添加相应的视图文件和代码,视图也可任意编辑修改,同时配合jQuery脚本和CSS样式文件,以达到所需的界面显示需求。这也说明了ASP.NET MVC可以对HTML完全控制,当然也可以手动编码产生视图文件。

4.2.3 第三方组件的应用

为了缩短开发时间,系统使用了开源组件。利用MvcPager分页控件,完成了大量用户界面的Ajax分页显示;使用Autofac轻量级控制反转容器有效降低类之间相互耦合,不但能增加架构的弹性,也能有效降低系统的复杂度;还使用了Auto-Mapper对象映射工具,它是一个能通过流畅配置API将映射工作自动化产品,解决实体模型到视图模型映射单调乏味的工作。

4.3 系统安全性设计

用户体验Web应用程序,包含大量动态内容。动态内容是给Web应用程序带来安全隐患的根源之一,其中跨站脚本攻击是最重要的安全隐患,目前在安全漏洞中排名第一,并引起开发人员的广泛重视。系统中保存大量、不乏敏感和关键的业务数据,所以为了提高系统的数据安全性,防止信息泄露和恶意者的攻击,系统在防止跨站脚本攻击、开放重定向和Cookie信息泄漏方面都有相应的考虑和设计。

4.4 系统的单元测试

单元测试是软件开发过程中的重要环节,是软件测试最小单位,主要是指软件独立被测试单元在与程序的其他部分完全隔离的前提下开展测试。单元测试作为无错编码的一种辅助手段,要求测试必须能重复执行,且其结果必须是能信任的。单元测试贯穿于整个软件系统的生命周期中,不管是在软件重构还是移植到新的运行环境中,因此可确保系统质量。

5 结语

本文结合自学考试统一信息管理平台项目的设计开发,通过对微软.NET开发平台最新的开发技术ASP.NET MVC和Entity Framework的分析和研究,借鉴成熟的分层模式技术构建了系统的三层架构设计,将新技术融合到一个完整的解决方案之中,设计并实现了一个灵活、快速开发的Web应用。虽然新的技术给.NET平台下的Web开发带来了新的活力和改进,但它仍然存在着如 ASP.NET MVC缺少可重用的 UI控件等问题,但随着ASP.NET MVC和 Entity Framework本身的版本升级更新的同时,也在不断地完善和进步。

[1]黄保翕.ASP.NET MVC2开发实战[M].电子工业出版社,2011.

[2](美)米里特.ASP.NET 设计模式[M].杨明军译.清华大学出版社,2011.

[3](美)加洛韦.ASP.NET MVC 3 高级编程[M].孙远帅译.清华大学出版社,2012.

[4]单东林,张晓菲,魏然.锋利的 JQuery[M].人民邮电出版社,2009.

[5](美)约克.CSS入门经典[M].侯普秀,王一飞译.清华大学出版社,2008.

[6]郭郑州,陈红军.SQL Server 2008完全学习手册[M].清华大学出版社,2011.

[7]陈技能.NET软件测试实战技术大全[M].人民邮电出版社,2008.

猜你喜欢
开发人员视图应用程序
删除Win10中自带的应用程序
Semtech发布LoRa Basics 以加速物联网应用
谷歌禁止加密货币应用程序
5.3 视图与投影
视图
Y—20重型运输机多视图
SA2型76毫米车载高炮多视图
后悔了?教你隐藏开发人员选项
三星电子将开设应用程序下载商店
三星SMI扩展Java论坛 开发人员可用母语