2010-12-14 17 views
6

Ich bin auf der Suche nach einer Möglichkeit, eine C# -Anwendung zu entwerfen. Ich verstehe 3-Tier-Modell, aber Idk, wie man dies in einem guten C# -Design anwenden kann.Trennen von Windows Forms und Klassen C#

Ich habe einige asp.net mvc Tutorials gesucht, aber ich bin auf der Suche nach einem Windows-Formular-basierte Tutorial.

Gibt es ein Buch oder eine Website, um einen Weg zu finden, dies zu implementieren?

+1

Ich suche etwas traditionelleres. – Nick

Antwort

1

Das erste, was Sie wissen sollten, ist, dass Designmuster keine Einheitsgröße sind und daher gibt es keine "Möglichkeit, ein Designmuster zu implementieren".

Wenn Sie nur das 3-Tier-Modell meinen, dann ist MVC eine gute Wahl, da es jede Schicht klar von der anderen trennt, für die Windows-Formularentwicklung Tutorials auf Entity Framework (oder nur LINQ) suchen Logik der Anwendung, wird Ihre Modellschicht, alle Formen, entlang der Klassen, die verwendet werden, um die Daten zu präsentieren, sind Ihre Ansichten und, natürlich, die Benutzer-Controller sind gut ... das, Ihr Controller.

Ich empfehle Ihnen einen Blick auf DoFactory Website, die eine große Abdeckung auf viele Design-Muster hat.

Auch ich sollte darauf hinweisen, dass Sie möglicherweise keine Implementierung in DoFactory finden, das ist nur eine Referenz für eine Reihe von Entwurfsmustern. JIC.

+0

Danke Pedro. ik gibt es keinen einzigen Weg zu implementieren. Ich bin auf der Suche nach einer erprobten und unkomplizierten Möglichkeit, dies zu tun. krank check dofactory. Danke nochmal. – Nick

+1

ich kann falsch sein, aber ich fühle, dass Ihre Antwort bearbeitet werden muss, coz, 'alle Klassen, die die Logik der Anwendung behandeln' ist nicht die 'view', seine' controller' und die Formen sind 'Ansichten' – FosterZ

+0

UUufff! ! Danke für die Korrektur :) – PedroC88

0

Hallo, wenn Sie Win Forms verwenden, empfehle ich Ihnen, für MVP-Muster zu gehen. Es gibt ein weiteres Muster MVVM (das meistens für WPF und Silverlight verwendet wird), aber ich weiß nicht, ob es für Win Forms gilt.

3

Ich glaube, dass traditional MVC Overkill für WinForms ist. Die Form ist die Ansicht, und selten ist ein separater Controller erforderlich. Das Modell ist nur eine Klasse (in der Regel wird INotifyPropertyChanged implementiert). Sie können die Datenbindung verwenden, um die Ansicht zu benachrichtigen, dass sich das Modell geändert hat.

Der wichtige Punkt ist, Code unter den Tasten zu minimieren. Wenn es sich um einen Formularcode handelt, sollte dieser entweder (a) UI-spezifisch sein oder (b) Aufrufe an das Modell delegieren. Jede Geschäftslogik sollte sich im Modell oder in Klassen befinden, von denen das Modell abhängt.

Vermeiden Sie das Modell God Object. Es kann intern an andere Klassen delegieren.

BEARBEITEN: Sie möchten möglicherweise die gebundenen Daten in ein separates Objekt verschieben, das dem Modell gehört. Ich würde das Presentation Model nennen, aber ich möchte Fowler keine Worte in den Mund legen.

EDIT2: Wichtig - das Modell keine Kenntnis der Ansicht und NO UI-Code (wie Dialoge) haben müssen.

Verwandte Themen