El cliente posee la responsabilidad de ejecutar adecuadamente las interfaces gr´aficas, contenidas en las vistas, y que poseen cierta capacidad de procesamien- to, haciendo de esta manera m´as sencillo el trabajo del controlador ( alojado en
en el cliente, centr´andose s´olo en procesamiento m´as b´asico de los datos y de- jando la responsabilidad del proceso m´as laborioso al controlador. Para ello, el cliente utiliza el motor de ejecuci´on de scripts “Javascript” y se sustenta sobre una serie de frameworks para encapsular la complejidad de tareas secundarias, as´ı como para facilitar la labor de programaci´on.
Entre los frameworks existentes para interfaces de usuario, se ha elegido el uso de JQuery por ser el mejor documentado y el m´as id´oneo para ´esta situaci´on; en un principio, se plante´o el uso de AngularJS, pero tras un breve an´alisis, se descart´o debido a los cambios en la arquitectura que su uso supon´ıa, adem´as de el tiempo que habr´ıa de invertir en su aprendizaje. Se plante´o en un primer estad´ıo del proyecto el uso del framework Bootstrap, pero dado que se trata de un framework que simplemente aporta mejoras visuales y de comportamiento adaptable a distintos dispositivos, se decidi´o apartarlo y proponerlo como una mejora futura, tal y como se describe en el cap´ıtulo 5.
Por ´ultimo, cabe destacar que para la implementaci´on de las vistas, se ha optado por utilizar HTML 4.1, dado que es el que mayor aceptaci´on tiene entre los navegadores web existentes actualmente en el mercado, si bien el cambio a HTML 5 no aportar´ıa grandes diferencias, pero su uso a´un ´esta menos extendido que el de la versi´on anterior.
A la hora de implementar las vistas, se ha optado por un sistema b´asico de plantillas, sin utilizar ning´un tipo de framework, para dotarlo de sencillez; dicho sistema entra en acci´on en el controlador, que ser´a el encargado de inyectar los datos variables adecuados a la vista, as´ı como de incluir las cabeceras y pies de p´agina, iguales en todos los puntos del programa, y de enviar el contenido resultante al cliente, en cual, si se diera el caso, utilizar´ıa los scripts escritos en Javascript para visualizar adecuadamente el contenido, creando de manera din´amica elementos que de otra manera no ser´ıa posible.
Entrando en detalle de los scripts utilizados, hay que remarcar que no se ha utilizado tecnolog´ıa AJAX, ya que si bien encaja mucho mejor en los desarrollos de interfaces centradas en los usuarios, a˜nade una complejidad en el flujo de trabajo, principalmente por el intercambio de mensajes entre el cliente y el servidor, llegando al punto de, en ocasiones, desdoblar la funcionalidad de un controlador para adecuarse al uso de ´esta herramienta. Los scripts, por tanto, realizar´an s´olo las siguientes labores:
• Generar informaci´on para el cliente de manera aut´onoma al servidor, re- duciendo la carga y, por tanto, los tiempos de espera propios del procesado de formularios.
• Realizar, de ser necesario, una peque˜na comprobaci´on de los datos de entrada para reducir as´ı el tiempo de espera a la hora de aportar una retroalimentaci´on al usuario, es decir, a la hora de informarle de errores
• Aportar mejoras visuales y funcionales que no ser´ıan posibles de otra for- ma, tales como las herramientas de Drag&Drop.
4.2.1 Plugins usados
A la hora de mejorar la visualizaci´on de los elementos dados, se opt´o por la utilizaci´on de una serie de plugins para el framework JQuery, dado que, si bien es posible realizar el mismo trabajo utilizando solamente dicho framework, el volumen de trabajo se vuelve excesivo. Los plugins aqu´ı mostrados son una so- luci´on perfecta, ya que, por un lado, aportan las mejoras visuales encontradas, y por el otro, est´an lo bastante bien documentados como para que el aprendizaje de su manejo sea asumible en una cantidad breve de tiempo.
Despu´es del an´alisis de los prototipos de la interfaz gr´afica, se opt´o por buscar solamente dos plugins que implementaran las dos partes m´as complejas de la visualizaci´on. Pasamos a comentar dichas elecciones:
• Drag&Drop: Para implementar de una manera m´as simple ´este meca- nismo, se opt´o por la utilizaci´on del plugin JQueryUI, que se bien est´a desarrollado por un equipo en colaboraci´on con JQuery, se distribuye co- mo un plugin al margen debido a que las funciones que ofrece son m´as visuales que funcionales, a diferencia de JQuery. Dentro de ´este plugin se incluyen multitud de mejoras gr´aficas y envolturas para las operaciones ofrecidas por el framework que lo sustenta, y entre todas ellas encontra- mos una rica API de acceso, manejo y visualizaci´on de elementos que implementen la funcionalidad de arrastrar y soltar.
• Slider m´ultiple:Para la implementaci´on de una barra de deslizamiento, o Slider, con m´ultiples puntos de deslizamiento, para definir rangos de tama˜no variable, se opt´o por la utilizaci´on del plugin colResaizable, el cual, si bien est´a principalmente pensado para realizar cambios en el tama˜no de tablas, ofrece algunas funcionalidades para sliders m´ultiples.