2011-03-24 13 views
5

¿Es posible compartir modelos de vista entre plataformas - WPF/Silverlight? Comencé por el camino de poner mis máquinas virtuales en un ensamble por separado y pronto llegué a ICommand, lo que me llevó a hacer esta pregunta. ¿Es esto posible y, de ser así, es bueno hacerlo? Tenemos la posibilidad en el futuro de tener una aplicación cliente para WPF y Silverlight, por lo que me gustaría no tener que duplicar máquinas virtuales para ambos.MVVM - Share/Reuse ViewModels entre Silverlight y WPF

Respuesta

4

Puede hacer esto usando el Portable Library Tools CTP. Esto le permite apuntar al marco completo, así como a Silverlight en un único proyecto de biblioteca.

De lo contrario, es posible, más o menos. Aún necesita dos proyectos separados (para fines prácticos), pero normalmente puede usar un único archivo fuente. Haga que cada proyecto utilice los mismos archivos fuente para mantener la reutilización en su lugar, pero requiere la sincronización manual de los archivos. También puede agregar funcionalidades específicas de la plataforma fácilmente en este caso a través de clases parciales o definiciones, lo que ayuda a mantener algunas de las soluciones alternativas para la funcionalidad de Silverlight que son fáciles de mantener.

+0

Creo que la opción Biblioteca portátil será tu mejor opción, pero te obligará a codificar con el mínimo común denominador. Realmente, para ViewModels esto no debería ser un problema ya que debes abstraer cualquier idiosincrasia relacionada con View a la Vista y cualquier idiosincrasia de plataforma a una capa de servicio. –

0

[Casi] todo lo que es posible en Silverlight, también es posible en WPF. Entonces, si tiene una VM trabajando en Silverlight, [la mayoría de las veces] funcionará con WPF.

Desde el otro punto de vista, WPF ofrece posibilidades más ricas, por lo que es posible que desee utilizarlas en su parte de código WPF. Puede usar los típicos trucos de #ifdef Silverlight.

Además, this question puede ser útil.

Cuestiones relacionadas