Buscando un tutorial limpio WinForms MVC para C #

Cómo crear una aplicación de Windows de interfaz de usuario enriquecida, por ejemplo, Photo Shop.

Estoy buscando un tutorial MVC limpio para WinForms con C # en alguna parte. ( No ASP.NET MVC)

Ser nuevo en la plataforma de Windows; la mayoría de los tutoriales de MSDN e Internet básicamente ponen todo en la clase Form. Otros eventos predeterminados se manejan dentro del formulario, en lugar de enviar eventos al control / modelo, que a su vez cambia el estado de la vista.

¿O es la metodología preferida para las aplicaciones de Windows algo más?

Derick Bailey (a través de Los Techies) ha blogueado algunos artículos fantásticos (y completo código fuente de demostración) para su implementación de MVP en una aplicación WinForms con un par de otros buenos patrones agregados a la mezcla (Application Controller, Event Aggregator).

El trabajo está inspirado en la serie de artículos de Jeremy D Miller titulada ‘Construye tu propio CAB’

Puede valer la pena mirar Model-View-ViewModel (si está interesado / feliz de usar WPF particularmente).

Está ajustado específicamente para trabajar con WPF y Silverlight, y utiliza el enlace de datos para unir todo.

Hay una serie de recursos en la web para obtener más información, incluida la presentación de John Gossman, y un buen artículo de Josh Smith, que tiene otros recursos en su blog relacionados con MVVM.

Para las aplicaciones de Windows, el sistema operativo Windows inadvertidamente se convierte en parte del controlador.

El Modelo puede suscribirse a varios eventos / mensajes (por ejemplo, hacer clic con el mouse, moverse, cambiar el tamaño de la ventana, hacer clic en el botón …). Cuando ha realizado su cambio-actualización-procesamiento, la vista se actualiza a través de las operaciones de redibujado.

El sistema operativo Windows actúa como controlador aquí porque envía mensajes al modelo (por ejemplo, clic del mouse) o a la vista (indicando que una parte de las ventanas está sucia y necesita volver a dibujarse).

Por supuesto, para cualquier aplicación comercial, implementaría sus propias estructuras de modelo y documento y las separaría de los objetos correspondientes de WinForm.

En .net esto no es tan claro porque solo hay un archivo para las porciones de modelo y vista. En MFC estaba muy claro, con una clase CDocument y su correspondiente clase CView.

En lugar del patrón MVC, para las aplicaciones de Windows, ayuda a comprender la architecture de mensajería de Windows y cómo manejarlas.