Warum bestehen C# Projekte immer aus so vielen Dateien?
Hallo, ein neues C#-Projekt, das z.B. in VisuallStudio erstellt wird, hat ja am Anfang immer einen Haufen verschiedenen Dateien. Kann man ein Projekt nicht in eine einzige Datei schreiben, wenn es nur ein kleines ist? Und kann man irgendwo lernen, was die einzelnen Dateien machen und wofür sie gebraucht werden?
4 Antworten
*sln => Solution, Sammlung mehrerer (u.U. unterschiedlicher) Projekte
*.csproj => Ein CSharp Projekt (beinhaltet alle Datei / DLL / Nuget Verweise und Einstellungen zum Projekt)
*.cs => Quelldateien
*.config => Konfigurationen die zur Laufzeit geladen werden (je nach Projekt)
*.json => siehe *.config
*.pubxml => Einstellungen für die Veröffentlichung
So, das waren mal die wichtigsten, denke ich
WELCHE Dateien meinst du?
.csproj und .sln sind für die Projektkonfiguration, es gibt noch für Pakete eine Konfig, für Git, für alles mögliche. Und dann kommen natürlich noch Dateien mit Code und andere Projektressourcen.
Du gibt in google ein "c# <xxx> file purpose".
Oder du schaust dir den Inhalt an. Das ist teilweise auch offenschlich.
Das kann man lernen oder nachlesen, ja.
Ich habe zwar keine C#-Kenntnisse aber bei Java gibt es z.B. Build-Tools wie Maven und dort hat man innerhalb des Projektordners auch zusätzliche Konfigurationsdateien, die z.B. die Abhängigkeiten des Projektes managen.
Sinnvolle Grundregel ist, dass mindestens für jede nicht private Klasse (besser für jede Klasse ohne Ausnahme) eine dedizierte Datei ([Name].cs) vorhanden ist. Dazu kommen (je nach Projektart) eventuell noch weitere Dateien für Benutzeroberfläche (*.frm / *.xaml), Anwendungskonfiguration (App.config, App.cs) oder Verweise auf benötigte .Net-Assemblies bzw. 3rd-Party-Libraries. (Diese Verweise tauchen im Solution-Explorer unter "Verweise" auf, sind aber keine Dateien deines Projektes (ausgenommen Projektverweise)).
Dann hast du evtl. noch Verweise auf NuGet-Pakete oder ähnliches, die in die Verzeichnisstruktur deines Projektes installiert werden.
Ausserdem gibt es in den obj-Foldern jedes Projektes evtl. Dateien, die für WPF autogeneriert werden und der Verdrahtung der Komponenten der Benutzeroberfläche dienen. Diese werden aber in der Regel im Solution-Explorer ausgeblendet und sollten auch für die Entwicklung keine große Rolle spielen (bei den obj-Foldern muss man in der Regel nur selten eingreifen, wenn irgendwas schief gelaufen ist).
Bei Fragen: fragen
Alle. Ich meine wo kann ich mehr über die Funktionsweise dieser Dateien erfahren?