Estoy desarrollando una aplicación con el modelo MVVM, pero he llegado a un punto en el que necesito elegir qué marco usar.
Entre las posibles opciones están:
- MVVM Toolkit
- Fundación MVVM
- Marco de aplicación de WPF (WAF)
- MVVM ligero
- Caliburn
- Cincha
- Prisma
- IU reactiva
En tu experiencia, ¿cuál es mejor?
wpf
mvvm
frameworks
Rangel
fuente
fuente
Respuestas:
Realmente depende de lo que esté tratando de lograr y de la cantidad de infraestructura que desee, además de la facilidad con la que puede encontrar muestras que lo ayuden. Voy a declarar un interés aquí, porque he estado involucrado activamente en al menos un marco MVVM, y he tenido aportes en otros a través del grupo Discípulos de WPF, así que estoy un poco parcial. Dicho esto, aquí va:
Microsofts MVVM Toolkit : esto todavía está muy en las etapas alfa. Cuando se lanzó originalmente, los Discípulos tomaron un poco de salvaje por lo que no hizo. Dicho esto, MS está buscando reforzar este marco para que sea uno para ver, simplemente aún no está listo.
Fundación MVVM - Ah, la versión del marco de Josh Smith. Josh es uno de los papás de MVVM, y ha sido un gran defensor y maestro del patrón. Como resultado, mucho de lo que encontrará en otros marcos tiene las huellas digitales de Josh por todas partes. El objetivo de este marco es proporcionar los conceptos básicos de MVVM y no abordar algunos de los problemas más esotéricos. Originalmente, esto estaba destinado solo para WPF, pero personas como Laurent Bugnion y yo hemos agregado funcionalidades / proyectos que significan que también será un marco compatible con Silverlight.
WAF : no tengo experiencia, así que no puedo comentarlo, me temo.
MVVM Light : la versión de Laurent Bugnion se acaba de actualizar a la versión 2. Este es un marco muy bueno, pero nuevamente no está destinado a cubrir todos los aspectos de las aplicaciones MVVM. Teniendo en cuenta los antecedentes de Laurent, tiene una gran compatibilidad con Silverlight y Blendability.
Actualización Laurent me acaba de informar que las versiones .NET 3.5 y .NET 4.0 son compatibles con las funciones. Wau para ir Laurent.
Cinch: el excelente marco MVVM de WPF de Sacha Barber. Esto cubre más terreno que los marcos de los que he hablado anteriormente. Es un marco excelente y aprovecha los conceptos cubiertos en el excelente proyecto Onyx de Bill Kempf . Onyx está destinado a complementar los marcos MVVM, y agrega una funcionalidad que generalmente ha sido difícil para las personas en MVVM / WPF. Nuevamente, originalmente destinado a ser solo WPF, Onyx ha progresado para incluir compatibilidad con SL, trabajo en el que estoy particularmente orgulloso de haber participado.
Prisma - Nuevamente, nunca lo he usado, pero he escuchado muchas cosas buenas al respecto.
Océano : Karl Shifflett, Gerente de programa en el equipo de Sidra, lanzó recientemente un marco MVPM WPF con todas las funciones. Nuevamente, este es un marco excelente y tiene mucho que recomendar.
La conclusión es: descargue los diferentes marcos, écheles un vistazo y descubra cuál encaja más intuitivamente con su forma de pensar y con sus requisitos. Si cree que puede querer admitir Silverlight desde la misma base de código, entonces los marcos de trabajo de WPF solo deberían descontarse.
fuente
Encontré este artículo muy útil http://www.japf.fr/2009/10/a-quick-tour-of-existing-mvvm-frameworks/ Para que lo traiga aquí para los próximos usuarios
Actualizo la sección Cinch y agrego soporte Silverlight a sus características
Lo siento por la larga historia
Características comunes:
Cincha
MVVM Light Toolkit
MVVM Helpers
Fundación MVVM
Caliburn
Ónix
Calcio
nRuta
Nito MVVM
Oceano
Marco básico de MVVM
Buena luz
fuente
Intento describir los marcos que faltan en la gran respuesta de Pete:
MVVM Toolkit (Microsoft) es una biblioteca muy ligera con plantillas de proyecto de Visual Studio que debería ser compatible con principiantes con este patrón. Si Microsoft recibe buenos comentarios sobre su Toolkit, podría implementar esto como una nueva plantilla de proyecto de Visual Studio (quizás 2010).
Prism (Microsoft p & p) es un marco que proporciona más que el soporte para el patrón MVVM. El objetivo principal de este proyecto es ayudarlo a construir aplicaciones modulares WPF y / o Silverlight. Cuando solo necesite implementar el patrón MVVM o sea un principiante en .NET / WPF, no recomendaré este proyecto. Ver también: Enlace .
WPF Application Framework (WAF) es un marco ligero que te ayuda a crear aplicaciones WPF con MVVM. Es solo para WPF y, por lo tanto, no es compatible con Silverlight. Va un poco más allá de la mayoría de los otros marcos MVVM con la introducción de Controladores . Son responsables del flujo de trabajo de la aplicación y median entre varios ViewModels.
fuente
Meh Mvvm realmente no requiere un marco completo para admitir IMO. Si comprende el concepto, es bastante sencillo comenzar con una clase base de VM limpia que implemente INotify, y simplemente ir desde allí.
fuente
Mira también:
Caliburn y Onyx !
fuente
¡Mezcla el tuyo!
Usé EventAggregator de PRISM, con ViewModelBase de la fundación MVVM y así sucesivamente. También modifiqué el RelayCommand (DelegateCommand llamado en algunos lugares) para aceptar otros datos también, y así sucesivamente.
No recomendaría solo un marco per se.
fuente
Mi apuesta será en Caliburn y MVVMlight, parece que no muchos de estos marcos mvvm admiten Silverlight. Puedo prever que habrá más marcos MVVM para elegir que los marcos IoC, porque es más difícil configurar el límite de características para el marco mvvm. Supongo que la mejor manera de averiguar cuál se adapta mejor a su proyecto será enumerando / comparando sus características.
También echa un vistazo a Mix10. Aprendí mucho de la charla: construir su marco mvvm.
fuente
También el cóctel y el marco DevForce de Ideablade
fuente
Estoy usando Prism y me gusta. Una de las grandes cosas para mí fue que habría otras personas que podrían ayudarme si fuera necesario y buenos ejemplos. Una vez que ejecutes los conceptos básicos, hay un montón de extensiones que necesitarás para tu aplicación y es mucho más fácil cuando trabajas con el mismo marco que otros.
fuente
Con todo, estoy 90% a través de mi aplicación y todo lo que he usado de MVVM Toolkit es la función de fábrica que construye un comando para mí dada una función de delegado para ejecutar en Ejecutar. Creo que podría cambiar a cualquier otro marco o ningún marco en un par de horas.
fuente
Otro a considerar es MEFedMVVM . Lo he usado en un par de proyectos y es liviano, no intrusivo y es compatible con Silverlight y WPF. También es capaz de admitir datos en tiempo de diseño en Blend, para aquellos que usan ese producto.
fuente
Si está buscando Extensibilidad (la capacidad de escribir complementos) en la parte superior de un marco de aplicación WPF / MVVM, entonces puede estar interesado en el descargo de responsabilidad de SoapBox Core : lo escribí . Es de código abierto, por lo que incluso si no lo usa, puede haber algunas buenas ideas para usted. Utiliza MEF tanto para Extensibility como para IoC.
fuente
También hay nRoute
Un marco de aplicación realmente agradable para WPF / Silverlight que admite MVVM
fuente