2 Stimmen

Gibt es einen Vorteil bei der Verwendung der Cocoa-Version von MVC mit .NET?

Hier finden Sie ein Diagramm, das den Unterschied zwischen traditionellem MVC und Cocoa MVC darstellt:

Cocoa-Entwurfsmuster: Das Model-View-Controller-Entwurfsmuster

Gibt es irgendwelche Vorteile, wenn man es auf die "Cocoa"-Methode in .NET mit Visual Studio macht?

3voto

Mark Bessey Punkte 19301

Es gibt keinen Grund no auf diese Weise zu tun, wenn es für Sie sinnvoller ist. Seien Sie sich bewusst, dass viele Dinge im Cocoa-Framework aufgrund von Designentscheidungen auf höherer Ebene so sind, wie sie sind, z. B. die Bevorzugung von Komposition und Delegation gegenüber der Unterklassenbildung.

Wenn Sie wollen, können Sie C#-Software entwerfen, die wie Objective-C-Software aussieht, aber Menschen ohne Cocoa-Erfahrung müssen sich das erklären lassen, weil ihnen das lose gekoppelte Design einfach "seltsam" vorkommen wird.

Oh, richtig - die Vorteile dieses Designs sind eine bessere Wiederverwendbarkeit der UI-View- und Model-Klassen (da sie nichts voneinander wissen), etwas einfacherer Code in den View-Klassen und ein größerer Teil der "Anwendungslogik" an einem einzigen Ort (die Controller-Klassen).

1voto

Jeff Huff Punkte 46

Ein Entwickler im .Net Developer's Journal hat über seine Umstellung geschrieben und vergleicht .Net mit Cocoa, einschließlich der Verwendung des Cocoa MVC-Stils in .Net

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

0voto

Codewerks Punkte 5684

Ist die "Cocoa-Version von MVC" nicht das Muster, das in ASP.NET MVC verwendet wird? Bisher haben alle Beispiele auf die Kommunikation zwischen View und Model über den Controller hingewiesen, ohne direkte Interaktion zwischen V und M. Verstehe ich das falsch?

0voto

Barry Wark Punkte 106328

Der Hauptvorteil bei der Verwendung von Cocoa's "Mediating Controllern" (Unterklassen von NSController) ist, dass sie einen großen Teil der Standardfunktionalität implementieren, die für die Vermittlung zwischen einem Modell und seiner Ansicht erforderlich ist. Dinge wie die Verfolgung des Teils des Modells, der durch die Auswahl des Views angezeigt wird, und Transaktionsunterstützung (so dass Sie z.B. eine Reihe von Änderungen am View oder Model festschreiben oder verwerfen können) sind "kostenlos" enthalten. Die Verwendung der NSController-Unterklassen als "Klebstoff"-Code zwischen Modell und View gibt Ihnen als Entwickler die Möglichkeit, sich auf die "Coordinating Controller"-Funktionalität zu konzentrieren - die anwendungsspezifische Logik, die sich in der Controller-Schicht befindet.

Lohnt es sich also, dieses Muster in .Net zu verwenden? Es ist nicht trivial, einen allgemeinen koordinierenden Controller richtig zum Laufen zu bringen (Apple brauchte zum Beispiel ein paar Versionen, um alles richtig zu machen). Besonders knifflig sind Dinge wie Baumcontroller. Wenn Sie dieses Muster nur in einem oder wenigen Projekten verwenden, lohnt sich der Aufwand vielleicht nicht. Andererseits bin ich mir sicher, dass die Community ein allgemeines Controller-Framework ala Cocoa's NSController-Hierarchie begrüßen würde.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X