visual studio microsoft español descargar community c# model-view-controller windows-mobile compact-framework design-patterns

c# - studio - Marco compacto: ¿hay un marco/biblioteca MVC disponible?



visual studio installer (7)

@DavidG y @KevenPang

MVC no se limita a una tecnología web, de hecho, el MVC smalltalk original era para aplicaciones de escritorio.

Funciona así:

  • Ver = formulario de cliente
  • Controlador = Concluye los eventos del cliente y los marshals entre la vista y el modelo
  • Modelo = Datos de aplicación y lógica de negocios

En Smalltalk MVC puro, la Vista no se limita a ser un formulario, sino que puede ser cualquier representación de Datos del Modelo ... Por ejemplo, si tuviéramos un Modelo que representara una hoja de cálculo, podríamos tener las siguientes vistas:

  • Vista SpreadSheet
  • Vista imprimible
  • Vista de icono

etc., el Modelo sería el mismo, pero la Vista crearía un objeto de salida diferente en cada caso.

Dicho todo esto, no sé si existe un marco de este tipo para el framework .NET Compact, solo quería señalar que MVC no significa WebApp.

Encontré un artículo sobre este tema por parte de un empleado de Microsoft, pero ¿alguien ha implementado un marco más sólido para esto? ¿Existe un marco ligero para WinForms que pueda ser portado fácilmente? Me gustaría ponerme al día con bastante rapidez y evitar producir un framework / biblioteca propio para manejar esto cuando alguien más inteligente ya haya hecho esto.

No he consultado la Mobile Software Factory del grupo de P & P, pero sospecho que es algo pesado. ¿Vale la pena mirar?

Editar: No estoy buscando información sobre el proyecto ASP.NET MVC. Pregunto acerca de la implementación del marco compacto ''WinForms'' y cómo implementar MVC con eso.


Ninguno de ustedes (davidg o Kevin Pang) prestó atención al hecho de que está interesado en WinForms , no en Web Forms . Quiere un marco que impulse el patrón de diseño Modelo-Vista-Controlador (davidg, MVC no es solo el nombre de un marco ASP.NET) en un proyecto de WinForms que utiliza .NET Compact Framework. Él hizo su pregunta muy bien.


Personalmente creo que Mobile Software Factory no tiene mucha alegría para CF. Todavía utilizamos una parte (EventBroker) en el trabajo y me gustaría incluso eliminar esa parte si es posible (ya que no admite eventos genéricos y tienes que convertir los argumentos en sus tipos fuertes de EventArgs). Un proyecto hermano en el trabajo lo usó para una parte de su UI pero tuvo que arrancarlo debido a problemas de rendimiento (otro gran proyecto, aunque eso también tiene problemas de rendimiento adicionales).

El problema que encuentro con el marco de MVP que ofrece la biblioteca de P & P es que los formularios y controles son OWN presentadores en lugar de Presenters / Controllers que poseen Formularios (que no leyeron "Es solo una vista": ¿programador pragmático?). Esto encaja a la perfección con el mantra de desarrollo de aplicaciones rápidas "Form First" de MS, pero apesta cuando se considera cuán caras pueden ser las manetas de las ventanas en CE (si se tienen muchas). Ejecutamos una gran aplicación de CF en el trabajo y hemos lanzado nuestro propio marco de MVC. No es difícil ejecutar el suyo, solo asegúrese de separar todo en Controladores, Vistas, Objetos comerciales y Servicios, y tener un UIController que controle las interacciones entre los controladores.

De hecho, damos un paso más y reutilizamos formularios / controles usando un controlador-> Ver-> patrón de diseño. El controlador es el mismo de siempre, la vista es el objeto que personaliza un diseño en una vista particular y el diseño es el UserControl real. Luego intercambiamos estos dentro y fuera de un único formulario. Esto reduce la cantidad de controles de Windows que utilizamos de forma espectacular. Esto + inicializar todos los formularios en la puesta en marcha significa que erradicamos la pausa notable que obtienes al crear nuevos controles de Windows "a pedido".

Obviamente, realmente vale la pena hacer este tipo de cosas si está lanzando una gran aplicación. Tenemos aproximadamente 20 + diferentes tipos de Vista que usan en total alrededor de 7 diseños diferentes. Esto perjudica nuestra rutina de inicialización (cuando cargamos los formularios en el inicio) en una magnitud de aproximadamente 10 segundos, pero psicológicamente la mayoría de los usuarios están dispuestos a aceptar ese golpe al inicio en lugar de pausas notables durante el tiempo de ejecución.

El principal problema con la biblioteca de P & P en mis libros es que se trata de un puerto FF -> CF y debido a ciertas incompatibilidades y diferencias de rendimiento entre las dos plataformas, se pierde una gran cantidad de funcionalidades útiles.

Por cierto, este es de lejos el artículo más completo que he leído en MVC / MVP. Para aplicaciones de Windows (de escritorio o CE) recomiendo usar la versión Taligent Model-View-Presenter sin las interacciones, los comandos y las selecciones (por ejemplo, el controlador / presentador realiza todo el trabajo).


Editar: Los carteles de arriba son correctos. Vi MVC e inmediatamente pensé en formularios web. Mis disculpas. Siéntete libre de ignorar esto. Dejaré mi mensaje original en su lugar por si acaso alguien que está interesado en los formularios web MVC necesita los enlaces. :-)

Hay un par de frameworks MVC, ninguno de los cuales es muy "liviano", pero MVC es un cambio bastante grande de los formularios web, por lo que se espera:

  • ASP.NET MVC : este es el intento de Microsoft en un marco MVC. Todavía está en modo de vista previa, así que úselo a su propio criterio, pero varias personas ya lo están usando en sus aplicaciones de producción. Encontrará una amplia documentación sobre esto con una simple búsqueda en Google, ya que se está volviendo muy popular entre la multitud de .NET.
  • Castle MonoRail : el framework MonoRail es un framework MVC de fuente abierta que existe desde hace bastante tiempo y que se utiliza en varias aplicaciones de producción. Definitivamente está más enrojecido que el marco ASP.NET MVC, pero considerando la cantidad de esfuerzo que Microsoft está lanzando en su oferta de MVC, creo que cambiará relativamente pronto.

Eche un vistazo al Mobile MVC de mFly . Nunca lo he usado, pero está diseñado como un marco de MVC razonable para el CF.


@davidg: "¿Por qué querrías MVC en Compact Framework?"

Por qué no? No es como si estuviera reservado para el desarrollador web, es un patrón.


También está el framework OpenNETCF IoC (que no creo que exista cuando se formuló esta pregunta) que es mucho más ligero, pero similar en el modelo de objetos a Mobile Software Factory de P & P.