# Por qué XForms

Por qué XForms

# Los problemas del desarrollo Web hoy en día

Casi todo desarollador de aplicaciones Web hoy en día se ve forzadoa utilizar tres tecnologías diferentes al 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 estandar de facto con el que nos acostumbramos a vivir a pesar de las incomodidades que nos causa.

## 1. Limitaciones de HTML Forms

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

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

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 a cantidad de código escrito, sino que hace más entendible el que se escribe.
Independencia del dispositivo
XForms conserva la filosofía de 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 interprete 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 áutomáticamente, sin necesidad de escribir una sola línea d ecódigo para conseguirlo. En un mundo donde cada vez más las aplicaciones están compuestas de Servicios Web basados ne 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 solo aplique 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, eliminandolos a todos tres de sus creaciones y en su lugar usando XML para cumplir las tres funciones: Presentación, Lógica y Almacenamiento. Esta nueva arquietectura 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, esta 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.