Pregunta

Aquí hay un diagrama que muestra la diferencia entre MVC tradicional y Cocoa MVC:

Patrones de diseño de cacao:El patrón de diseño Modelo-Vista-Controlador

¿Existe algún beneficio al hacerlo de la forma "Cocoa" en .NET usando Visual Studio?

¿Fue útil?

Solución

no hay razón no hacerlo de esa manera, si tiene más sentido para usted.Tenga en cuenta que muchas cosas en el marco Cocoa son como son debido a decisiones de diseño de nivel superior, por ejemplo, favorecer la composición y la delegación sobre la subclases.

Si lo desea, puede diseñar software C# que se parezca al software Objective-C, pero las personas sin experiencia en Cocoa tendrán que explicárselo, porque el diseño débilmente acoplado les parecerá "raro".

Ah, claro: las ventajas de ese diseño incluyen una mayor reutilización de la vista de la interfaz de usuario y las clases de modelo (ya que no se conocerán entre sí), un código ligeramente más simple en las clases de vista y más "lógica de aplicación". " en un solo lugar (las clases de controlador).

Otros consejos

Un desarrollador en el .Net Developer's Journal ha estado escribiendo sobre su transición y comparando .Net con Cocoa, incluido el uso del estilo Cocoa MVC en .Net.

http://dotnetaddict.dotnetdevelopersjournal.com/tags/?/cocoa

¿No es la "versión Cocoa de MVC" el patrón utilizado en ASP.NET MVC?Hasta ahora, todos los ejemplos han apuntado a la comunicación en blanco y negro de la vista y el modelo a través del controlador sin interacción directa entre V y M.¿Estoy entendiendo esto incorrectamente?

La principal ventaja de utilizar los "controladores mediadores" de Cocoa (subclases de NSController) es que implementan una gran parte de la funcionalidad estándar necesaria para mediar entre un modelo y su vista.Cosas como el seguimiento de la parte del modelo indicada por la selección de la vista y el soporte de transacciones (para que pueda, por ejemplo, confirmar o descartar un conjunto de modificaciones a la vista o modelo) se incluyen "gratis".El uso de las subclases de NSController como código 'pegamento' entre el modelo y la vista le libera como desarrollador para centrar sus esfuerzos en la funcionalidad del "controlador de coordinación", la lógica específica de la aplicación que reside en la capa del controlador.

Entonces, ¿vale la pena usar este patrón en .Net?Conseguir que un controlador de coordinación general funcione correctamente no es trivial (Apple necesitó un par de lanzamientos para hacerlo bien, por ejemplo).Cosas como los controladores de árboles son particularmente complicadas.Si sólo utilizas este patrón en uno o varios proyectos, es posible que no valga la pena el esfuerzo.Por otro lado, estoy seguro de que la comunidad agradecería un marco de control general similar a la jerarquía NSController de Cocoa.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top