2012-04-25 16 views
6

Tengo la intención de crear una aplicación con Winform y me gustaría usar el patrón MVP.¿Cómo estructurar un proyecto en Winforms usando el patrón MVP?

Como nunca antes había usado el patrón MVP, no estoy seguro de cómo estructurar el nuevo proyecto.

¿Debería usar la misma convención que en ASP.NET MVC, como crear en el proyecto carpetas separadas para Modelos, Presentadores y Vistas, y luego usar la convención de nombres para las clases de Presentador para que su nombre termine con la palabra "Presentador" (el mismo forma en que los nombres de los controladores en MVC terminan con "Controlador")

¿O debería crear proyectos separados para Presentador y Modelo?

+0

Esto dependerá de tantos factores ... Use una convención que le parezca útil. Los nombres siempre se pueden refactorizar en una etapa posterior. – Patrick

+2

No necesariamente necesita crear proyectos separados para el Modelo y el Presentador, pero es muy recomendable. Las convenciones de nomenclatura son * convenciones *, lo que significa que no impacta directamente en la forma en que funcionan las cosas, pero es algo muy útil. Algunos marcos (por ejemplo, ASP.NET MVC o rieles) se comportarán de cierta manera según las convenciones que sigue, pero nada le impide definir su propia convención (y codificarla). He aquí una buena lectura sobre [MVP] [1] [1]: http://msdn.microsoft.com/en-us/magazine/cc188690.aspx – MilkyWayJoe

Respuesta

2

Honestamente, esta es una pregunta muy subjetiva. La forma en que estoy haciendo esto hoy puede no ser la forma en que hago esto para la próxima aplicación. Simplemente me funciona bien. Además, lo que funciona para mí puede no ser la manera en que lo haría otra persona, no es que la mía sea incorrecta, mejor o peor.

Convenciones de nombres ayudarán:

  • PersonPresenter
  • PersonViewModel (si los datos son de lectura/escritura para almacenar datos)
  • PersonView
  • IPersonView

Además, me he separado mi solución actual en 3 proyectos:

  • La aplicación en sí: la única clase en ese proyecto es Program.cs
  • Modelos de presentación: presentador, interfaz de vista, modelo de vista (si corresponde); todo en carpetas organizadas por sus respectivos puntos de vista
  • Vistas: un proyecto sólo por las vistas

Ahora, la única pieza de la solución que necesito para hacer referencia a la unidad de pruebas es el proyecto PresentationModels.

Cuestiones relacionadas