jueves, diciembre 13, 2007

Next big thing

Próxima gran actualización del curso de ADO.NET: una serie dedicada a LINQ for SQL. Voy a experimentar esta vez con un formato que creo que será mejor para esta materia: el curso estará basado en el vídeo (narrado y subtitulado).
El problema que veo con LINQ para SQL es que no es tan completo como la programación con datasets para mover y actualizar datos entre capas. Por una parte, me he tropezado con la sorpresa de que los árboles de expresiones no vienen con soporte para la transmisión remota. Uno puede añadirlo por su cuenta, pero es bastante trabajo. Por lo tanto, cuando se piden datos a la capa intermedia, o regresas a la época en que pasabas una cadena, o te montas todo un tinglado para evaluar consultas remotas por tu cuenta y riesgo.
El otro problema es más sutil: hasta que no te pones a hacer un ejemplo real no tropiezas con él. El caso es que las colecciones de LINQ for SQL (los tipos genéricos Table<T> y EntitySet<T>) no ofrecen algo parecido al Merge de tablas y conjuntos de datos. Sí ofrecen la posibilidad de reasignar entidades al data context local, y de serializar las colecciones de entidades, pero eso sólo simplifica las aplicaciones que no modifican datos en la capa de presentación: vale sólo para aplicaciones básicamente de sólo lectura. Nuevamente, uno puede programar lo que falta... pero ya son dos subsistemas bastante complejos que hay que añadir por cuenta y riesgo propio.
Pero hay que contarlo todo, para verlo con perspectiva: a la actual versión de Visual Studio 2008 se le debe sumar, en relativamente poco tiempo, lo que en Microsoft llaman ADO.NET Entity Framework, que es la verdadera continuación del viejo proyecto ObjectSpaces, que sufrió un cambio radical con la aparición de LINQ. Al parecer, este sistema será mucho más completo y ambicioso que el actual.
A la espera del próximo gran invento, creo que lo mejor es ir explicando el trabajo con LINQ para SQL, que se parece bastante, sobre todo para evitar malas decisiones inducidas por las prisas. La actualización de las tres primeras series del curso deben ser también sencillas, porque son pocas las adiciones (la más notable, quizás, los nuevos coordinadores de grabación para relaciones que ahora se generan para los table adapters).

... de ahí la importancia del cambio de nombre de las series. La nueva serie sobre LINQ/SQL será la serie D, y la actual serie D se quedará en "volumen 2", como ya se refleja en los nuevos CDs del curso.

Etiquetas: , , , ,