Laden...

Organisation von Klassen: Wie behalte ich den Überblick, welche Klassen von was benötigt werden?

Erstellt von EyeTrackJack vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.331 Views
E
EyeTrackJack Themenstarter:in
35 Beiträge seit 2019
vor 4 Jahren
Organisation von Klassen: Wie behalte ich den Überblick, welche Klassen von was benötigt werden?

Hallo,

in meinem Projekt habe ich immer mehr Klassen, die aber im gleichen Namespace liegen. Einige dieser Klassen würde ich gerne in anderen Projekten verwenden, aber ich habe keine Übersicht, welche Klassen dazugehören. Es ist ja nicht nötig, sie per using einzubeziehen, damit sie nutzbar sind.

Das Problem ist, das ich einfach keine Strategie habe, wie man sowas organisiert. Wie ich es jetzt mache, fühlt sich jedenfalls falsch an. Ich habe keinen professionellen Anspruch, aber ich würde meine Software gerne übersichtlich halten.

Sollte ich dafür sorgen, dass ich die Klassen per using hinzufügen muss? Oder mit Ordnern arbeiten?

Habt ihr Tipps? Oder gibt es Beispiele? Gibt es ein gutes Buch, das sich auch damit auseinandersetzt?

Ich würde mich sehr freuen, wenn ihr mir helfen könntet.

Gruß
Tobias

4.931 Beiträge seit 2008
vor 4 Jahren

Du könntest für die Klassen ein eigenes Projekt vom Typ Klassenbibliothek (class library) erstellen (mit eigenem Namensbereich). Dieses sollte dann fehlerfrei kompilieren, so daß du dann dieses Projekt per Referenz auch in andere Projekte einbinden kannst (und dann auch explizit den Namensbereich angeben mußt).

Auch innerhalb eines Projektes sollten die Dateien (am besten hierarchisch) organisiert sein, so daß Dateien in untergeordneten Verzeichnissen möglichst keine Abhängigkeit zu anderen übergeordneten Dateien haben (außer evtl. ein paar Crossdomain-Klassen wie Utilities, Helper oder wie man sie auch immer nennt 😉.

In meinem Artikel Kommunikation von 2 Forms habe ich dies auch so ähnlich erklärt (sowie im Beispielprogramm ganz unten auch so angewendet).

Für größere Projekte nach der [Artikel] Drei-Schichten-Architektur hat man meistens dafür auch verschiedene Klassenbibliotheksprojekte, um ungewollte Zugriffe auszuschließen.

16.806 Beiträge seit 2008
vor 4 Jahren

Letzten Endes nennt man sowas Software Architektur und basiert i.d.R. schon auch auf Erfahrung.
Natürlich gibt es einen gewissen Rahmen, an den man sich halten kann, und das sind in .NET nunmal die Namespaces.

Namespaces können aber auch Projekt-übergreifend sein; und natürlich kommt die Trennung von Projekten auch drauf an, welche Technologien man einsetzt und was man programmiert.

Die pauschale Best Practise gibt es im Bereich einer Architektur - egal ob Solution-, Infrastruktur- oder Software-Architektur - pauschal nie.

E
EyeTrackJack Themenstarter:in
35 Beiträge seit 2019
vor 4 Jahren

Auch innerhalb eines Projektes sollten die Dateien (am besten hierarchisch) organisiert sein, so daß Dateien in untergeordneten Verzeichnissen möglichst keine Abhängigkeit zu anderen übergeordneten Dateien haben

Das versuche ich. Im Moment habe ich eine leichte Abhängigkeit von Fenstern, die eine Schaltfläche darstellen, entstanden. Aber das will ich beseitigen, indem ich eine Klasse zwischenschalte, die sich um die Fenster kümmert und als Vermittler zum Hauptfenster dient.

Ich will darin eigene Events definieren, die die relevanten Events der Fenster weiterleiten.

In meinem Artikel
>
habe ich dies auch so ähnlich erklärt (sowie im Beispielprogramm ganz unten auch so angewendet).

Habe mir das mal verinnerlicht. Es fühlt sich gut an, das nochmal als Quelltext zu lesen.