基于ASP.NET MVC6框架的Web应用开发研究

2017-04-25 18:00周宝昌
电脑知识与技术 2017年2期

周宝昌

摘要:该文对基于ASP.NET MVC6开发框架进行WEB应用开发,进行使用介绍。对MVC框架设计模式进行了概述,通过实际测试发现存在的问题,在给予纠正之后获得了较好的使用效果。

关键词:框架模式;WEB;应用开发;MVC

中图分类号:TP393 文献标识码:A 文章编号:1009-3044(2017)02-0101-03

1 MVC设计模式概述

ASP.NET是微软公司的服务器端应用编程技术,它以Web页面和服务器控件为中心,ASP.NET MVC是微软公司提供的,以MVC模式为基础的WEB应用程序开发框架。基于MVC模式开发框架下的ASP.NET,与传统WEB应用程序开发模式有所区别。MVC模式开发框架下,将用户输入、业务逻辑、用户界面三者之间进行分离,使得项目开发复杂性降低,并且增强了项目的可测试性。不同人员可以对不同部分进行同时开发,对项目组并开发能力来说是一大提高。MVC并不是一种程序语言,从严格意义上讲也不能称作一门技术,它是WEB应用程序开发时所用到的一种框架。MVC是一种使用 MVC(Model View Controller 模型-视图-控制器)设计创建Web应用程序的模式,Model(模型)表示应用程序核心(比如数据库记录列表)、View(视图)显示数据(数据库记录)、Controller(控制器)处理输入(写入数据库记录)。MVC框架模式是被广大Web应用程序开发人员所熟悉的一种开发模式。MVC框架模式如(图1)所示:、

Model(模型):Model为MVC框架的主体部分,用于封装与应用程序业务相关的数据以及对数据的处理方法。Model(模型)与view(视图)之间的关系可以表示为:单一与多种的关系。Model将数据结果处理之后,提供给View处理。Model对数据结果如何显示或者如何操作,并不直接参与。

View(视图):View(视图)是用户可以直接浏览,并与之交互的界面。View与Model两者之间相互联系,Model将处理数据提供给View,View将数据接收后进行处理,然后根据客户需求将数据结果进行呈现。View只是一个提供数据输出和用户操作的界面,并且View并不提供任何与操作逻辑相关的代码。

Controller(控制器):Controller的主要工作职责是将用户的输入和请求进行接收,并且联合Model和View进行联合处理,三者之间相互配合完成结果。在实际运行过程之中,Controller一方面将数据结果返回到Model上进行处理,另一方面,Controller将数据结果传送给View进行实际显示。

2 ASP.NET MVC6版本新特性

ASP.NET MVC6已出炉多时,但现在很多项目都还在使用MVC4,所以MVC6还尚未流行开来,但是从各大新闻报纸媒体上都能或多或少的知道它的跨平台特性,這也就弥补的ASP.NET一直以来的缺憾,MVC6吸纳了当前web前端主流技术,可以说是专为迎合前端开发人员而推出的新的框架。重要的是,微软重写了该框架并且开源,性能得到提升,如按需加载特性使得不再加载各种庞大的诸如system.web.Ill之类的程序集,其依赖的DNX做到了跨平台运行。在新版MVC6中,有很多变化,有些是彻底的变化,比如在最底层支持依赖注入技术。MVC6会引入一些新功能,最引人注目的功能就是TAG Helpers和View Components。Tag Helpers是HTML Helpers的一种替换,而View Components则引入里类似Web Forms中的Web Control的概念。在MVC6中,还有一些与传统版本不相同的写法,例如:统一开发模型:

普通写法:

@HTML.Validation Summary(true, "", new { @class = "text-danger" })

@HTML.Label For(m => m.Surname, new { @class = "col-md-2 control-label" })

@HTML.Textbook(m => m.Surname, new { @class = "form-control" })

@HTML.Professionalization(m => m.Surname, "", new { @class = "text-danger" })

MVC6写法:

相比之下,MVC6框架模式下的写法更加简洁。

在MV5出现不久之后,MVC 6已经很快出现在微软的官方网页,令人感叹技术的快速演进,让程序员也追得非常辛苦。不管是前端也好或是后端,快速发展的技术已经是IT行业的常态了,所以做这一行的人要有所认识,将快速演进视为一种享受,应为再怎么变,基础知识还是那些,所以只要掌握基础,它再怎么变也不会脱离基础的技术原理。MVC6也是如此。MVC 6是ASP.NET Core平台的其中之一,MVC6将MVC和Web API两者整合,并且更新ASP.NET Routing的核心,让MVC和Web API能适于同一个Routing API,而MVC和Web API同时共用Model以及Controller(Web API的Controlled并入MVC的Controller 基础类别),也就是之后所有适合在MVC中的写法,都能用于Web API,反之亦然。Razor仍然是MVC 6 的View的首选指令码架构,而JSON的生成则沒有太大变化。

3 ASP.NET MVC6应用程序目录结构

ASP.NET MVC是一个以习惯替换配置的开发框架,它将通过MVC设计模式常见的规则,切割成Model、View、Controller三个部分,而且明确定义开发人员必须按照特定的“习惯”来开发程序。

使用中间件:在ASP.NET 5中,DI是强烈推荐使用的。所以.NET团队推出了一个可以适配主流.NET的Doc框架的DI组(Microsoft.Framework.Dependency Injection)。在该组件中,有一个扩展方法Addams()来把MVC的Controller注入容器中。通过Bemuse()来确认MVC相关的注入已经完成。修改一下Starbucks.cs文件(图2)。

