Implementación de un framework para el desarrollo de aplicaciones web utilizando patrones de diseño y arquitectura MVC/REST
Abstract
El lenguaje de Internet para la creación de documentos electrónicos más conocido es el HTML, que
es con el que se define la estructura y contenido de una página web. Consta de una serie de etiquetas
(markups) predefinidas que permiten construir documentos que contienen títulos, párrafos y listas de
texto, tablas, imágenes y otros elementos para la presentación de la información.
Con el avance de la tecnología y la aparición por ejemplo del XML (Extensible Markup Language),
metalenguaje extensible creado por el Wide Word Web Consortium (W3C) que posibilita la creación de
nuevos lenguajes o sublenguajes (XHTML, RSS, ATOM, MathML), surge la necesidad de que aquellos
sistemas que simplemente ó solamente podían generar código HTML, sean modificados ó reemplazados
por nuevos sistemas que si sean capaces de generar tantos formatos de salida como sean requeridos para
poder orientar los negocios hacia las nuevas necesidades del mercado, de la forma más sencilla posible.
Hoy en día muchos sistemas que manejan información a través de Internet, necesitan no solamente
poder generar códigos en HTML para representarse en los navegadores de los usuarios, sino que también
existe la necesidad de intercambiarla entre diferentes plataformas ó sistemas para lograr que la misma
pueda ser interpretada según la tecnología involucrada (celulares, feeds de noticias, etc.) pero siempre
partiendo de una misma base desde donde se genere dicha información.
Para resolver la problemática descripta anteriormente, este proyecto trata sobre la implementación de
un framework que permita desarrollar aplicaciones en las que pueda fácilmente separarse la lógica de
negocios, el acceso de los datos y su forma de presentación de modo que la generación de información
en diferentes formatos deje de ser un problema o una situación de difícil manejo que obligue a modificar
los sistemas haciéndolos cada vez más complejos y repitiendo códigos y funcionalidades, agregándoles
nuevas capas en su core cada vez que sea necesario generar una nueva salida.