tutorial studio example ejemplo databindingutil databinding data data-binding language-agnostic

data-binding - studio - data binding v2



UI Databinding: alternativas y futuro (7)

La unión de datos en Cocoa y Objective-C está muy viva y bien. Parte de eso se debe a que está construido sobre la codificación del valor clave y la observación del valor clave, que son características muy sólidas y bien pensadas en Cocoa. También está bien integrado en muchas de las nuevas tecnologías que Apple está desarrollando, como Core Data.

UI Databinding aka transferencia de información / datos del biz-layer / datamodel de una aplicación a la UI y de la UI al modelo de datos, costuras que los diseñadores de lenguaje y frameworks deben ignorar un poco.

Casi toda la información procesada por los sistemas de software de hoy tiene que presentarse en algún punto de la cadena de procesamiento a los usuarios humanos, aún el apoyo que recibimos de nuestros sistemas de programación para presentar información a los usuarios consiste principalmente en métodos de transferencia difíciles de mantener, algunos sistemas usan la reflexión sin verificación en tiempo de compilación (¿alguien cambió su propiedad?) o generadores de código propicio.

Me refiero a Erik Meijer, Anders Hejlsberg y sus equipos. Han puesto grandes esfuerzos para resolver el desajuste de impedancias entre DBs, XML y el código ... pero omitieron la interfaz de usuario en su mayoría. (Bueno, sí .net tiene enlace de datos, pero intenta usarlo y luego hablemos de una solución real) El punto es: ¿cuál es la razón detrás de NO tratar el enlace de datos especialmente como característica de primera clase de un idioma fe? ¿Por qué hay tan solo compatibilidad limitada (o ninguna) para los patrones de MVC / MVP en nuestras herramientas de hoy?

Proporcione comentarios, sugerencias y consejos sobre conceptos alternativos disponibles y tal vez incluso trabajos en curso en este campo. ¿Hay incluso nuevas ideas creativas y frescas? ¿Algún marco útil, conceptos de lenguaje que admitan la vinculación de datos y, tal vez, herramientas que lo ayuden a manejar la vinculación de datos en sus aplicaciones o sistemas?


Otros marcos que admiten el enlace de datos son Adobe Flex y WPF de Microsoft.


El enlace de WPF aunque bueno es demasiado complejo, combina funciones de XPath con enlace .Net normal y es súper flexible, pero muy difícil de depurar cuando se vuelve complejo, y también muy complejo: ¿cuántos IValueConverter necesita un código?

Sin embargo, el DependencyObject de WPF es brillante: una propiedad que gestiona la memoria de manera sensata, ha incorporado notificaciones de cambios, es un buen comienzo para el enlace y las propiedades en general.


Los modelos de enlace de datos y UI en WPF son sorprendentes. Puede vincularse a métodos de objetos, vincularse de forma asincrónica, vincularse en un sentido (de origen a destino o viceversa) o bidireccional direccionalmente, y vincularse a otros elementos de IU en la pantalla.

Puede especificar DataTemplates, que controla cómo se muestra un tipo particular. Puede definir activadores, que permiten que la IU cambie en función de los cambios en los objetos vinculados (o en cualquier otro lugar de la IU). En resumen, realmente debería mirar WPF si siente que falta el estado de la UI / representación vinculante.

Aquí hay una publicación reciente que ilustra el poder de WPF, donde usando constructos básicos puede mostrar un mapa con coordenadas en él.


En Python, puede usar Rasgos de Enthought para esto. Usted define un modelo y ese modelo ya contiene todo el conocimiento y la lógica para que pueda crear un editor para él con una sola línea de código.


Estoy en las últimas etapas de un proyecto de transferencia que toma el código generado por AppMaker desde una GUI de Macintosh basada en C hasta WPF.

El estilo de generación de código de AppMaker estuvo muy adelantado a su tiempo: hace 15 años generó un código basado en modelos con enlace de datos y un enfoque basado en propiedades. La desventaja del código C es que toda la plomería ha sido expuesta.

Este proyecto ha sido fascinante: llevar una arquitectura con una estructura de comando y enlace puro (aunque sea un código feo) a través de WPF. De hecho, escribí un nuevo generador de código de AppMaker para exportar el modelo de objeto original a XML y he estado trabajando desde eso con Ruby para generar XAML, C # y C ++ / CLI desde entonces.

Estoy muy impresionado con lo bien que funciona el modelo de enlace de datos en WPF, aunque es muy interesante encontrar el lugar ideal para poner XAML vs C #. Como se explicó en una presentación reciente de DevJam , decidimos un enfoque de tres capas de

  1. XAML muy delgado para peinar,
  2. C # para unión,
  3. C ++ / CLI para la implementación de ViewModel.

Soy un fanático vinculante desde hace mucho tiempo: mi framework C ++ OOFILE utilizó por primera vez un enfoque vinculante para simplificar las conexiones de bases de datos a formularios en diferentes marcos de GUI alrededor de 1997.

Como punto de interés, adquirí AppMaker del propietario original de EE. UU., Después de varios años de colaboración donde escribí los generadores de códigos de Windows. Parece casi increíble que una pequeña empresa en Perth, Australia Occidental, con una interfaz gráfica de usuario compleja generada por AppMaker a su puerto, debería encontrar al experto en AppMaker restante en el mundo que vive a unas 30 millas de distancia.