Warum bestehen C# Projekte immer aus so vielen Dateien?

4 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

*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

Woher ich das weiß:Berufserfahrung – Senior-Softwaredeveloper mit 20 Jahren Berufserfahrung.

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.

Woher ich das weiß:Studium / Ausbildung – Informatikstudium
VielFrager42 
Fragesteller
 21.05.2021, 14:27
WELCHE Dateien meinst du?

Alle. Ich meine wo kann ich mehr über die Funktionsweise dieser Dateien erfahren?

0
triopasi  21.05.2021, 14:29
@VielFrager42

Du gibt in google ein "c# <xxx> file purpose".

Oder du schaust dir den Inhalt an. Das ist teilweise auch offenschlich.

2

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.

Woher ich das weiß:Studium / Ausbildung – Studium Informatik / Softwaretechnik

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