43

Cómo crear una interfaz de usuario rica aplicación de Windows, ejemplo Photo Shop.En busca de WinForms MVC tutorial limpio para C#

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

Siendo 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?

+4

El caso es que WinForms quizás no es el mejor conjunto de herramientas para MVC, dado que en las formas de Windows, el controlador, la vista y el modelo no son realmente separados. Creo que tendrías más suerte en WPF, que es más flexible en este sentido. –

+3

Es posible que desee echar un vistazo aquí antes de que salgan los pájaros boo. http://stackoverflow.com/questions/2406/looking-for-a-mvc-sample-for-winforms –

+1

¿Es posible reactivar una pregunta? Ahora estamos en 2012 y también estoy buscando un ejemplo bueno y simple de Winform MVC. –

Respuesta

2

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

Ha sido 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 saber más, incluyendo a John Gossman de introduction, y un buen article por Josh Smith, que tiene otros recursos en su blog relacionada con MVVM.

+1

El artículo de Josh Smith es realmente bueno – s5804

-1

Para las aplicaciones de Windows, el sistema operativo Windows inadvertidamente pasa a formar parte del controlador.

El Modelo puede suscribirse a varios eventos/mensajes (por ejemplo, hacer clic con el mouse, mover, 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 aquí como controlador porque envía mensajes al modelo (por ejemplo, un 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 partes tanto de modelo como de 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 arquitectura de mensajería de Windows y cómo manejarlas.

+0

¿Está sugiriendo que las formas de pago son suficientes en la mayoría de los casos? Siempre que el mensaje se haga correctamente? – s5804

+0

Sí. Sin embargo, piense si tiene casos como la necesidad de actualizar múltiples formularios, etc. En tal caso, quizás tenga sentido separar el modelo en una clase diferente y se pueda implementar también un controlador para coordinar entre la clase de modelo y los objetos de formulario. – Sesh

+0

No estoy de acuerdo con la afirmación: "Para las aplicaciones de Windows, el sistema operativo Windows inadvertidamente se convierte en parte del controlador". Todavía puede usar patrones incluso si WinForms no ordena un patrón particular (MVC/MVP/MVVM/etc.). Mire los enlaces de balioune_ba y Refactored Paladin para patrones y marcos. Dicho esto, MVC puede no ser el mejor patrón para WinForms y WPF ofrece una forma más natural de implementar patrones MV *. – Ryan