2009-06-23 14 views
9

Estoy trabajando en un sitio ColdFusion donde los datos se almacenan en paquetes WDDX dentro de una base de datos y es un verdadero dolor. (No tengo idea de por qué los valores no están almacenados en otra tabla.)ColdFusion: ¿Alguien usa WDDX?

No he usado WDDX antes y la única documentación que puedo encontrar parece bastante antigua. Así que tengo curiosidad si alguien todavía usa WDDX, y si es así, ¿para qué?

Respuesta

7

utilizo WDDX para almacenar los valores de configuración en una pequeña aplicación que no requiere base de datos. Podría usar un archivo ini y GetProfileString(), pero WDDX es mucho más conveniente.

Es XML, por lo que en teoría podría usarlo para hacer AJAX (en el sentido original). Especialmente porque no había soporte nativo para JSON hasta CF8.

También podría usarlo como entrada para transformaciones XSL, por lo que no tiene que crear su propio XML para representar tipos de datos de CF como estructuras o consultas.

Por último, pero no menos importante, puede usarlo como una forma extensible de almacenar diversos datos estructurados en una base de datos (mensajes de registro que cubren diferentes casos, por ejemplo). No estoy seguro de por qué esto es un problema en su caso, pero tal vez es más un problema arquitectónico que un problema WDDX (?).

Se reduce a esto: es útil tener una manera rápida y sencilla, pero portátil y segura (no requiere Evaluate() o plomería personalizada) de serializar y deserializar (es decir, "almacenar" o "persistir") cualquier CF tipo de datos.

+0

Gracias por eso. En mi caso, el WDDX está almacenando permisos de usuario en un CMS. El problema para mí es que no puedo simplemente consultar el archivo db para obtener el permiso de un usuario. Pero como dices, es un problema arquitectónico, no es un problema con WDDX. – nedlud

+0

Hm, si está en SQL Server 2005+, hay un tipo de datos XML que podría usar en lugar de NVARCHAR (o similar). Otros DBMS "centrados en características" pueden proporcionar algo similar. – Tomalak

4

Hacemos, para los datos de configuración de fragmentos de página en nuestro CMS. La decisión se remonta a CF5, y ahora podría usar un formato XML más simple (los datos almacenados son solo un hash serializado de valores escalares), pero es una forma práctica de evitar la sobrecarga de consultas extra de múltiples filas para datos que se necesitan siempre. se accede al registro principal.

supongo que la documentación no ha cambiado mucho ya que sólo hay mucho que se puede escribir sobre una simple operación de serialización de datos :)

<cfwddx action="cfml2wddx" input=#raw_data# output="encoded_data"/> 
<cfwddx action="wddx2cfml" input=#encoded_data# output="decoded_data"/> 
1

Lo he usado por varias razones. Uno de ellos fue para permitir una funcionalidad tipo servicio web entre dos servidores ColdFusion dispares. Dado que se trata simplemente de un sabor de XML y, por lo tanto, de texto sin formato, no requirió nada más complicado que una simple llamada HTTP utilizando CFHTTP. Y, dado que es WDDX, se tradujo muy fácilmente a estructuras de CF.

De vuelta en los días de CF5 esto era realmente importante. Incluso ahora, cuando CF ofrece algunas herramientas bastante potentes para el análisis de XML, las estructuras de datos nativas son aún más fáciles de trabajar.

0

La última vez que lo usé fue para serializar el alcance del formulario. No recuerdo mucho sobre por qué necesitaba hacerlo, pero que la forma tenía muchas variaciones y para volver a llenar los campos podía deserializar el WDDX y todo estaba bien con el mundo.

No lo he usado en mucho tiempo.

0

Utilizo para almacenar cierta información sobre el envío del producto, qué productos van en qué cajas, básicamente. En el momento del diseño de esta aplicación, no había necesidad de almacenar esa información en filas separadas en el DB, por lo que la estructura que se construyó con esa información se serializó con WDDX y se rellenó en el DB.

2

Desde que CF8 está fuera, he usado JSON en lugar de WDDX.

Ambos son excelentes para la serialización de algunos campos de datos que no necesitan consulta, manteniendo el DB sin cambios. Tomaré JSON por WDDX cualquier día. :)

+0

¡Estoy con Henry en esto! –

0

Tuve que usarlo para almacenar estructuras en las cookies porque trabajé para una compañía asqueada que creó sitios web de comercio electrónico con el ámbito de la variable de sesión desactivado. Esto no fue para ningún tipo de razón práctica de seguridad del usuario. Su aplicación administrativa de fondo por alguna razón desconocida se derrumbaría si se ejecuta en un servidor con las variables de sesión habilitadas. Entonces, en lugar de, ya sabes, tal vez arreglar lo que estaba causando el problema, o quizás ejecutar el sistema de administración en un servidor separado, inhabilitaron las sesiones, porque era la forma más rápida, barata y fácil de solucionar el problema.

Me alegra que ya no trabaje allí.

1

Lo uso para almacenar muchos de los resultados de las consultas y las estructuras. Es útil porque puede capturar múltiples tablas en una sola operación. JSON es un enfoque más moderno de lo que WDDX resuelve. Si tuviera una opción, elegiría JSON por su mayor interoperabilidad.

Cuestiones relacionadas