Wo finde ich ein gutes Beispiel für die vollständige Implementierung des MVC-Musters in Windows Forms?
Ich habe viele Tutorials und Codebeispiele auf verschiedenen Websites gefunden (z. B. The Code Project und .NetHeaven), aber viele sind repräsentativer für das Beobachtermuster als MVC. Da die Anwendung, die ich entwickeln möchte, für ein Schulprojekt bestimmt ist, zögere ich, Frameworks wie PureMVC oder MVC # zu verwenden .
Antworten:
Ich bin der Ansicht, dass Bewerbungen so unterschiedlich sind und dass unser Verständnis, wie Bewerbungen geschrieben werden sollten, immer noch sehr begrenzt ist. Frühere Windows Forms-Anwendungen, an denen ich gearbeitet habe, waren so unterschiedlich voneinander. Einige der Designunterschiede, die ich gesehen habe, sind (einschließlich der meisten Kombinationen):
Daher denke ich nicht, dass es möglich ist, eine Implementierung von MVC (oder MVP) zu erstellen, die immer gut passt.
Die besten Beiträge, die ich gesehen habe , um MVC wirklich zu erklären und warum ein MVC-System so aufgebaut ist, wie es ist, sind die "Build Your Own CAB" -Serien von Jeremy D Miller . Nachdem Sie daran gearbeitet haben, sollten Sie in der Lage sein, Ihre Optionen viel besser zu verstehen. Die Smart Client Guidance von Microsoft (CAB / Microsoft Composite Application Block) sollte ebenfalls berücksichtigt werden. Es ist ein bisschen komplex, aber es kann gut für Anwendungen funktionieren, die eine gute Passform haben.
Durch Auswahl einer MVC / MVP-Implementierung für ein Winforms-Projekt erhalten Sie einen lesenswerten Überblick. Viele Leute mögen PureMVC . Ich habe es noch nie benutzt, aber ich würde es mir ansehen, wenn ich das nächste Mal ein MVC-Framework benötige.
" Presenter First " ist ein Softwareentwicklungsansatz, der die Ideen des MVP-Entwurfsmusters (Model View Presenter) und der testgetriebenen Entwicklung kombiniert . Sie können damit beginnen, Tests in der Sprache des Kunden zu schreiben. Beispielsweise:
Ich habe keine Erfahrung mit "Presenter First", aber ich werde es versuchen, wenn ich die Gelegenheit dazu bekomme, da es sehr vielversprechend aussieht.
Weitere Fragen zum Stapelüberlauf, die Sie möglicherweise prüfen möchten, finden Sie hier und hier .
Wenn Sie zu irgendeinem Zeitpunkt WPF verwenden möchten , sehen Sie sich das MVVM- Muster (Model-View ViewModel) an . Hier ist ein sehr gutes Video, das Sie sich ansehen sollten: Jason Dolinger auf Model-View-ViewModel .
Das MVVM-Entwurfsmuster (Model View View Model) für Winforms bietet eine weitere Option, die die Konvertierung in WPF bei Bedarf vereinfacht. Magical.Trevor ist ein weiteres MVVM-Beispiel für Windows Forms, das auch die automatische Bindung basierend auf Eigenschaftsnamen enthält.
Fragen Sie sich auch, warum Sie MVC verwenden.
Sobald Sie Ihre Ziele klar definiert haben , wird es einfacher, die eine oder andere Implementierung auszuwählen.
quelle
UPDATE: Zusätzlich zu meiner vorherigen Antwort unten empfehle ich, über den "Presenter First" -Ansatz (insbesondere die PDF-Artikel) zu lesen.
Ich würde MVP (eigentlich PassiveView-Muster) anstelle von MVC empfehlen. Sie brauchen dafür keine speziellen Frameworks, sondern nur, wie Sie Ihren Code organisieren.
Ein Ansatz (den ich normalerweise verfolge) besteht darin, jedes Fensterformular in drei Einheiten aufzuteilen:
Beispielcode (ein einfacher Pseudocode, nur zur Veranschaulichung):
quelle
Haben Sie sich PureMVC angesehen ? Ich habe festgestellt, dass sich niemand darauf einigen kann, wie MVC wirklich aussieht, wenn sie mit dem Aufbau einer bestimmten Implementierung beginnen.
Update: Sie können Ihre eigenen erstellen, beginnend mit etwas Einfacherem wie MobileMVC . Compact Framework-Code sollte unter Windows kompiliert / ausgeführt werden. Da dies eine Schulaufgabe ist, würde ich vorschlagen, dass Sie tatsächlich einige Zeit damit verbringen, zu lernen, wie MVC tatsächlich funktioniert.
quelle
Vielleicht möchten Sie einen Blick auf Differential Execution werfen .
Hier ist es in SourceForge
IMO, es ist eine enorme Verbesserung gegenüber MVC, obwohl es immer noch ziemlich ungewöhnlich ist.
quelle
Ein gutes Beispiel für die Einführung Ihrer eigenen MVC-Implementierung mit Windows Forms finden Sie hier . Quellcode ist enthalten.
Wenn Sie Code für diese Aufgabe lesen, studieren und schreiben, werden Sie feststellen, dass es viele Meinungsverschiedenheiten darüber gibt, wie MVC implementiert werden sollte. Dies ist ein einfacher Fall, der die Trennung von Bedenken widerspiegelt und ein gutes Beispiel für die „Installation“ darstellt, die erforderlich ist, um dies anzuschließen.
Wenn Sie nicht zur Schule gehen, möchten Sie wahrscheinlich auf ein Framework zurückgreifen, wie es die anderen Poster empfohlen haben.
quelle
Der Microsoft Composite Interface Application-Block begann sein Leben als MVC-Implementierung (unter anderem durch implementierte Muster). Die Release-Version entwickelte sich jedoch zu einer MVP-Implementierung, die als eine Art andere Interpretation des MVC-Konzepts angesehen werden kann.
Wenn Sie bereit sind, den Code einer sehr vollständigen (und irgendwie komplexen) MVP-Implementierung zu überprüfen, finden Sie das MS-CAB als eine der Komponenten von Microsoft Smart Client Software Factory. Es kommt mit Quellcode. Sie finden es hier . Viel Glück!
quelle