Buen ejemplo de práctica de Silverlight-MVVM
(8)
He leído una serie de buenos artículos sobre el patrón Model-View-ViewModel y mi equipo tiene la intención de implementar este patrón en la última versión de nuestra aplicación. Todavía no entiendo TODAS las partes que funcionan juntas para que esto funcione. Me gustaría encontrar un buen ejemplo de este patrón con el que pueda trabajar. Algo a pequeña escala, como hace Jason Dolinger en su video here , pero me gustaría algo que pueda resolver por mi cuenta a un ritmo más lento.
Gracias de antemano por tu ayuda.
Aquí hay uno más para agregar a la lista: Simple MVVM Toolkit por Tony Sneed (el tuyo es verdad): http://simplemvvmtoolkit.codeplex.com .
El kit de herramientas consta de clases de ayuda, plantillas de elementos de Visual Studio y fragmentos de código. Además del kit de herramientas actual, hay una aplicación de muestra con instrucciones paso a paso sobre cómo crear una aplicación básica de Silverlight usando el patrón MVVM.
Básicamente, ViewModel es un modelo de envoltura. Ahora que puede que aún no sea muy útil :-) Piense en el modelo como los datos con los que trabaja su aplicación, por ejemplo, una persona. Ahora una persona tiene un cumpleaños y es posible que desee tener un formulario para ingresar el cumpleaños de la persona. Supongamos que solo estamos usando un simple TextBox, la fecha muestra algo así como 01-02-2009 12:00:00 AM. Para empezar, no queremos la parte de tiempo y tampoco podemos estar contentos con la parte 01-02-2009, ya que esto depende de la configuración de su configuración regional.
Así que aquí viene el ViewModel. Envuelve la clase Person y expone la fecha como tres valores enteros, año, mes y día. En el conjunto de propiedades, intenta crear una fecha a partir de los diferentes valores y muestra los errores que puedan ocurrir.
Así que simplemente dijo que ViewModel es un envoltorio de modelos específicamente diseñado para una vista particular (pantalla). Elimina la mayoría de IValueConvertors al mismo tiempo.
Josh Smith tiene una buena explicación aquí: http://joshsmithonwpf.wordpress.com/2008/11/14/using-a-viewmodel-to-provide-meaningful-validation-error-messages y una gran discusión aquí: http://groups.google.com/group/wpf-disciples/browse_thread/thread/3fe270cd107f184f?pli=1
Eche un vistazo a mi artículo sobre MVVM de la vida real en Silverlight. Aunque no es para los recién llegados, y está dirigido principalmente a desarrolladores expertos que trabajan en proyectos de la vida real.
http://alexburtsev.wordpress.com/2011/03/05/mvvm-pattern-in-silverlight-and-wpf/
He hecho muchos recientemente, los dos que se destacan son:
Dan Wahlin''s (LIDNUG):
http://www.lidnug.org/Archives.aspx
John Papa''s (PDC 2010):
http://player.microsoftpdc.com/Session/76864d75-b4da-4858-aac7-786c5f28e344
La mejor explicación de ViewModel fue dada por Scott Hanselman durante su charla de MVC en Europa.
Una respuesta de una línea es: es un modelo (clase) que se crea con el único propósito de enviar todos los datos necesarios que necesita una vista particular y también para recibir datos modificados de la vista en el caso de enlaces bidireccionales.
Nikhil Kothari tiene una publicación sobre cómo usar ese patrón con su biblioteca Silverlight.FX. Compruébelo aquí: http://www.nikhilk.net/ViewModel-Pattern-DLR.aspx
Prism 4.0 ahora incluye documentación para crear aplicaciones MVVM. Esto está dirigido a usar las bibliotecas Prism pero los conceptos funcionan para el patrón MVVM en general.