2009-07-30 21 views

Respuesta

5

ni siquiera estaba al tanto de "MVP", pero Haack [desbordamiento] tiene un artículo bastante bien ...

Everything You Wanted To Know About MVC and MVP But Were Afraid To Ask

A riesgo de que Haack bloques cruzan imágenes vinculadas ... Haack dice que la diferencia es clara :) alt text http://haacked.com/images/haacked_com/WindowsLiveWriter/MVCandMVPPatternResources_71CE/WinMerge%20-%20%5BMVP.txt%20-%20mvc.txt%5D_3.png

+0

Divertido- No había visto eso antes. – RichardOD

0

La gente se cuelga demasiado en las iniciales y TLA a veces.

Si lo que Phil Haack dice en su artículo es cierto, pensé que estaba usando MVC en ASP.NET MVC, pero lo que realmente estoy usando es MVP (o una forma modificada de MVC).

Con MVC, siempre es responsabilidad del controlador para controlar los eventos de ratón y teclado . Con MVP, los componentes GUI inicialmente manejan inicialmente la entrada del usuario, pero delegan a la interpretación de esa entrada al presentador .

Pero de eso no se trata en realidad ASP.NET MVC.

Si manejo eventos de mouse y teclado, me gusta hacerlo en el navegador con jQuery. Ese separa la interacción del usuario del controlador, y proporciona un mejor desacoplamiento entre la capa de la interfaz de usuario y la capa de "negocios".

Si necesito actualizar parte de mi página usando una llamada AJAX o una llamada JSON, igual voy a necesitar hacer eso, ya sea que lo llame MVC o MVP.

ASP.NET Web Forms, por ejemplo, intentos de emular el paradigma de desarrollo rica cliente a través del uso de ViewState. Esta es la razón por la cual muchos intentos para aplicar patrones a ASP.NET se centran en el patrón MVP porque el patrón MVP es más apropiado para una aplicación cliente enriquecida con componentes GUI .

Sin embargo, muchas plataformas web abrazar la naturaleza sin estado de la web y renunciar a intentar simular un entorno estado de pleno desarrollo de clientes ricos . En tales sistemas, un patrón MVC ajustado es más aplicable.

Está claro que las opiniones Phil (una forma de pellizcado) MVC como un movimiento a una más sin estado, el cliente más delgado, mientras que MVP pone más responsabilidad en la capa de interfaz de usuario para proporcionar una experiencia de usuario rica.

Si esto es algo bueno o no es subjetivo. Si ASP.NET es MVP y ASP.NET MVC es MVC, con mucho gusto aceptaré las iniciales MVC para renunciar a cosas como viewstate y lógica obtusa.

+0

¿Qué pasa si todo el motivo por el que está tratando de decidir es que desea utilizar la capa comercial para una versión web y una versión de cliente grueso ;-) aaak – FastAl