2010-03-22 14 views
8

Recientemente he estado investigando métodos de creación de formularios web para una aplicación web ASP.NET que se puede editar y gestionar en tiempo de ejecución. Por ejemplo, un administrador puede desear agregar una nueva regla de validación o un nuevo conjunto de campos.Server side XForms forma validación e integración en ASP.NET

El Santo Grial proporcionaría un medio para especificar un formulario junto con reglas de validación arbitrarias (potencialmente muy complejas) y la asignación de fuentes de datos para cada campo. La especificación se usaría entonces para actualizar el formulario implementado en la aplicación web, que luego validaría los envíos tanto del lado del cliente como del servidor.

Mis investigaciones me llevaron a Xforms y una serie de tecnologías que lo soportan. Una solución parece ser IBM Lotus Forms, pero esto requiere una inversión muy grande en términos de infraestructura, lo que la hace inviable, aunque el diseñador de formularios puede ser útil como una herramienta independiente para crear formularios. También he descontado los complementos del navegador ya que el formulario debe ser públicamente visible y compatible con varios navegadores.

Me he dado cuenta de que hay numerosas bibliotecas de JavaScript que proporcionan implementaciones del lado del cliente dado un esquema de Xforms. Esto proporcionaría una solución parcial, pero la validación del lado del servidor sigue siendo un requisito.

Otra opción parece implicar el uso de soluciones del lado del servidor como la aplicación Java Orbeon. Orbeon proporciona una herramienta para especificar los formularios (aunque no tan rico como Lotus Forms Designer), pero lo más interesante es que puede traducir un esquema de XForms a un formulario XHTML completo con validación. El hecho de que esté escrito en Java no es un gran problema si es posible integrarlo con la aplicación ASP.NET existente.

Así que mi pregunta es si alguien ha hecho esto antes. Suena como un problema que debería haberse resuelto, pero que es intrínsecamente muy complejo. Parece posible utilizar una herramienta lista para usar para diseñar el formulario y exportarlo a un formulario de Xforms y a un formulario xhtml, y parece posible tomar ese esquema xforms y formarlo y publicarlo usando una biblioteca del lado del cliente. Lo que parece ser difícil es proporcionar un medio para validar el envío de formularios por parte del servidor e integrar el proceso muy bien con .NET (aunque parece que la comunidad .NET no se involucra con XForms, corrígeme si me equivoco) en este punto).

Estaría más que feliz si un producto proporcionara algo tan simple como un servicio web que pudiera validar una presentación contra un esquema. Tal vez Orbeon haga esto, pero le agradecería que alguien que lo sepa pueda orientarme en la dirección correcta antes de seguir investigando.

Muchas gracias.

+0

Una gran pregunta. –

+0

@Nigel Soy consciente de que esta pregunta tiene más de 6 años, pero ahora estamos en el lugar similar al que describió. ¿Has tenido alguna otra experiencia con .NET y Orbeon, o cualquier otro creador de formularios dinámicos? – veljkoz

Respuesta

0

Probablemente estoy perdiendo algo, pero ...

La forma en que he hecho este tipo de cosas en el pase es crear un esquema para la declaración de forma & un XSLT para convertir ese XML a HTML. A continuación, puede agregar todo tipo de validación, según el esquema xml que haya diseñado. Lo que normalmente me falta es el diseñador de formularios.

0

Puede usar XHTML para los formularios o, como sugirió Simon, un lenguaje personalizado como capa de abstracción. La aplicación puede cargar el formulario en tiempo de ejecución, transformarlo/peinarlo y servirlo al usuario. Puede editar el formulario y realizar cambios sin necesidad de recompilar/volver a implementar.

Para la validación puede utilizar Schematron, esto también se puede editar fácilmente en tiempo de ejecución utilizando herramientas XML-aware.

Usted puede utilizar Javascript para producir datos XML en el navegador, o se puede transformar application/x-www-form-urlencoded a XML en el servidor (que es lo que hago en this page).

Cuestiones relacionadas