为快速Web应用程序开发设计MVC模型外文翻译资料

 2022-12-18 15:26:09

英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料


在线提供www.sciencedirect.com

科学直通车

Procedia Engineering 69(2014)1172 - 1179

第24届DAAAM智能制造与自动化国际研讨会,2013年

为快速Web应用程序开发设计MVC模型

德拉戈斯·保罗·普普 *, 亚当·阿尔塔尔

罗马尼亚裔美国人大学,1b Expozitiei大道,布加勒斯特,012101,罗马尼亚

摘要

在本文中,我们提出了一个快速Web应用程序开发的模型。该模型基于模型 - 视图 - 控制器体系结构(MVC),并具有其他一些有用的组件,如安全性,表单生成和验证,数据库访问和路由。该模型使用PHP编程语言实现,但可以使用相同的概念在其他开发语言和环境中实现。开发和维护时间的改进是本研究的主要目标,具有正确和可维护代码的额外好处。

copy;2014 The Authors。由Elsevier Ltd.发布CC BY-NC-ND许可证。

DAAAM国际维也纳负责选拔和同行评审

copy;2014 The Authors。由Elsevier Ltd.出版

DAAAM国际维也纳负责选拔和同行评审。

键词:模型;视图;控制器;MVC;Web应用程序;设计模式

1.简介

自万维网开始以来,Web应用程序开发已经走过了漫长的道路。现在使用了无数的技术和编程语言来构建Web应用程序,但由于万维网的发展方式以及它的速度,这些技术并没有真正的时间来发展和应对速度。许多玩家试图提出不同的和异国情调的技术,主要是改善用户体验,并帮助开发人员构建更快,更强大的Web应用程序。其中一些技术在Web开发中发挥了重要作用,但在过去几年中,Java Applets和Microsoft Silverlight的使用率却出现了重大下降。另一方面,许多技术已从简单的玩具演变为当今网络生态系统的强大而重要的部分,如JavaScript,Flash和XML。

*通讯作者。电话: 40-724-261-805;

电子邮件址:pop.dragos.paul@profesor.rau.ro

1877-7058copy;2014作者。由Elsevier Ltd.发布CC BY-NC-ND许可证。 DAAAM International Vienna doi负责的选拔和同行评审:10.1016 / j.proeng.2014.03.106

Dragos-Paul Pop和Adam Altar / Procedia Engineering 69(2014)1172 - 1179 1173

今天的Web环境使用HTML和CSS向用户呈现数据,并通过JavaScript完成交互。这些技术被称为“前端”或“客户端”技术。另一方面,“后端”或“服务器端”技术指的是数据存储和处理技术。

问题的表述

前端和后端技术结合在一起构建Web应用程序,但由于万维网的发展速度如此之快,而且开发人员需要使用相当多的技术来构建单个Web应用程序,工作通常很难维护和修复。

开发人员将HTML代码与服务器端编程语言相结合,以创建动态网页和应用程序,这会导致高度纠缠和不可维护的代码。

另一个问题来自于Web技术越来越多地用于构建各种复杂应用程序的事实。微软采用Web技术来鼓励开发人员为其最新的操作系统Windows 8构建应用程序。此外,还有许多框架可以帮助Web开发人员为移动设备编写应用程序,如PhoneGap和Appcelerator Titanium。更重要的是,移动操作系统正在开发中,设备预计将在今年晚些时候完全用于开发人员API(Mozilla Firefox OS)。出于这些原因,Web应用程序通常由整个专业开发人员团队创建,每个团队使用他们喜欢的技术,如表示层的HTML和CSS,客户端交互的JavaScript,PHP(或ASP,Java,Python,Pearl) ,Ruby等)用于服务器端逻辑和MySQL(或Oracle数据库,Microsoft SQL Server等),用于数据存储和管理。

