Docking
... sí, estoy con el curso de ADO.NET. Uno de los problemas que tenía con la serie D, sobre todo, era la dependencia de componentes de terceros para lograr una aplicación final "presentable". Oh, sí, lo importante es el interior, bla, bla... pero lo cierto es que ver una aplicación con los componentes de .NET v1.1 a secas es bastante descorazonador.
Y no sólo eso: buena parte del contenido de la serie D está relacionado con el gestor de ventanas. ADO.NET es relativamente sencillo, pero puede resultar laborioso, especialmente para coordinar navegación y actualización... si usas conjuntos de datos, claro, porque si no, da aún más trabajo. En concreto, lo que me preocupaba era precisamente el sistema de ventanas, que era bastante primitivo. Ahora mismo, la moda son las ventanas flotantes, esas otras ventanas escurridizas, los paneles de tareas, etc, etc. Tenía dos alternativas: serie D sin pitos ni flautas, otra vez, o serie D con componentes de terceros. Otra vez.
Como el mundo no es en blanco y negro, me he decidido por una tercera posibilidad: echar mano de alguna suite gratuita para el manejo de ventanas. Y la que he elegido, si no surge algún impedimento gordo, es la de Weifen Luo. Estos componentes imitan el comportamiento de las ventanas de VS2005, son fáciles de usar, y son los que utilizan en SharpDevelop para el "ventaneo".
Eso sí: es muy probable que "congele" una versión estable, en vez de buscar siempre la última. Además, aunque los componentes son muy estables, el código fuente no es exactamente el tipo de código que prefiero. Aunque muy estructurado, "todos hablan con todos": la comunicación entre módulos se produce a través de clases, y hay montones de declaraciones internal dentro de cada clase. Es muy difícil detectar todas las dependencias y todos los canales de comunicación. Además, el autor ha usado tipos anidados y herencia... con ancestros y descendientes anidados en tipos no relacionados, con lo cuál complica mucho más entender qué demonios hace el código fuente.
Para rejillas y menúes, por supuesto, voy a usar los propios de VS2005, que funcionan muy bien. Respecto a los paneles de tareas (los famosos task panels), creo que puedo vivir sin ellos. De todos modos, he visto un par de componentes gratuitos por ahí, y en el peor de los casos, no es complicado escribir uno propio (en IntSight Controls hay un grupo de componente de ese tipo, para Windows nativo, y dibujando todo a mano).