XForms/Por que XForms
Por qué XForms
Los problemas del desarrollo Web hoy en día
[editar]Casi todo desarrollador de aplicaciones Web hoy en día se ve forzado a utilizar tres tecnologías diferentes en el momento de crear una aplicación: Bases de Datos Relacionales para almacenar datos; Lenguajes Orientados a Objetos para programar la lógica de la aplicación; HTML Forms para la Interfaz de Usuario.
Esta combinación de tres modelos se ha convertido en un estándar de facto con el que nos acostumbramos a vivir a pesar de las incomodidades que nos causa.
1. Limitaciones de HTML Forms
[editar]En primer lugar, HTML Forms fue creado recién en los albores de la World Wide Web y fue concebido con una funcionalidad muy básica en mente, que hoy por hoy es insuficiente para las aplicaciones del mundo real. Algunas de las cosas que no pueden hacerse con la funcionalidad estándar de HTML Forms incluyen:
- Validaciones
- Mostrar/Ocultar controles según el contexto
- Edición tipo Tabla
- Edición multi página
En la práctica los desarrolladores nos hemos acostumbrado a conseguir este tipo de funcionalidad mediante código javascript y frameworks para interfaces de usuario, que a corto plazo implican un mayor esfuerzo de desarrollo y una curva de aprendizaje más empinada y a largo plazo hacen más complejo el mantenimiento posterior del código.
2. Necesidad de traducción entre modelos
[editar]Hoy en día, un porcentaje preocupantemente alto del código que se escribe de una aplicación está dedicado a la tarea trivial de convertir de HTML Forms a Objetos y posteriormente de Objetos a SQL para realizar la comunicación entre las tres capas fundamentales de una aplicación: Presentación - Reglas de Negocio - Almacenamiento.
Paradójicamente, la aparición de XML en lugar de ayudar a simplificar estas tareas triviales, termino por complicarlas, pues ahora es costumbre usar XML en la forma de Web Services par comunicarse entre estas tres capas, duplicando la escritura del código de traducción para permitir representar HTML Forms, Objetos y SQL en forma de XML y viceversa.
Nuevamente la consecuencias son, aparte del mayor esfuerzo inicial para crea el código, la reducción de la mantenibilidad a largo plazo.
Los beneficios de XForms
[editar]Menos código
XForms permite expresar en forma de reglas lo que de otro modo hubiera requerido código, a veces javascript, y a veces código en el servidor.
Mantenibilidad
XForms no sólo ayuda a reducir la cantidad de código escrito, sino que lo hace más entendible.
Independencia del dispositivo
XForms conserva la filosofía XML de separar el contenido de su representación. Adicionalmente, es un estándar que no está atado a ningún fabricante o tecnología propietaria. En esencia, todo desarrollo creado con XForms correrá en cualquier plataforma para la que exista un intérprete XForms.
Integración con XML
Por último, el mayor beneficio de XForms es que permite que los datos ingresados o modificados por el usuario se representen en XML automáticamente, sin necesidad de escribir una sola línea de código para conseguirlo. En un mundo donde cada vez más las aplicaciones están compuestas de Servicios Web basados en XML, esta característica de por sí vale el esfuerzo de aprender a usar XForms.
Y para aquellos que prefieren JSON sobre XML, la última versión de XForms contempla la generación transparente de datos en formato JSON, con solo cambiar la regla que indica el formato de documento.
Esto no quiere decir que XForms sólo sirva para aplicaciones que se comuniquen con el navegador a través de XML o JSON, de igual forma pueden utilizarse los métodos GET y POST de la misma manera que se usan en HTML Forms, permitiendo así mejorar la interfaz de usuario de aplicaciones existentes, sin necesidad de modificar la lógica de negocio.
Nuevos Modelos de Desarrollo
Muchos desarrolladores no se resignan a tener que escribir código para unir HTML, Objetos y SQL en una misma aplicación y han tomado un enfoque radical, eliminar los tres de sus creaciones y en su lugar usar XML para cumplir las tres funciones: Presentación, Lógica y Almacenamiento. Esta nueva arquitectura se conoce ya como XRX por las iniciales de XForms - REST - XQuery.
En la arquitectura XRX, se utiliza XForms para crear la interfaz de usuario, ésta a su vez se comunica con Web Services tipo REST, escritos en XQuery, que corren en bases de datos XML (como eXist-db y BaseX). El resultado son aplicaciones mejor diseñadas alrededor de documentos XML y que son escritas usando mucho menos código y en menor tiempo.