domingo, diciembre 16, 2007

La maldita serie D

Me he puesto a migrar, en paralelo con la escritura de la serie sobre LINQ for SQL, la vieja serie D. Es relativamente fácil adaptar los ejercicios, incluso a Visual Studio 2008. En tres días he adelantado tanto como el ejercicio 10 (de 24 ejercicios en total). Y entonces me he dado cuenta del problema.
La línea de razonamiento y el desarrollo del curso son estupendos, pero parten de una premisa: el estudiante está interesado en aplicaciones multicapas, y está, además, convencido de la necesidad de las mismas. Por eso, supuse yo al escribir el original, aceptaría el uso de la compleja infraestructura que se desarrolla en el curso. En la práctica, supongo que lo más frecuente es que, quien lee los ejercicios, se pregunte si todo eso tiene que ser tan complicado, por necesidad, o si se trata de fuegos de artificio del autor, que intenta demostrar lo mucho que sabe.
Para que se comprenda lo que digo, aquí va un ejemplo concreto:
  • Normalmente, una grabación de los cambios en un conjunto de datos se resuelve en ADO.NET con una simple llamada al método Update de un adaptador, una sucesión de llamadas de este tipo, o el código equivalente, si se usan los adaptadores de tablas.
  • En cambio, en mi curso se añade código para eliminar filas insertadas en el conjunto de datos. Y si no se ha seguido la línea del curso, uno de repente se pregunta: ¿y por qué? Bueno, porque en mi curso la actualización no tiene lugar directamente sobre el conjunto de datos conectado a la rejilla, sino sobre una copia del mismo enviada a un servidor de capa intermedia. La famosa y sencilla llamada a Update transcurre allí, y lo que el estudiante tiene que aprender es a sincronizar el conjunto de datos modificado con los registros originales. Es una tarea típica de la programación multicapas.
Ahora me encuentro en una encrucijada. O termino la traducción de lo que hay, o corto por lo sano y saco una serie "práctica" inicial, que no considere la posibilidad de convertir la aplicación en un sistema multicapas. Parecerá absurdo, pero me atrae más esta segunda opción. La nueva división del curso en Volumen I y Volumen II obedece, en definitiva, a un propósito original: mantener dos línea paralelas, una más "teórica" y otra completamente práctica. El Volumen II final podría contener, en su fase final, dos series: la primera, para resolver aplicaciones en dos capas, y la tercera, que se ocupase de los temas específicos de la programación remota, que no tienen que ver tanto con la técnica de remoting en sí, sino con la sincronización.

Decisión final
Ya existe un Volumen I que muestra perfectamente cómo desarrollar en dos capas, usando las técnicas más que probadas que ofrece directamente Microsoft. Por lo tanto, la serie D se actualiza tal cual, mostrando técnicas propias de la programación multicapas. ¿Que es más complicado? Bueno... eso es valor añadido. Era una decisión sencilla, ¿verdad?

Etiquetas: , ,