2010-06-24 21 views
7

parece que hay un montón de posibles configuraciones MVC/arquitecturas (MVC, MVVM, MVP, HMVC, PAC, documento de visión ...). ¿Hay alguna arquitectura MVC "mejor" o de última generación actualmente aceptada? ¿Cuál es el pensamiento más nuevo? ¿O es todo un juego gratuito para todos y/o simplemente está vinculado a la plataforma en la que se desarrolle (por ejemplo, MVVM para WPF)?¿Lo último en arquitectura MVC?

(Específicamente estoy interesado en MVC tal como se aplica en las aplicaciones de escritorio/cliente enriquecido.)

+0

+1 buena pregunta. – adatapost

Respuesta

6

Usted no recibirá ningún acuerdo sobre lo que es la "actualmente aceptado" mejor arquitectura.

que es ciertamente no MVC o MVP. Estas arquitecturas se originó a finales de los años 70 y principios de los 90, respectivamente. MVP es una mejora en MVC, pero en los veinte años transcurridos desde MVP fue inventado, ha quedado claro que sufre de muchos, muchos defectos. Este es por eso que hay tantas nuevas arquitecturas de la competencia.

Los conceptos de "modelo" de una d "view" son bien aceptados y parecen ser comunes a todos los modelos de arquitectura actuales en la actualidad. La verdadera pregunta es cómo conectarlos mejor. Necesita algo más además del modelo y la vista, pero ¿qué?

La mayoría de las arquitecturas más recientes tienden a hacer esto haciendo que el acoplamiento de la visión o se unen directamente al modelo y el "algo más" el uso de expresiones, de enlace de datos, o mecanismos similares. De esta forma, cualquier cosa en el modelo que pueda vincularse directamente con la vista no tiene necesidad de involucrar a la "otra cosa" en absoluto.

Mi favorito personal es MVVM. Me encanta el hecho de que un "modelo de vista" es conceptualmente solo un "modelo" con todos los aspectos de cualquier otro modelo, excepto que (normalmente) nunca se escribe en el disco. De hecho, si no fuera confuso, "MVVM" podría renombrarse como "MV", ya que prácticamente prescinde de la necesidad de cualquier otra cosa que no sean vistas y modelos. MVVM se puede usar no solo con WPF, sino también con cualquier marco de presentación que tenga capacidades avanzadas de enlace de datos. Desafortunadamente esto excluye GWT y Cocoa. También me gusta MVVM porque tiende a eliminar por completo el código redundante o repetitivo.

MVVM no es el único jugador avanzado de la ciudad. Los enfoques orientados a aspectos y las arquitecturas de comando construidas sobre modelos y vistas tradicionales también tienen aspiraciones similares.

La conclusión es que esta sigue siendo un área activamente investigada y no se ha llegado a un consenso en este momento. MVVM es la más popular de las nuevas arquitecturas, pero no la única. El jurado aún está deliberando.

Nota: Para tener una idea de cómo son las arquitecturas nuevas mejoras con respecto a MVC y MVP, echa un vistazo a this comparison of Cocoa and WPF empezando por el título "código repetitivo" y bajar al final de la sección "Arquitectura del sistema".

+0

¿Hay algún enlace a un sitio que describa MVVM con cierto detalle? –

+0

Hay varios de estos sitios. El artículo de Wikipedia sobre MVVM tiene 12 enlaces externos, varios de los cuales parecen ser lo que estás buscando. http://en.wikipedia.org/wiki/Model_View_ViewModel Advertencia: algunos de estos enlaces describen la creación de una propiedad de proxy en su ViewModel para cada una de las propiedades de su modelo, pero no dejan en claro que esto es * solo * necesario o deseable si su modelo carece de notificación de cambio de propiedad. Utilizo una capa de datos que implementa la notificación de cambio de propiedad correctamente, así que nunca tuve ningún motivo para crear dichas propiedades de proxy cuando utilicé MVVM. –

3

La investigación arquitectónica más reciente está haciendo estos días para clientes pesados ​​que se está haciendo por parte de Google. con la arquitectura MVP.

Consulte los artículos GWT sobre MVP
http://code.google.com/webtoolkit/articles/mvp-architecture.html
http://code.google.com/webtoolkit/articles/mvp-architecture-2.html

También busque en este http://groups.google.com/group/Google-Web-Toolkit/browse_thread/thread/8b0ae5eaf84d8bc2?hide_quotes=no

También echa un vistazo a este vídeo de YouTube http://www.youtube.com/watch?v=PDuhR18-EdM

En cuanto a responder a su pregunta, a excepción de diciendo que MVC está un poco anticuado, creo que es muy subjetivo sobre qué camino tomar. No es específico de la plataforma, con la excepción de que el Marco de recoger podría dictar la Arquitectura :(

+0

GWT en el contexto de las aplicaciones cliente de escritorio/rico? .. también, ¿estoy malinterpretando, o realmente insinúa que la arquitectura MVP es de Google? –

+0

@Pavel GWT se parece mucho a Java Swing. No estoy insinuando que inventaron MVP (No estoy seguro de quién lo hizo), solo que lo están promocionando y han publicado mucho. Actualicé mi publicación a donde podría interpretarse que quise decir eso. –

+0

** MVP ha existido desde principios de los años 90 ** y es una noticia antigua. Si la pregunta es qué es el estado del arte, MVP ni siquiera está en carrera. MVP todavía tiene la mayoría de los problemas que tuvo MVC. Puedes hacer mucho mejor que eso. –

Cuestiones relacionadas