2012-09-15 21 views
11

Comencé a aprender sobre las aplicaciones de Windows 8 Store.¿Está MVVM muerto en Windows 8 Store Apps?

Recuerdo de la programación de Silverlight y WPF anteriormente que las personas adaptaban el concepto de MVVM y ahora no estoy seguro de si debería usar lo que aprendí en ese momento o no.

que añade una referencia a la GalaSoft.MvvmLight y creó un modelo de vista y ha añadido que a mi xaml como se sugiere por:

DataContext="{Binding Source={StaticResource Locator}, Path=Welcome}" 

Parece que Microsoft incluye algún tipo de aplicación modelview en el LayoutAwarePage:

protected override void LoadState(Object navigationParameter, Dictionary<String, Object> pageState) 
{ 
    // TODO: Assign a bindable collection of items to this.DefaultViewModel["Items"] 
    // DefaultViewModel["WelcomeTiles"] = WelcomeTiles; 
} 

que se puede acceder si se ha configurado el siguiente contexto de datos.

<DataContext="{Binding DefaultViewModel, RelativeSource={RelativeSource Self}}" /> 

Así que ahora no estoy seguro de si debería crear ModelViews como los recuerdo, mediante el uso de MVVMLight o simplemente añadir los datos en archivos de código subyacente a la DefaultViewModel.

¿Qué es la experiencia de las personas con ambos? Acabo de comenzar y mi próximo objetivo es agregar controladores para cuando se hace clic en un elemento en GridView: ¿cuál de las rutas anteriores lo hará de forma fácil?

Respuesta

15

No, ¡MVVM nunca morirá!

Model-View-ViewModel es un patrón de diseño, por lo que no depende de un marco o implementación específicos. Sin embargo, es un patrón de diseño de interfaz de usuario que es más conveniente para usar con marcos de interfaz de usuario que admiten el enlace de datos.

Las aplicaciones Metro de Windows 8 incluyen XAML y un marco vinculante que es muy parecido a Silverlight y WPF. Por esta razón, MVVM es una excelente opción para administrar su código.

El código que ha descubierto en LayoutAwarePage se describe en this blog post. Es un intento de facilitar el desarrollo de la aplicación Metro de Windows 8 al proporcionar varias implementaciones de stub. Esta página incluye un DefaultViewModel, que es un diccionario observable.

Personalmente, ¡yo no lo usaría!

+1

He estado buscando abit more en eso. Ahora mismo, al crear una nueva página, también estoy creando un ViewModel y un databind en su contra. Sin embargo, por concepto de profe y hacer una demostración rápida, me ha resultado muy fácil simplemente hacer clic en la Plantilla de Visual Studio y usar ViewModel por defecto. Gracias por tus comentarios. –

3

MVVM no está muerto en las aplicaciones Metro de Windows 8.

No utilizamos MvvmLight en nuestra aplicación, pero los componentes básicos que necesita, como el enlace a las propiedades de ViewModel, el uso de ICommands en ViewModel e INotifyPropertyChanged están disponibles con cambios mínimos (si corresponde).

Microsoft publicó un nice sample recientemente. No dice MVVM explícitamente, pero tiene lo que necesita para comenzar. Y el article de Josh Smith sigue siendo útil.

2

Recomiendo http://stylemvvm.codeplex.com, está escrito desde cero para admitir proyectos de Metro (C#, C++/CX, HTML/JS). Incluye un COI completo, implementación para ICommand & Comportamientos de comando adjuntos, Servicios para Azulejos, insignias, Brindis y Charms. También incluye una buena clase de Mediator que es consciente del despachador. Además de una serie de plantillas de estudio visual para ayudarlo a comenzar.

Nota: Podría estar sesgada ya lo he escrito :)

+1

Te daré un voto por ahora y miralo más tarde :) –

4

Nop MVVM no está muerto y es todavía bastante viva !!!

ColinE definición de MVVM lo resume bastante bien. De hecho, MVVM es básicamente un patrón de diseño y no depende de un marco específico.

Usando MVVM no es un dogma ..., aunque la mayoría que trabajó mucho con la programación de aplicaciones XAML [WPF, Silverlight, WP 7 y WinRT ...] de acuerdo en que MVVM facilita verdaderamente una separación clara de preocupación SOC , entre el desarrollo de la GUI y la lógica de fondo.

He utilizado personalmente el paquete MVVMLight de Laurent Bugnion de Nuget en combinación con WinRT, aunque puede usar cualquier otro paquete o opción de MVVM con el que se sienta cómodo.

Si necesita más referencias de muestra, me gustaría invitarle a echar un vistazo a la siguiente grabación de un seminario sobre 'MVVM en Windows 8 Store' por Gill Cleeren

http://www.silverlightshow.net/video/MVVM-in-Win8-Webinar.aspx