Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Community
  • |
  • Diskussionsforum
VS: .cs-Dateien ineinander schachteln
Frokuss
myCSharp.de - Member



Dabei seit:
Beiträge: 158

Themenstarter:

VS: .cs-Dateien ineinander schachteln

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Lars Schmitt
myCSharp.de - Experte

Avatar #avatar-2240.jpg


Dabei seit:
Beiträge: 2335
Herkunft: Witten

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10083

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Frokuss
myCSharp.de - Member



Dabei seit:
Beiträge: 158

Themenstarter:

beantworten | zitieren | melden

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
private Nachricht | Beiträge des Benutzers
Abt
myCSharp.de - Team

Avatar #avatar-4119.png


Dabei seit:
Beiträge: 16110

beantworten | zitieren | melden

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).
- performance is a feature -

Microsoft MVP - @Website - @blog - @AzureStuttgart - github.com/BenjaminAbt
private Nachricht | Beiträge des Benutzers
inflames2k
myCSharp.de - Experte

Avatar #AARsmmPEUMee0tQa2JoB.png


Dabei seit:
Beiträge: 2358

beantworten | zitieren | melden

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 | Spielkartenbibliothek
private Nachricht | Beiträge des Benutzers
FZelle
myCSharp.de - Experte



Dabei seit:
Beiträge: 10083

beantworten | zitieren | melden

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.
private Nachricht | Beiträge des Benutzers
Frokuss
myCSharp.de - Member



Dabei seit:
Beiträge: 158

Themenstarter:

beantworten | zitieren | melden

An die Namespaces habe ich gar nicht dran gedacht XD

Danke :-D
Frokuss
private Nachricht | Beiträge des Benutzers