2011-11-23 13 views
7

Después de ver Channel 9's video en los proveedores de tipo F #, me pregunto acerca de los cambios en el esquema de datos. Don tocó esto un poco al final, pero estoy buscando más detalles.¿Qué sucede cuando los proveedores de tipo cambian en F #?

  1. La demostración hizo que pareciera que básicamente está presionando '.' para explorar qué tipo de datos está disponible para usted. Después de vincular, por ejemplo, las tasas de criminalidad en los EE. UU. En 2008, ¿qué sucede cuando distribuye su aplicación y cambia el esquema? ¿Obtiene errores de tipo de tiempo de ejecución? ¿Es responsabilidad del desarrollador manejar estos errores?

  2. Además, ¿esto pone la responsabilidad en manos del proveedor del tipo?

    Actualmente, cuando descarga un ensamblado .NET, sabe que nunca cambiará hasta que (de forma manual o a través de un servicio) lo actualice explícitamente. Los errores de compilación de los tipos en evolución se deben resolver, pero siempre puede mantener la actualización hasta que esté listo para el cambio. Con los proveedores de tipo, ¿tiene que programar más cautelosamente contra ellos?

Respuesta

8

respuesta a los cambios de esquema es la responsabilidad del proveedor del tipo, pero sólo en el momento desarrollo. Una vez que desarrolla una aplicación, se compila utilizando el proveedor de tipo y utilizando el esquema actual en el momento de la compilación.

Cuando utiliza el proveedor de tipo de Visual Studio, puede supervisar los cambios de esquema y notificar al IDE de Visual Studio que se ha producido un cambio en el esquema. Escribí un ejemplo de proveedor de tipo XML que hace esto, así que cuando cambias el esquema (archivo XML utilizado como ejemplo), inmediatamente obtendrás errores en VS. Hice un video demonstration of this (alrededor de 19:40).

Una vez que compila su programa, el proveedor del tipo genera el código que se debe usar en el formulario compilado (y el proveedor del tipo no se utiliza en el tiempo de ejecución). Esto significa que si el esquema cambia en el tiempo de ejecución, no puede hacer nada al respecto (el desarrollador debe reaccionar). Si el cambio de esquema es compatible con versiones anteriores (es decir, agrega nuevas columnas a una tabla DB), entonces su programa aún puede funcionar bien.

+2

Como dice Tomas, el bit más notable es el esquema de cambios en el tiempo de desarrollo (por ejemplo, para datos 'muy dinámicos' como archivos XML u hojas de cálculo locales que puede estar editando localmente cuando programa contra ellos). Los problemas con los cambios de esquema para aplicaciones implementadas son los mismos problemas que uno con las aplicaciones tradicionales, donde normalmente (1) hace cambios compatibles hacia atrás, (2) mantiene una base de datos/esquema anterior pero también publica uno nuevo (clientes antiguos) las aplicaciones aún hablan las antiguas, las nuevas hablan de las nuevas, que pueden tener datos más ricos/diferentes), o (3) implementan nuevas aplicaciones cliente cuando se cambia el esquema. – Brian

Cuestiones relacionadas