2. Estado del Arte
5.4. Comparaci´ on de la aplicaci´ on prototipo con desarrollos existentes en la empresa
Aunque la aplicaci´on prototipo es bastante simple, ya que s´olo es utilizada para validar la factibilidad t´ecnica de la incorporaci´on de un Javascript Framework y su integraci´on en la interfaz frontend de ERPS, demuestra que es posible reemplazar y mejorar funcionalidades actuales de ´este, sin interferir en el correcto funcionamiento de otras que no est´en relacionadas. Por otra parte, la aplicaci´on prototipo desarrollada demuestra que es posible disminuir la canti- dad de veces que se carga la p´agina de tres veces a tan s´olo una vez, en secuencias simples como la expuesta en la Secci´on 5.1, las cuales se pueden encontrar en muchas de las aplicaciones desarrolladas por la empresa SIDEKICK.
Impl´ıcitamente, el tiempo de respuesta de la interfazfrontend es mejor debido a que la comuni- caci´on con la interfazbackend de ERPS se limita a tan s´olo verificar y guardar datos entregados por la aplicaci´on prototipo, en vez de cargar p´aginas, extraer datos de ´estas, verificarlos, guar-
CAP´ITULO 5. C. DE LA A. P. UTILIZANDO EL JS FRAMEWORK ESCOGIDO 40 darlos y finalmente mostrar los resultados, proceso actual de ERPS.
Sin embargo, aunque se pueden lograr m´as mejoras dentro de ERPS (en acciones simples como borrar elementos, por ejemplo) y otras aplicaciones de la empresa SIDEKICK, cabe mencionar que construirlas conllevar´a mayor tiempo de desarrollo de las interfaces de cada aplicaci´on.
Cap´ıtulo 6
Conclusiones
Con respecto al proceso de selecci´on e integraci´on del Javascript Framework se puede concluir lo siguiente:
1. Existen muchos Javascript Frameworks distintos y se debe tener cuidado al seleccionar uno, ya que siguen arquitecturas y metodolog´ıas distintas que tal vez no se puedan adaptar f´acilmente a la aplicaci´on que se quiera desarrollar.
2. La lectura de c´odigo fuente y ejemplos puede ayudar a obtener nociones generales de cada
Javascript Framework, pero de todas formas se debe revisar la documentaci´on oficial para encontrar posibles problemas de compatibilidad.
3. Es conveniente seleccionar un Javascript Framework que se adapte a la tecnolog´ıa que se utiliza, en vez de adaptarlo a ´esta.
Por otra parte, con respecto a Marionette y la incorporaci´on e integraci´on a ERPS se puede concluir lo siguiente:
1. Se logr´o construir una aplicaci´on prototipo funcional sobre la interfaz frontend de ERPS, capaz de demostrar que se pueden realizar mejoras funcionales de la interfaz utilizando la arquitectura REST y unJavascript Framework.
2. La aplicaci´on prototipo tambi´en presenta mejoras de usabilidad y tiempo de respuesta en beneficio de los usuarios de ERPS.
CAP´ITULO 6. CONCLUSIONES 42 Aunque existen beneficios por utilizar un Javascript Framework como Marionette, cabe mencionar que tambi´en existen algunos aspectos en contra:
1. Se necesita tiempo de desarrollo adicional para crear los modelos, vistas, plantillas, etc. 2. El tiempo de carga inicial de la aplicaci´on aumenta, ya que se deben incluir las depen-
dencias y c´odigo fuente adicional de las funcionalidades.
3. Durante el desarrollo de la aplicaci´on prototipo se detectaron algunos problemas con las dependencias de Backbone, puntualmente la de formularios. Ya que ERPS es, principal- mente, un gran conjunto de formularios, tener problemas con una dependencia relacionada a ellos puede significar grandes problemas de desarrollo y mantenibilidad de la aplicaci´on. Finalmente, durante el desarrollo de la memoria se ha logrado completar los objetivos pro- puestos en la Secci´on 1.2, se ha transmitido la investigaci´on realizada, el prototipo y las con- clusiones obtenidas a la empresa SIDEKICK, cumpliendo con el objetivo general de la memoria de proponer una mejora tecnol´ogica utilizando un Javascript Framework.
Referencias
[AA16] Carl Lerche Yehuda Katz Andr´e Arko, Terence Lee. Bundler. https:// rubygems.org/gems/bundler, 2016. Accedido: 3/9/2016.
[AI16] Apple Inc. Apple. http://www.apple.com, 2016. Accedido: 5-08-2016. [ANAS14] Andr´e Nitze and Andreas Schmietendorf. Modularity of javascript libraries
and frameworks in modern web applications. User Conference for Software Quality, Test and Innovation, At Klagenfurt, AT, Volume: 12, 2014.
[and16] andyet. Ampersandjs. https://ampersandjs.com/, 2016. Accedido: 3-08- 2016.
[AO12] Addy Osmani. Understanding MVC And MVP (For Javascript And Backbone Developers). http://goo.gl/4b2iaH, 2012. Accedido: 25-12-2015.
[Ash16a] Jeremy Ashkenas. BackboneJS.http://backbonejs.org/, 2016. Accedido: 11-01-2016.
[Ash16b] Jeremy Ashkenas. BackboneJS. http://backbonejs.org/#Model, 2016. Accedido: 4/9/2016.
[Ash16c] Jeremy Ashkenas. Underscorejs. http://underscorejs.org/, 2016. Acce- dido: 4/9/2016.
[BH15] Blaine Hatab. 3 ways to integrate ruby on rails + react + flux. http://www.openmindedinnovations.com/blogs/ 3-ways-to-integrate-ruby-on-rails-react-flux, 2015. Accedi- do: 5-08-2016.
[Boo16] Phil Booth. escomplex. https://github.com/escomplex/escomplex, 2016. Accedido: 1/8/2016.
REFERENCIAS 44 [Bui15] J. Buis. Security Comparison: AngularJS Vs Back- bone.js vs Ember. https://softwaresecured.com/ angularjs-backbone-js-and-ember-security-comparison/, 2015. Accedido: 3-08-2016.
[Can16] Canjs. Canjs. https://canjs.com/, 2016. Accedido: 3-08-2016.
[Dav16] Charles Davison. Datatables. https://github.com/powmedia/ backbone-forms, 2016. Accedido: 4-09-2016.
[DF16] Dojo Foundation. Dojo. http://mootools.net/, 2016. Accedido: 2-08- 2016.
[DIKS12] Audris Mockus Dag I. K. Sjoberg, Bente Anda. Questioning software mainte- nance metrics: A comparative case study. InProceedings of the 2012 ACM- IEEE International Symposium on Empirical Software Engineering and Mea- surement, pages 107 – 110. IEEE, 11 2012.
[DR98] Dave Raggett. A history of HTML. https://www.w3.org/People/ Raggett/book4/ch02.html, 1998. Accedido: 25-12-2015.
[EC14] ECMAScript Community. harmony:harmony. http://wiki.ecmascript. org/doku.php?id=harmony:harmony, 2014. Accedido: 25-12-2015.
[EI11] Ecma International. ECMAScriptR Language Specification. http://www. ecma-international.org/ecma-262/5.1/, 2011. Accedido: 11-01-2016. [EI15] Ecma International. ECMAScriptR 2015 Language Specification. http:
//www.ecma-international.org/ecma-262/6.0/, 2015. Accedido: 11-01- 2016.
[ES16] Eric Sipple. The Top Mistakes Developers Make Using Em- ber and Rails. https://www.airpair.com/ember.js/posts/ top-mistakes-ember-rails, 2016. Accedido: 5-08-2016.
[EY16] Evan You. Vuejs. https://vuejs.org/, 2016. Accedido: 5-08-2016. [Fac16] Facebook. React.https://facebook.github.io/react/, 2016. Accedido:
REFERENCIAS 45 [fun16] fundinguniverse.com. Macromedia. http://www.fundinguniverse.com/ company-histories/macromedia-inc-history/, 2016. Accedido: 2-08- 2016.
[GI16] GitHub Inc. Github. https://github.com/, 2016. Accedido: 3-08-2016. [Goo16a] Google. AngularJS.https://angularjs.org/, 2016. Accedido: 11-01-2016. [Goo16b] Google. Polymer Project. https://www.polymer-project.org, 2016. Ac-
cedido: 2-08-2016.
[Gro16] Gregory Gromov. Roads and crossroads of the internet history. http: //www.netvalley.com/cgi-bin/intval/net_history.pl?chapter=4, 2016. Accedido: 2/8/2016.
[IH15] Itay Herskovits. Does AngularJS Meet Enterprise Security Needs? http: //blog.backand.com/angular-enterprise-dev/, 2015. Accedido: 3-08- 2016.
[INC15] TILDE INC. Ember. http://emberjs.com/, 2015. Accedido: 11-01-2016. [INC16] TILDE INC. Ember Guides. https://guides.emberjs.com, 2016. Accedi-
do: 4/9/2016.
[JH15] John Hannah. Choosing the Right Javascript Frame- work for the Job. https://www.lullabot.com/articles/ choosing-the-right-javascript-framework-for-the-job, 2015. Accedido: 3-08-2016.
[Kan16] Kangax. ECMAScript compatibility table. https://kangax.github.io/ compat-table/es6/, 2016. Accedido: 11-01-2016.
[Kat16] Yehuda Katz. Handlebars. http://handlebarsjs.com/, 2016. Accedido: 3/9/2016.
[KM16] Kevin Malakoff. Knockbackjs.http://kmalakoff.github.io/knockback/ index.html, 2016. Accedido: 2-08-2016.
[KP16] Katherine Pe. Among Angular, Backbone, Ember and React, which one is a better choice to be used with rails?http://goo.gl/6azIXE, 2016. Accedido: 5-08-2016.
REFERENCIAS 46 [LH14] Leo Horie. Mithril. http://mithril.js.org/, 2014. Accedido: 3-08-2016. [Ltd16] SpryMedia Ltd. Datatables. https://datatables.net/, 2016. Accedido:
4-09-2016.
[mar16a] marionettejs.com. Marionettejs. http://marionettejs.com/, 2016. Acce- dido: 5-08-2016.
[mar16b] marionettejs.com. Marionettejs. http://marionettejs.com/docs/ current/, 2016. Accedido: 4-09-2016.
[Mat16] Yukihiro Matsumoto. ruby. https://www.ruby-lang.org, 2016. Accedido: 3/9/2016.
[Mic16] Microsoft. Microsoft. https://www.microsoft.com, 2016. Accedido: 5-08- 2016.
[Mit16] Mithril. How is Mithril Different from Other Frameworks. http://mithril. js.org/comparison.html, 2016. Accedido: 3-08-2016.
[MK16] Mikael Karon. TroopJS. https://github.com/troopjs, 2016. Accedido: 2-08-2016.
[Moz15] Mozilla. ECMAScript 6 support in Mozilla. https://developer. mozilla.org/es/docs/Web/JavaScript/Novedades_en_JavaScript/ ECMAScript_6_support_in_Mozilla, 2015. Accedido: 25-12-2015. [Moz16] Mozilla. Mozilla. https://www.mozilla.org, 2016. Accedido: 5-08-2016. [MR16a] Margaret Rouse. Erp (enterprise resource planning). http://searchsap.
techtarget.com/definition/ERP, 2016. Accedido: 5-08-2016.
[MR16b] Margaret Rouse. unit testing. http://searchsoftwarequality. techtarget.com/definition/unit-testing, 2016. Accedido: 4-08-2016. [NF16] Node.js Foundation. About Node.jsR. https://nodejs.org/en/about/,
2016. Accedido: 11-01-2016.
[Ora16] Oracle. The History of Java Technology. http://www.oracle.com/ technetwork/java/javase/overview/javahistory-index-198355. html, 2016. Accedido: 2-08-2016.
REFERENCIAS 47 [OSA16] Opera Software ASA. Opera. http://www.opera.com/, 2016. Accedido:
5-08-2016.
[Osm16] Addy Osmani. Todomvc.http://todomvc.com/, 2016. Accedido: 1/8/2016. [PCT16] Prototype Core Team. Prototype. http://prototypejs.org/, 2016. Acce-
dido: 2-08-2016.
[PO92] J. Hagemeister P. Oman. Metrics for assessing a software system’s maintai- nability. InSoftware Maintenance, 1992. Proceerdings., Conference on, pages 337 – 344. IEEE, 11 1992.
[PP16a] Sean Doyle Pavel Pravosud, Jonathan Jackson. ember-cli.https://github. com/thoughtbot/ember-cli-rails, 2016. Accedido: 3/9/2016.
[PP16b] Phips Peter. I am confused whether to use angular.js, underscore.js react.js, ember.js or backbone.js for my next project. can someone help me with ma- terial which states which type of web apps each library rocks at? http: //goo.gl/h6n7e8, 2016. Accedido: 5-08-2016.
[RCT16] Rails Core Team. Ruby on Rails. http://rubyonrails.org/, 2016. Acce- dido: 5-08-2016.
[RL16] Richard LaFranchi. Vue.js and Rails. https://rlafranchi.github.io/ 2016/03/09/vuejs-and-rails/, 2016. Accedido: 5-08-2016.
[Sid09] Siddharth. 15 Most Important Considerations when Choosing a Web Deve- lopment Framework. http://goo.gl/aeDZIU, 2009. Accedido: 3-08-2016. [SS15] Steve Sanderson. knockoutjs. http://knockoutjs.com/, 2015. Accedido:
3-08-2016.
[Sym16] Symfony.com. 10 criteria for choosing the correct framework. http:// symfony.com/ten-criteria, 2016. Accedido: 3-08-2016.
[tho16] thocp.net. Sun Microsystems. http://www.thocp.net/companies/sun_ microsystems/sun_microsystems_company.htm, 2016. Accedido: 2-08- 2016.
[TjF16] The jQuery Foundation. jQuery. https://jquery.com/, 2016. Accedido: 11-01-2016.
REFERENCIAS 48 [TMDT16] The MooTools Dev Team. MooTools. http://mootools.net/, 2016. Ac-
cedido: 2-08-2016.
[TT16] Tim Tyrrell. Intro to Backbone.js with Rails. http://es.slideshare.net/ timtyrrell/intro-to-backbonejs-with-rails, 2016. Accedido: 5-08- 2016.
[tut16] tutorialspoint.com. Restful web services - introduction. http://www. tutorialspoint.com/restful/restful_introduction.htm, 2016. Ac- cedido: 4-08-2016.
[Twi16] Twitter. Flight. https://flightjs.github.io/, 2016. Accedido: 3-08- 2016.
[WHATWG16a] Web Hypertext Application Technology Working Group. HTML Introduc- tion. https://html.spec.whatwg.org/multipage/introduction.html, 2016. Accedido: 11-01-2016.
[WHATWG16b] Web Hypertext Application Technology Working Group. HTML Living Stan- dard. https://html.spec.whatwg.org/multipage/, 2016. Accedido: 11- 01-2016.
[WHATWG16c] Web Hypertext Application Technology Working Group. Sitio web oficial.
https://whatwg.org/, 2016. Accedido: 25-12-2015.
[WWWC97] World Wide Web Consortium. World Wide Web Consortium Publishes Public Draft of HTML 4.0. https://www.w3.org/Press/HTML4, 1997. Accedido: 25-12-2015.
[WWWC98] World Wide Web Consortium. Html 4.0 specification. https://www.w3. org/TR/1998/REC-html40-19980424/, 1998. Accedido: 11-01-2015. [WWWC99] World Wide Web Consortium. Introduction to HTML 4.01. https://www.
w3.org/TR/html4/, 1999. Accedido: 25-12-2015.
[WWWC05] World Wide Web Consortium. Document Object Model. http://www.w3. org/DOM/, 2005. Accedido: 25-12-2015.
[WWWC12] World Wide Web Consortium. A Short History of Javascript. https://www. w3.org/community/webed/wiki/A_Short_History_of_JavaScript, 2012. Accedido: 25-12-2015.
REFERENCIAS 49 [WWWC14] World Wide Web Consortium. HTML5 A vocabulary and associated APIs for HTML and XHTML. http://www.w3.org/TR/html5/, 2014. Accedido: 25-12-2015.
[WWWC15] World Wide Web Consortium. HTMl 5.1 W3C Working Draft. http://www. w3.org/TR/html51/, 2015. Accedido: 25-12-2015.
[WWWC16] World Wide Web Consortium. Sitio web oficial.http://www.w3.org/, 2016. Accedido: 25-12-2015.
[ZK15] Zach Kuhn. Choosing a front end framework: Angular vs. ember vs. react. http://smashingboxes.com/blog/ choosing-a-front-end-framework-angular-ember-react, 2015. Accedido: 5-08-2016.