Soy de la opinión de que las aplicaciones son tan diferentes entre sí y nuestra comprensión de cómo se deben escribir las aplicaciones es aún muy limitada. Las aplicaciones pasadas 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 (incluyendo la mayoría de las combinaciones):
- hablar directamente a la base de datos (nivel 2)
- utilice un motor que se ha escrito para la aplicación dada (nivel 3)
- Utilice un conjunto de servicios web escritos para su uso por muchas aplicaciones y que no se pueden modificar para su aplicación. (Arquitectura orientada a servicios)
- Actualizaciones siendo hecho por CRUD operaciones
- actualizaciones está haciendo con los (envío de comandos al servidor back-end) command pattern
- montón de usos de data binding/no usos de enlace de datos
- mayoría de los datos ser "similar a una mesa" (por ejemplo, facturas) que funcionan bien en controles de cuadrícula estándar/necesitan controles personalizados para la mayoría de los datos de UI.
- Un desarrollador/equipos de 10 o 20 desarrolladores (sólo en la interfaz de usuario)
- Las porciones de prueba de la unidad utilizando burla etc/sin unidad de tests
Por lo tanto no creo que es posible crear una implementación de MVC (o MVP) que siempre se ajusta bien.
Los mejores mensajes que he visto realmente explicar MVC y qué un sistema MVC se construye la forma en que es, es el "Build Your Own CAB" series by Jeremy D Miller. Después de trabajar, deberías poder entender tus opciones mucho mejor. Microsoft's Smart Client Guidance (CAB/Microsoft Composite Application Block) también se debe considerar. Es un poco complejo, pero puede funcionar bien para aplicaciones que se ajustan bien.
Seleccionando MVC/MVP Implementation for a Winforms Project da una visión general que vale la pena leer. Mucha gente como PureMVC. Nunca lo he usado, pero lo vería la próxima vez que necesite un framework 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 test-driven development. Le permite comenzar escribiendo pruebas en el idioma del cliente. Por ejemplo:
"Al hacer clic en el botón 'Guardar' y luego el archivo debe ser guardado y la advertencia archivo no guardado debe desaparecer“.
tengo ninguna experiencia en el uso "Presentador Primera ," pero voy a darle una oportunidad cuando llegue la oportunidad, ya que parece muy prometedor.
Otros Stack Overflow preguntas es posible que puede desea ver son here y here.
Si está pensando en utilizar WPF en cualquier momento, eche un vistazo al patrón Model-View ViewModel (MVVM). Aquí hay un muy buen video que debería consultar: Jason Dolinger on Model-View-ViewModel.
MVVM (Model View View Model) Design Pattern for Winforms ofrecen otra opción que puede facilitar la conversión a WPF si fuera necesario. Magical.Trevor es otra muestra de MVVM para Windows Forms que también incluye el enlace automático basado en nombres de propiedad.
También hágase qué está utilizando MVC.
- ¿Desea poder probar la unidad tanto código como sea posible?
- ¿Está tratando de permitir que se reutilice la mayor cantidad de código posible?
- ¿Está tratando de hacer que su código base sea fácil de entender?
- 101 otras razones que pueden ser válidas para un proyecto determinado.
vez que esté claro en su pretende, se hace más fácil elegir una aplicación u otra.
posible duplicado de [? ¿Cómo aplicar MVC en una aplicación WindowsForms] (http://stackoverflow.com/questions/ 122388/how-you-you-implementation-mvc-in-a-windowsforms-application) – nawfal
vea también [Cómo hacer seguro el tipo de enlace de datos y soporte de la refactorización] (http://stackoverflow.com/questions/1329138/how-to -make-databinding-type-safe-and-support-refactoring) –