C# unter Linux: Einführung in die Serie
Für die meisten C# Entwickler war Windows das einzige Betriebssystem, auf dem sie je gearbeitet haben. Die Werkzeuge, die IDE, die Bereitstellungsziele drehen sich alle um eine einzige Plattform. Das funktioniert, bis es nicht mehr funktioniert, sei es wegen Datenschutzbedenken bei jüngsten OS-Änderungen, dem Wunsch, ältere Hardware umzupurposen, oder einfach dem beruflichen Vorteil, mehr als eine Umgebung zu kennen.
In seinem Video "C# auf Linux: Serieneinführung" startet Tim Corey eine mehrteilige Serie zur Entwicklung von .NET-Anwendungen vollständig auf Linux. Diese einführende Episode behandelt die Umgebung, bevor irgendein Code geschrieben wird: Welche Linux-Distribution soll man wählen, welche Editoren funktionieren für die C#-Entwicklung, welche Projekte man bauen kann und welche nicht, und was zu erwarten ist, wenn der Workflow nicht mehr wie Windows aussieht. Wenn Sie neugierig darauf waren, .NET außerhalb seiner traditionellen Heimat auszuführen, ist dies der Fahrplan.
Warum Linux? Das Argument für mehr Optionen
[0:00 - 1:17] Tim beginnt mit einer ehrlichen Beobachtung: Auf einer einzigen Plattform festzusitzen, begrenzt Ihre Flexibilität. Ein früheres Video über Microsofts AI-bezogene Änderungen zu Windows löste Gespräche über Alternativen aus und diese Serie entstand aus diesen Diskussionen. Das Ziel ist es nicht, Windows aufzugeben, sondern eine zweite tragfähige Umgebung zu Ihrem Fähigkeitsset hinzuzufügen.
Diese Breite hat echten beruflichen Wert. Wenn ein neuer Job die Arbeit an Mac oder Linux erfordert oder wenn ein Bereitstellungsziel auf einem Linux-Server läuft, hat der Entwickler, der den Workflow bereits kennt, einen klaren Vorteil. Tim rahmt die Serie als eine Möglichkeit ein, Ihr .NET-Wissen zu vertiefen, indem Sie es aus einem anderen Blickwinkel betrachten, nicht als einen Plattformkrieg.
Linux Mint auswählen
[1:28 - 2:42] Etwas, das Neulinge unvorbereitet erwischt, ist, dass "Linux" kein einziges Betriebssystem ist. Es ist ein Kernel, der unter hunderten verschiedener Distributionen sitzt, jede mit ihrer eigenen Desktop-Umgebung, Standard-Paketmanager und Design-Philosophie. Tim erkennt an, dass die schiere Anzahl an Auswahlmöglichkeiten überwältigend sein kann, und vereinfacht dann die Entscheidung für diese Serie: Linux Mint.
Mint bietet ein Gleichgewicht zwischen Stabilität und Vertrautheit. Sein Desktop-Layout ähnelt dem, was Windows-Benutzer bereits kennen, mit einer Taskleiste, einem Startmenü-Äquivalent und einem Dateimanager, der sich vorhersehbar verhält. Diese visuelle Ähnlichkeit erleichtert den Übergang, ohne zu behaupten, dass die beiden Systeme identisch sind. Andere Distributionen wie Pop!_OS sind ebenfalls solide Wahlmöglichkeiten, aber Mint bietet den am einfachsten zugänglichen Ausgangspunkt für Entwickler, deren Muskelgedächtnis auf Windows aufgebaut ist.
IDE-Optionen for .NET-Entwicklung
[2:42 - 3:57] Da Visual Studio eine Windows-exklusive Anwendung ist, benötigen Linux-Entwickler einen anderen Editor. Tim hebt zwei primäre Wege hervor: VS Code, gepaart mit der C# Dev Kit-Erweiterung, und JetBrains Rider.
VS Code mit dem C# Dev Kit hat sich in den letzten Versionen erheblich verbessert, obwohl Tim anmerkt, dass einige raue Kanten bleiben. Das Lizenzmodell folgt dem gleichen Modell wie Visual Studio: kostenlos für einzelne Entwickler und kleine Teams, mit einer bezahlten Stufe für größere Organisationen. JetBrains Rider bietet jetzt eine kostenlose Community-Edition für persönliche Projekte, die den Entwicklern eine zweite Option ohne Vorabkosten gibt. Die Serie wird sich hauptsächlich an VS Code orientieren, aber beide abdecken, da jedes Tool je nach Aufgabe seine Stärken hat.
Maschinenspezifikationen: Was Sie tatsächlich benötigen
[4:00 - 6:14] Einer der praktischsten Verkaufsargumente für Linux ist, wie wenig Hardware es benötigt. Tim teilt zwei Beispiele, die die Bandbreite veranschaulichen. Zuerst beschreibt er das Ausführen von VS Code mit dem C# Dev Kit auf einem Raspberry Pi Tastaturcomputer, einem Gerät mit etwa 400 MHz Verarbeitungsleistung und einer Dual-Core-CPU. Er baute und lief eine Blazor-Anwendung darauf. Die Erfahrung war träge, aber es funktionierte.
Das zweite Beispiel ist für die meisten Entwickler nachvollziehbarer. Ein alter Laptop, der unter Windows 10 unbrauchbar geworden war (Zeitslots von Klicken, Anwendungen, die sich weigern zu laden), lief nach einer Neuinstallation reibungslos mit Linux Mint. Die gleiche Hardware, die kaum einen Windows-Desktop rendern konnte, wurde zu einer funktionalen Entwicklungsmaschine. Tim ist sich darüber im Klaren, dass bessere Spezifikationen nach wie vor eine bessere Erfahrung bieten, aber die Mindestanforderung für die C#-Entwicklung auf Linux liegt weit niedriger als auf Windows.
Projekttypen, die Sie bauen können und nicht
[6:17 - 8:23] Nicht jeder .NET-Projekttyp funktioniert außerhalb von Windows, und diese Grenzen im Voraus zu verstehen, verhindert spätere Frustration. WinForms und WPF basieren beide auf windows-spezifischen Bibliotheken, die im Betriebssystem integriert sind. UWP weist die gleiche Einschränkung auf. Keine von diesen wird auf Linux kompiliert oder ausgeführt.
MAUI fügt eine bemerkenswerte Nuance hinzu. Obwohl es mehrere Plattformen anspricht (Windows, macOS, iOS, Android), gehört Linux nicht dazu. Diese Unterscheidung ist wichtig, da Entwickler manchmal annehmen, dass 'plattformübergreifend' 'überall' bedeutet, während in der Praxis MAUIs Reichweite sowohl Linux als auch das Web ausschließt.
Was funktioniert, umfasst eine breite Fläche. Konsolenanwendungen, die die Grundlage für das Erlernen von C# bilden, laufen ohne Modifikation. Dienstanwendungen (Daemons in der Linux-Terminologie) werden vollständig unterstützt. Der gesamte ASP.NET Core-Webstack, einschließlich APIs, Blazor-Anwendungen, gRPC-Diensten und Arbeitsdiensten, funktioniert auf Linux identisch. Für Desktop-Anwendungen, die Betriebssysteme umspannen müssen, wird die Uno Plattform als zukünftiges Thema der Serie behandelt, um den Aufbau von Linux aus zu ermöglichen und sowohl an Windows als auch macOS zu bereitzustellen.
Was diese Serie nicht tun wird
[8:37 - 11:52] Tim stellt früh drei Erwartungen klar. Erstens, die Serie ist nicht anti-Microsoft. GitHub, Azure, Edge, VS Code und .NET selbst sind alles Microsoft-Produkte, und mehrere werden in der Serie erscheinen. Es geht darum, selbst zu bestimmen, welche Werkzeuge man sich zu eigen machen möchte, anstatt sie einem auferlegt zu bekommen.
Zweitens, diese Episoden werden Linux nicht als die einzige richtige Wahl positionieren. Windows bleibt die richtige Umgebung für viele Entwickler und Workflows. Linux erweitert Ihre Optionen; es ersetzt nicht jedes Szenario, das Windows gut bewältigt. Der Wert liegt darin, beide Plattformen zu verstehen, damit Sie diejenige auswählen können, die zu einer bestimmten Situation passt.
Drittens, und vielleicht am wichtigsten für Entwickler beim Umstieg: Erwarten Sie nicht, dass Linux wie Windows funktioniert. Die Softwareinstallation erfordert mehr Interaktion mit der Befehlszeile. Das Paketmanagement folgt einem grundsätzlich anderen Modell. Einige Workflows, die auf Windows automatisch erscheinen, erfordern auf Linux explizite Schritte. Die Serie wird durch jede dieser Unterschiede führen, sobald sie auftauchen, und erklären, warum sie existieren und wie man damit umgeht.
Unterschiede erwarten, nicht Mängel
[11:52 - 13:34] Eine häufige Falle beim Plattformwechsel ist es, alles gegen das zu messen, was man bereits kennt. Tim geht darauf direkt ein: Windows hinter sich zu lassen bedeutet, zu akzeptieren, dass bestimmte Aufgaben anders aussehen und sich anfühlen werden. Fensterverwaltung, Softwareinstallation und Systemkonfiguration haben auf Linux ihre eigenen Konventionen.
Einige dieser Muster sind tatsächlich besser. Das Modell des Paketmanagers von Linux hält beispielsweise Ihren gesamten Softwarebestand über ein einziges System aktualisiert, anstatt dass es von jeder Anwendung erwartet wird, ihren eigenen Updater zu verwalten. Andere Unterschiede erfordern einfach Anpassung. Tim vergleicht es mit dem Wechsel von Windows zu Mac, wo er ein Drittanbieter-Tool installiert, um das Fensterschnappverhalten zu erhalten, das er bevorzugt. Das Äquivalent passiert auf Linux: Sie passen die Umgebung Ihren Vorlieben im Laufe der Zeit an, anstatt zu erwarten, dass sie das widerspiegelt, was Sie verlassen haben.
Zusammenfassung: Ein Fahrplan für die Serie
[13:34 - 14:10] Tim beendet mit einem Überblick über das, was als nächstes kommt. Die Serie beginnt mit der Installation von Linux Mint auf einem USB-Laufwerk, damit Sie die gesamte Erfahrung testen können, ohne Ihre bestehende Windows-Installation zu berühren. Von dort aus behandeln nachfolgende Episoden die permanente Installation, das Einrichten von Entwicklungstools und das Erstellen realer Anwendungen. Seiten-Quest-Videos werden unterwegs Linux-spezifische Konfigurationsaufgaben behandeln.
Abschluss
[14:10 - 14:29] Das Fazit dieser Einführung ist einfach: Linux ist eine praktikable, leistungsfähige Plattform für C#- und .NET-Entwicklung mit ein paar Grenzen, die Sie verstehen sollten, bevor Sie eintauchen. Die Hardwareanforderungen sind bescheiden, die Werkzeuge haben sich weiterentwickelt, und die wichtigsten Projekttypen für moderne Entwicklung (Web, API, Dienste, Konsole) funktionieren alle ohne Kompromiss.
Für Entwickler, die ausschließlich auf Windows gearbeitet haben, bietet diese Serie einen strukturierten Weg, um Ihre Reichweite zu erweitern. Beginnend mit einem USB-Stick bedeutet, dass nichts zu verlieren ist und eine bedeutungsvolle Fertigkeit zu gewinnen.
Beispieltipp: Bevor Sie sich zu einer vollständigen Installation verpflichten, booten Sie Linux Mint von einem tragbaren USB-Stick auf Ihrem Hauptrechner. Sie werden ein Gefühl für den Desktop, das Terminal und den allgemeinen Workflow bekommen, ohne Ihr bestehendes Setup zu verändern. Wenn die Erfahrung stimmig ist, können Sie zu einer dauerhaften Installation übergehen, im Wissen, was Sie erwartet.
Sehen Sie das vollständige Video auf seinem YouTube Kanal und gewinnen Sie weitere Einblicke in die Entwicklung von C# auf Linux.
