Laden...

VS: .cs-Dateien ineinander schachteln

Erstellt von Frokuss vor 4 Jahren Letzter Beitrag vor 4 Jahren 1.508 Views
F
Frokuss Themenstarter:in
158 Beiträge seit 2015
vor 4 Jahren
VS: .cs-Dateien ineinander schachteln

Hallo Leute,
habe bis vor kurzen noch mit SharpDevelop gebastelt... Bin nun auf VisualStudio umgestiegen und habe dort mein altes Projekt reingeladen. Funktioniert auch super. Aber, was ich in VS einfach nicht schaffe ist, dass ich im Projektmappen-Explorer eine CS-Datei auf eine andere schieben kann und diese dann eine Ebene tiefer angezeigt wird. Die alten importierten Dateien werden zwar eine Ebene (oder sogar mehrere) tiefer angezeigt, die in VS erstellten allerdings sind immer direkt unterhalb eines Ordner angeordnet.

Das ganze plustert meiner Meinung nach einfach nur alles auf und hilft ungemein die Übersicht zu verliren 😦 Kann mir einer sagen, wie ich also im PM-Explorer die Dateien Gruppieren kann?

Danke Frokuss

2.223 Beiträge seit 2005
vor 4 Jahren

Hallo Frokuss,

ja, leider kann Visual Studio das nativ leider nicht wirklich.

es gibt zwei Möglichkeiten dieses trotzdem zu erreichen

entweder du editierst die Projektdatei manuell oder du benutzt das Add-On
https://marketplace.visualstudio.com/items?itemName=MadsKristensen.FileNesting

Viele Grüße
Lars

F
10.010 Beiträge seit 2004
vor 4 Jahren

Sorry, aber wozu braucht man das?

Wenn du Klassen hast die so groß sind das du sie in mehrere Dateien aufspalten musst, ist da etwas ganz gehörig falsch.

Und wenn man vernünftige Designs benutzt, ist das auch sehr selten nötig.

F
Frokuss Themenstarter:in
158 Beiträge seit 2015
vor 4 Jahren

Danke Lars. Werde mir mal das Addon angucken.

@FZelle: Unabhängig davon, dass ich das nicht mal für deinen Fall verwende... Ich habe z.B. eine Klasse Anwender und eine Klasse Kontakt. Zweiteres erbt vom ersten. Muss ich dann wirklich jede einzelne Klasse bei mir aufgelistet haben? Oder reicht es eventuell auch aus, wenn mir einfach nur Kontakt angezeigt wird?

oder: ich habe mir eine eigene Tab-Leiste erzeugt (jaja, ich weis, gibt alles schon fertig). Dort habe ich einmal das komplette konstrukt drinnen, dann die einmal die Tableiste, den Contentbereich und die einzelnen Tabs. Ich will jetzt nicht alle 4 Klassen angezeigt haben. reicht mir, wenn ich eine Klasse sehe... Hast du mehrere solcher Konstrukte, hast du nun mal viele Klassen... Und mit Partial-Klassen arbeite ich eher selten... Das mache ich nur, wenn ich so ~150 Zeilen Code gut in eine seperate Datei auslagern kann... z.B. die ganzen Events. Aber wie gesagt... kommt fast nie vor...

Gruß Frokuss

16.806 Beiträge seit 2008
vor 4 Jahren

Naja; jetzt versuchst Du aber OOP Design Themen mit Dateiorganisation zu erschlagen.
Meine Erfahrung/Tipp: besser lassen und das Konzept von Namespaces (und damit implizit auch die Ordnerstruktur) verstehen und anwenden.

Gibt wenig sinvolle Verwendung für sowas (Konfigurationsdateien sind ein positives Beispiel).

2.298 Beiträge seit 2010
vor 4 Jahren

Zumal das Beispiel jetzt eher ein schlecht gewähltes wäre. Wenn eine Klasse Kontakt von Anwender erbt würde ich wohl eher den Anwender angezeigt haben wollen. Denn was passiert, wenn plötzlich eine weitere Klasse von Anwender erbt?

Alles in allem bin ich aber auch der Überzeugung, dass soetwas ganz und gar nicht notwendig ist. Der richtige weg wären wie Abt bereits genannt hat, eine vernünftige Ordner und Namespace Struktur.

Beispiel:


Tab-Leiste [Ordner]
      Tab-Header
      Tab-Page
      Tab-Content

Nun könnte man eventuell noch Page und Content zusammen führen was m.E. aber wenig Sinn macht.

Wissen ist nicht alles. Man muss es auch anwenden können.

PS Fritz!Box API - TR-064 Schnittstelle | PS EventLogManager |

F
10.010 Beiträge seit 2004
vor 4 Jahren

Ich habe meist Projekte mit mehreren 100.000 Zeilen, und die werden nur dann unübersichtlich wenn man sich nicht an das hält was Abt sagt.

Und 150 Zeilen Eventhandler auslagern ist eine der schlechtesten arten wie man diese Anzeige benutzen kann.
Das einzige was da sinn macht sind maschinengenerierte Dateien wie die .designer.cs oder die von TT.* oder RESX.

F
Frokuss Themenstarter:in
158 Beiträge seit 2015
vor 4 Jahren

An die Namespaces habe ich gar nicht dran gedacht XD

Danke 😄
Frokuss