Silverlight se ha ido solidificando gradualmente como plataforma viable de desarrollo. Igualmente las aplicaciones han pasando de ser mayormente demostraciones de habilidades gráficas y audiovisuales a sistemas más complejos y de mayor escala. Y con ese crecimiento, ha surgido la necesidad de encontrar patrones o guías de diseño que se adapten bien a la particular combinación de componentes, recursos, limitaciones y circunstancias típicas de una aplicación de este tipo.
Unos de los patrones más discutidos es el Model-View-ViewModel (MVVM por sus siglas en inglés). Por cierto que es una de esas frases que resulta compacta y comunicativa en inglés, pero para la que no hay un equivalente en español con las mismas cualidades. Luego de consultar con otros autores de este sitio y darle algunas vueltas terminé con el nombre: Modelo-Vista-Vista de Modelo. De todos modos, se aceptan sugerencias.
Pero volviendo al MVVM, es parte de la serie de patrones como MVC y MVP, donde se tiene un modelo con los datos y las reglas que los manipulan, una vista que da la representación visual de la información, y un “algo” un tanto nebuloso que sirve de intermediario. En parte por la perenne confusión que existe al respecto, estoy trabajando en un artículo original (en vez de algo que haya traducido) considerando los diferentes patrones y sus relaciones y diferencias. Estoy seguro que un artículo más sobre el tema será de gran ayuda para aumentar la confusión generalizada. Eh, digo…
En todo caso, con el fin de ayudar a los que se ven ya en necesidad de adoptar un enfoque más disciplinado en su diseño de aplicaciones en Silverlight, especialmente en un ámbito empresarial, o donde hay manejo de datos a gran escala, he estado buscando artículos que cubran el tema. Por el momento estoy trabajando con Shawn Wildermuth y Jeremy Likness, ambos excelentes autores y asesores en Silverlight, WCF RIA, en prácticas de ingeniería y diseño de software.
Su estilo de presentación varía un poco, pues más que guías de paso a paso, son explicaciones que presentan una aplicación y dan las razones para las decisiones tomadas al implementarla. En general, estos artículos son un poco más avanzados y asumen cierta familiaridad con Silverlight, su entorno de desarrollo, y los aspectos fundamentales de arquitectura de software. Aún así el material es excelente y es bueno que hasta los principiantes empiecen a estudiarlos desde un principio.
El primero en salir es la parte introductoria de una serie de cuatro artículos sobre el diseño de sistemas en Silverlight 4 usando MVVM, MEF, y los Servicios RIA. En esta parte, Shawn explica por qué ciertas estrategias tradicionales para el uso de fuentes de datos no son muy apropiadas en Silverlight. También da un vistazo al patrón MVVM con una aplicación de ejemplo que se usará durante toda la serie.
Diseño de aplicaciones en Silverlight 4 usando Servicios RIA, MEF y MVVM – Parte 1
Espero que les sea de ayuda. Las siguientes partes ya vienen en camino.