这些专家中的每一个都需要与他们的同事一起工作,使他们的代码部分适合应用程序的整体设计。例如,客户端(数据表示)开发人员需要改变HTML和CSS代码,使他不会破坏驻留在同一文件中的服务器端开发人员代码。此外,当数据库开发人员更改应用程序的架构时,服务器端开发人员可能需要更改大量代码以使应用程序正常工作。

这里需要注意的重要一点是,迫切需要将表示与应用程序中的逻辑和数据存储分开。

有一些应用程序设计范例和模式为这个问题提供了解决方案,但现在的重点是MVC模式。

在进行研究时,我们使用了我们的经验,即使用各种系统和框架构建Web应用程序,我们尝试确定这些系统的优点和缺点,同时提供我们自己对如何改进这些实践的看法。研究的框架和系统包括:Symfony,CakePHP,CodeIgniter Zend Framework,Laravel,Fuel PHP,Ruby on Rails和ASP.NET MVC。

MVC模式和文献概述

在本节中,我们将回顾该领域研究的现状,并查看MVC模式背后的文献,描述模式的主要功能部分。

MVC设计模式最初是由Trygve Reenskaug在20世纪70年代在施乐公园(Xerox Parc)设想的。据他介绍,“MVC的基本目的是弥合人类用户心理模型与计算机中存在的数字模型之间的差距”。[1]

后来,在1988年,Krasner和Pope在他们的文章“使用Smalltalk-80中的模型 - 视图控制器用户界面范例的烹饪书”中详细描述了MVC范例,该文章发表在面向对象编程期刊上。

他们强调,如果构建具有模块化的应用程序,那么可以获得巨大的好处。“尽可能地将功能单元彼此隔离,使应用程序设计人员更容易理解和修改每个特定单元,而无需了解其他单元的所有内容。”[2]

应用程序分为三个主要类别:主应用程序域的模型,该模型中的数据表示和用户交互。[2]

MVC模式将职责分为三个主要角色,从而实现更高效的协作。[3]这些主要角色是开发,设计和集成。

1174 Dragos-Paul Pop和Adam Altar / Procedia Engineering 69(2014)1172 - 1179

开发角色由负责应用程序逻辑的有经验的程序员承担。他们负责数据查询,验证,处理等。

设计角色适用于负责应用程序外观的开发人员。它们显示从处理第一个角色的开发人员提供的数据。

集成角色使开发人员有责任粘合前两个角色的工作。[3]

MVC设计模式非常适合Web应用程序开发,因为它们结合了通常分为一组层的多种技术。此外,MVC特定的行为可以是将特定视图发送到不同类型的用户代理。[13]

“用户与MVC应用程序的交互遵循自然循环:用户采取行动,作为响应,应用程序更改其数据模型并向用户提供更新的视图。然后循环重复。对于作为一系列HTTP请求和响应提供的Web应用程序,这非常方便。“[4]

图1 MVC模式。

资源:http://stackoverflow.com/questions/5966905/which-mvc-diagram-is-correct-web-app

3.1.该模型

模型是管理与数据相关的所有任务的系统的一部分:验证,会话状态和控制,数据源结构(数据库)。该模型大大降低了开发人员需要编写的代码的复杂性。[5]

Model层负责应用程序的业务逻辑。它将封装访问数据(数据库,文件等)的方法,并将提供可重用的类库。通常,模型是在考虑数据抽象,验证和身份验证的情况下构建的。[4]

此外,模型由定义感兴趣领域的类组成。属于域的这些对象通常会封装存储在数据库中的数据,但也包括用于操作此数据并实施业务规则的代码。[6]

作为结论,该模型主要处理数据访问抽象和验证。该模型包含与不同数据源交互的方法。

我们相信精简模型方法,它认为模型应该尽可能简单,只包含严格依赖于建模的现实生活对象的数据处理。瘦模型与Fat控制器耦合,后者包含应用程序所需的大部分数据处理。这样,模型在应用程序之间变得高度可重用,并且大多数开发人员的工作都保留在控制器中。

