4) Tecnología escogida

Principal tecnología a Utilizar


Para el desarrollo de esta solución se involucrarán varias tecnologías: javascript, css, html, bootstrap, jquery, nuget, github.  Las alternativas que existen de desarrollo en frontend son muy amplias, pero hasta el día de hoy todas requieren en algún momento de javascript pues hasta el momento sigue siendo el único lenguaje nativo interpretado por todos los principales navegadores web[1]. GitHub es un servicio de hosting y versionamiento utilizado principalmente por desarrolladores para publicar código, esto gracias a su servicio de versionamiento y  su potente administrador de código fuente[2].
La publicación de la solución se haría en Nuget, esta es una herramientas soportada por Microsoft por que los desarrolladores puedan crear, compartir, almacenar, actualizar y consumir código reutilizable. Esta herramienta soporta tanto código abierto como código cerrado, lo que permite que las soluciones aportadas puedan dirigirse al público en general como también a grupos de trabajos u organizaciones. Básicamente Nuget  almacena y comparte proyectos mediante los paquetes nuget, estos son compilados con la extensión .nupkg que contienen el código compilado, algunos otros archivos y un manifiesto con información descriptiva del proyecto y la versión del proyecto[3].
Angularjs: es un framework que permite extender las funcionalidades de html para ofrecer un formato más amplio, expresivo y legible. Permite incluir un marcado especial en el html que se sincroniza  con el javascript. No debe ser confundida con Angular (también conocido como Angular 4), versión posterior a AngularJS  que utiliza typescript en lugar de utilizar directamente javascript. Aunque ambas herramientas comparten importantes similitudes también son muy diferentes y no son compatibles[4].
 Esta interacción entre el html y javascript que potencia angularjs tiene su principal ventaja en la creación de las SPA (single page application), un concepto que permite actualizar vistas de forma  dinámica, sin tener que hacerlo de forma manual, como consecuencia cualquier acción de la página, como cambiar de pantalla o un clic, no tienen la consencuencia de recargar toda la aplicación, lo cuál la hace radicálmente distinta a las metodologías tradicionales basadas en callbacks que obligaban a recargar todo el proyecto. Este importante logro para el dinamismo de los sitios web se hace posible gracias a la manipulación del DOM que hace Angularjs.
 El DOM  (Document Object Model) es una interfaz de manipulación de los elementos del documento html y xml, representando estos como nodos y objectos. Enauglar pemite, mediante sus directivas generales hacer una manipulación dinámica de estos elementos. El DOM es el que permite que JavaScript (y por extensión los frameworks para javascript) pueda interactuar con el HTML y XML[5].
 De esa forma angularjs permite crear aplicación más para muchos escenarios[6]. Angularjs es mantenido por ingenieros de google, esto garantiza una significativa y activa comunidad de desarrolladores alrededor de esta tecnología, ofreciendo así una amplia documentación y la ayuda de ingenieros muy capacitados y por una amplia comunidad de desarrolladores que constantemente aportan nuevas soluciones para seguir mejorando Angularjs, en parte gracias a esto el framework se ha mantenido vigente desde hace varios años como una de las herramientas más comunes para desarrollos de sitios web.



[1] Japikse, P., Grossnicklaus, K., & Dewey, B. (2017). JavaScript Application Tools. In Building Web Applications with Visual Studio 2017 (pp. 211-240). Apress, Berkeley, CA. https://link.springer.com/chapter/10.1007/978-1-4842-2478-6_6

[2] Dabbish, L., Stuart, C., Tsay, J., & Herbsleb, J. (2012, February). Social coding in GitHub: transparency and collaboration in an open software repository. In Proceedings of the ACM 2012 conference on Computer Supported Cooperative Work (pp. 1277-1286). ACM. http://www.cs.cmu.edu/afs/cs/Web/People/xia/resources/Documents/cscw2012_Github-paper-FinalVersion-1.pdf

[3] Kraig Brockschmidt and Alfred Myers. January 10, 2018. An IntroductionTo Nuget. Microsoft Documentation. https://docs.microsoft.com/en-us/nuget/what-is-nuget
[4] de Kort, W. (2016). Creating and Sharing Packages. In DevOps on the Microsoft Stack (pp. 189-201). Apress, Berkeley, CA. https://link.springer.com/chapter/10.1007/978-1-4842-1446-6_10

[5] Jensen, S. H., Madsen, M., & Møller, A. (2011, September). Modeling the HTML DOM and browser API in static analysis of JavaScript web applications. In Proceedings of the 19th ACM SIGSOFT symposium and the 13th European conference on Foundations of software engineering (pp. 59-69). ACM. https://www.thali.ch/files/Shop/Documents/013844_Chapter_4_Style_Sheet_Property_Reference.pdf
[6] Japikse, P., Grossnicklaus, K., & Dewey, B. (2017). JavaScript Application Tools. In Building Web Applications with Visual Studio 2017 (pp. 211-240). Apress, Berkeley, CA. https://link.springer.com/chapter/10.1007/978-1-4842-2478-6_6


Comentarios