¿Dónde puedo encontrar un buen ejemplo sobre cómo implementar completamente el patrón MVC en Windows Forms?
Encontré muchos tutoriales y ejemplos de código en varios sitios (por ejemplo, The Code Project y .NetHeaven), pero muchos son más representativos para el patrón de observador que MVC. Dado que la aplicación que quiero desarrollar es para un proyecto escolar, soy reacio a usar marcos como PureMVC o MVC # .
Respuestas:
Soy de la opinión de que las aplicaciones son muy diferentes entre sí y nuestra comprensión de cómo deben escribirse las aplicaciones es todavía muy limitada. Las aplicaciones anteriores de Windows Forms en las que he trabajado han sido muy diferentes entre sí. Algunas de las diferencias de diseño que he visto son (incluida la mayoría de combinaciones):
Por lo tanto, no creo que sea posible crear una implementación de MVC (o MVP) que siempre encaje bien.
Las mejores publicaciones que he visto que realmente explican MVC y por qué un sistema MVC está construido de la forma en que está, es la serie "Build Your Own CAB" de Jeremy D Miller . Después de trabajar en él, debería poder comprender mucho mejor sus opciones. También se debe considerar la Guía de Smart Client de Microsoft (CAB / Microsoft Composite Application Block) . Es un poco complejo, pero puede funcionar bien para aplicaciones que encajan bien.
La selección de una implementación de MVC / MVP para un proyecto de Winforms brinda una descripción general que vale la pena leer. A mucha gente le gusta PureMVC . Nunca lo he usado, pero lo vería la próxima vez que necesite un marco MVC.
" Presenter First " es un enfoque de desarrollo de software que combina las ideas del patrón de diseño Model View Presenter (MVP) y el desarrollo basado en pruebas . Le permite comenzar escribiendo pruebas en el idioma del cliente. Por ejemplo:
No tengo experiencia en el uso de "Presenter First", pero lo intentaré cuando tenga la oportunidad, ya que parece muy prometedor.
Otras preguntas de Stack Overflow que quizás desee ver están aquí y aquí .
Si está pensando en usar WPF en cualquier momento, eche un vistazo al patrón Model-View ViewModel (MVVM) . Aquí hay un video muy bueno que debería ver: Jason Dolinger en Model-View-ViewModel .
El patrón de diseño MVVM (Model View View Model) para Winforms ofrece otra opción que puede facilitar la conversión a WPF si alguna vez es necesario. Magical.Trevor es otra muestra de MVVM para Windows Forms que también incluye enlace automático basado en nombres de propiedad.
También pregúntese por qué está utilizando MVC.
Una vez que tenga claros sus objetivos , será más fácil elegir una implementación u otra.
fuente
ACTUALIZACIÓN: Además de mi respuesta anterior a continuación, sugiero leer sobre el enfoque "Presentador primero" (especialmente los artículos en PDF)
Recomendaría MVP (patrón PassiveView en realidad) en lugar de MVC. Realmente no necesita ningún marco especial para esto, es solo cómo organiza su código.
Un enfoque (que suelo tomar) es dividir cada formulario de ventana en tres entidades:
Código de ejemplo (un pseudocódigo simple, solo para ilustración):
fuente
¿Ha mirado PureMVC ? Descubrí que nadie puede ponerse de acuerdo sobre cómo se ve realmente MVC una vez que comienzan a construir una implementación específica.
Actualización: puede crear el suyo propio comenzando con algo más simple como MobileMVC . El código de Compact Framework debe compilarse / ejecutarse correctamente en Windows. Dado que esta es una tarea de la escuela, le sugiero que dedique un tiempo a aprender cómo funciona MVC.
fuente
Es posible que desee echar un vistazo a Ejecución diferencial .
Aquí está en SourceForge
En mi opinión, es una gran mejora en MVC, aunque todavía es bastante inusual.
fuente
Aquí puede encontrar un buen ejemplo de cómo implementar su propia implementación de MVC usando Windows Forms . Se incluye el código fuente.
A medida que lea, estudie y escriba el código para esta tarea, encontrará que hay muchos desacuerdos sobre cómo se debe implementar MVC. Este es un caso simple que refleja la separación de preocupaciones, así como un buen ejemplo de la 'plomería' necesaria para conectarlo.
Cuando esté fuera de la escuela, probablemente querrá recurrir a un marco como los otros carteles han recomendado.
fuente
El bloque de aplicaciones de interfaz compuesta de Microsoft comenzó su vida como una implementación MVC (entre otros patrones que implementó). Sin embargo, la versión de lanzamiento evolucionó hacia una implementación de MVP, que se puede argumentar que es una especie de interpretación diferente del concepto MVC.
Si está dispuesto a comprobar el código de una implementación MVP muy completa (y de alguna manera compleja), puede encontrar el MS-CAB como uno de los componentes de Microsoft Smart Client Software Factory. Viene con código fuente. Puedes encontrarlo aquí . ¡Buena suerte!
fuente