1) 使用Configure Services(Collectivism services)方法:

Configure Services(Collectivism services)方法在应用程序启动时,NET Framework会自动调用该方法。在该方法调用完成后,才去调用Configure(Oversimplification app)方法。

2) 路由:在MVC6里,默认的静态路由表没有了,可以通过Bemuse()方法来添加路由。首先在Starbucks.cs文件中添加引用:using Microsoft.Asp Net.Routing。然后通过下面的方法来添加默认路由。

3) 控制器:在MVC6里,很大的一个改动是Controller不再需要继承那个名字是Controller的基类,但是实际中你可能习惯了继承它,所以这个习惯是可以保持的。MVC框架会自动的搜索 Controller的類,并认为它就是一个控制器。

4 ASP.NET MVC框架开发WEB应用程序所具有的优缺点

MVC框架所具有的优点:1)具有可维护性:MVC框架具有关注点分离,具有相对较高的可维护性。在实际工作中对项目进行开发时,我们只会将注意力集中在项目本身,而不会应其他事物分散了注意力,使得我们能够更加专注的完成项目。2)具有较高的开发效率:基于ASP.NET MVC框架下开发WEB应用程序,本身就是一个较为高效率的开发工具。其最大优点就是可以采用 Visual Studio 进行开发,尤其是在后来新改进的版本中,例如VisualStudio2012新增了许多ASP.NETMVC的开发支持,对开发效率给予了很大程度的提升。3)易于进行测试:在对项目进行测试时,可以通过各种测试框架(如Visual Studio、Unit Test、N Unit等),轻易地实现测试导向开发流程到专案中。4)架构易于分工:MVC框架具有关注点能够分离的特性,在对项目进行开发的过程中,早期开发阶段就能对其进行分工,不用等到核心工作完成后再开始进行开发或者集成。

MVC框架所具有的缺点:1)没有那么多的现成控件使用,开发效率相对较低(特别是对于菜鸟来说)。2)对于大型数据的处理比较难,还是因为没有现成gird view控件。这个控件虽然生成的HTML结构异常复杂,但是对于处理大量而且复杂的数据来说是很不错的。不过一般网站是很少有这种大量且复杂的数据,很多菜鸟都是用这个大炮来打子,浪费且低效率。对于网站开发来说这个控件应该不推荐使用。采用这种模式,适合项目的扩展和维护。如果是小项目的话就没必要采用了,过于浪费资源。

5 基于ASP.NET MVC6的WEB应用开发

ASP.NET MVC6框架是一种较为先进的应用开发方式,相对于以前的版本,性能具有较大提升。使得开发过程更加规范精炼,本文选取了某地的一个实际项目进行开发测试。

5.1 系统概述

本文选取了我省资格证书考试系统,该系统是基于ASP.NET MVC6开发框架进行完成。主要完成学员考试的报名、管理、考试、证书发放等一系列功能。此考试系统由上岗证考试子系统、识别师考试子系统、鉴别师考试子系统三个部分组成。该系统的结构模块分为以下几部分:第一,上岗证考试子系统;第二,识别师考试子系统;第三,鉴别师考试子系统;第四,考生个人支持平台;第五,后台管理系统。

5.2 系统实际测试

由于本文篇幅有限,不能详尽描述,加之系统实际测试时间较短,很可能无法完全准确对实际使用效果进行测试,在较短的实际测试中发现系统运行较为稳定,但随着业务量的增加,代码控制难度增加,系统的扩展性、代码的复用性和前后台的代码配合都受到了一定的限制,具体表现为:

1)由于时间有限,导致系统的可测试性较为差,无法保证系统功能的扩展和代码的复用,如果测试环境较为理想,测试效果会有较大提升。

2)VIEW STATE 和大量控件,使得系统变得有些臃肿缓慢,且在实际运行中不能进行很好的控制。

3)前台展示效果如果想要做到更加人性化,就需要前台脚本的大量支持,但是通过服务器控件所生成的代码,难以被前台脚本很好的控制。

基于实际测试中存在的上述问题,为了使得系统获得更好的扩展性,开发人员尝试使用ASP.NET MVC6进行重新开发,选取系统的上岗资格证考试子系统,它涵盖了完整系统开发中的所有环节。重点对模型、视图、控制器、过滤器、可测试性和应用等方面的内容进行了重点关注。随后对开发效果进行了实时对比和评定,随后的测试效果本文就不进行一一描述,相对于之前的开发,本次取得了较为满意的效果。

6 结束语

ASP.NET MVC开发框架为企业的WEB应用程序开发提供了一种新模式,使得ASP.NET应用程序也能像Java企业应用一样具有清晰的结构。降低了大型项目的管理复杂性,并且增强了项目的可测试性,不同开发人员可以在同一时间对不同项目进行开发,增强开发人员的项目并组开发能力,使得项目的实际开发效率获得了提高。

参考文献:

[1] 方柯.基于 ASP.NET MVC 框架的 Web 应用开发研究[D].上海:华东师范大学,2011.

[2] 黄东连.基于ASP.NET MVC框架的Web开发研究[J].河南科技,2015(7).

[3] 罗建兵.基于.NET MVC5基础框架的公共体育课管理系统的研究和开发[D]. 重庆:重庆大学,2015.