Dragos-Paul Pop和Adam Altar / Procedia Engineering 69(2014)1172 - 1179 1175

我们的模型系统为MVC世界带来的新颖性是基于迁移思想的版本控制系统,它不仅跟踪数据结构而且跟踪数据本身。系统使用xml文件在迁移之间存储数据,使数据库的版本控制过程变得容易实现。

    1. 风景

View负责图形用户界面管理。这意味着应用程序内的所有表单,按钮,图形元素和所有其他HTML元素。视图还可用于为聚合器或Flash演示文稿生成RSS内容。通过将应用程序的设计与应用程序的逻辑分离,当设计者决定通过更改徽标或表格来更改该应用程序的界面时,我们可以大大降低出现错误的风险。同时,开发人员的工作大大减少,因为他不再需要查看HTML代码元素,设计元素和图形元素。[5]

View层通常可以称为Web设计或模板。它控制数据的显示方式以及用户与之交互的方式。它还提供了从用户收集数据的方法。主要用于视图的技术是HTML,CSS和JavaScript。[4]

作为一般规则,视图不应包含属于应用程序逻辑的元素,以便设计人员更容易使用它。这意味着逻辑块应保持在最低限度。

今天大多数Web应用程序框架都使用某种模板引擎,该引擎利用生成器元素将HTML代码保持在最低限度并降低键入错误的风险。这些生成器通常用于制作复杂的Web部分,如表​​单,表格,列表,菜单等。我们在这种情况下发现的问题是这个想法的所有实现都使用幕后或不透明的部分生成。这样,前端开发人员只能在生成代码后才能看到生成的代码,几乎没有修改模板的方法。我们的系统使用特殊的HTML注释来插入和生成基于模板的部分,这些模板也是仅HTML文件。预处理系统使用注释来解释特殊命令,以便将数据插入模板中。这使得整个过程对于前端开发人员非常透明,前端开发人员可以在呈现视图之前查看整个标记。

    1. 控制器

Controller负责事件处理。这些事件可以由用户与应用程序交互或由系统进程触发。控制器接受请求并准备响应数据。它还负责确定该响应的格式。Controller与模型交互以检索所需数据并生成视图。此过程也称为动作或动词。[5]当请求到达服务器时,MVC框架会根据URL将其调度到控制器中的方法。[14]

Controller绑定所有应用程序逻辑,并将View中的显示与模型中的功能组合在一起。它负责从View中检索数据并确定应用程序的执行路径。Controller将访问Model功能,它将解释收到的数据,以便View可以显示。它还负责错误处理。[4]

Controller管理视图和模型之间的关系。它响应用户请求,与模型交互并决定应生成和显示哪个视图。[6]

如上所述,我们采用Fat Controller方法,认为应该在控制器级别处理所有特定于应用程序的数据处理。

我们的控制器系统是RESTful,支持请求和响应的JSON(P),文本和XML数据格式。

4.数据库抽象

在面向对象编程中,应用程序使用对象构建。这些对象反映了真实生活对象,它们包含数据和行为。广泛用于应用程序中的数据存储的关系模型使用表来存储数据和数据操作语言以与该数据交互。某些数据库管理系统具有面向对象的功能,但它们并不完全兼容。很明显,这两种架构被广泛使用,并且从现在开始将持续很长时间。而且,关系模型和面向对象编程

1176 Dragos-Paul Pop和Adam Altar / Procedia Engineering 69(2014)1172 - 1179

大多数时候一起使用来构建各种规模的应用程序。但这两种技术相结合的方式是

远非完美。用于这种不匹配的术语是“物体 - 关系阻抗不匹配”。[7]

这种不匹配背后的原因是这两种技术依赖于不同的概念。面向对象编程依赖于经过验证的编程概念,而关系模型遵循数学原理。

开发对象关系映射系统仅仅是为了解决这

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[20313],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、外文翻译、任务书、文献综述、开题报告、程序设计、图纸设计等资料可联系客服协助查找。