"Neues" C#?

4 Antworten

Du kannst es nach wie vor nach der alten Methode schreiben.

Die neue ist einfach nur, dass du keine Main Class mehr hast wie früher und daher direkt mit dem Code starten kannst. Aber du kannst auch ganz normal eine Main Klasse schreiben. Von der Performance oder dergleichen macht das keinen Unterschied.

Am besten hier

https://dotnet.microsoft.com/en-us/learn/csharp

Und ja, C# wird kontinuierlich weiterentwickelt und das ziemlich schnell

Von Experte Erzesel bestätigt
bei C# sehr viel Code war um ein einfaches "Hello World" zu bekommen

Nö :P

Naja, man braucht etwas Infrastruktur-Code, das stimmt schon. Usings, Namespace, Program-Klasse, Main-Methode, HelloWorld-Code - wobei das Namespace optional ist und Usings eigentlich auch.
Das war aber alles im Template enthalten, Du musstest also nur eine Zeile schreiben.

Heute sieht das anders aus, es gibt ein paar neue Features, die fast alles überflüssig machen und so sind dann auch die Templates aufgebaut. Weg ist das aber nicht, es wird nur automatisch vom Compiler dazu generiert.

In Visual Studio 2022 ist der Code viel viel viel... kürzer als früher! Nur eine Zeile!

Das meine ich - nennt sich "Top Level Statements" und das Fehlen der häufigsten Usings heißt "Implicit Usings", das wird dann einfach alles generiert.

Relevant ist das aber kaum, da 99,99...999% der Programme zu groß werden - und damit meine ich keine großen Enterprise-Anwendungen, sondern auch das, was man so privat bastelt.
Wobei ich die Implicit Usings ganz nett finde, erspart zwar nur eine Tasten-Kombi, aber bei zig 1000en Dateien ist das schon eine feine Sache.

Denn manche Befehle funktionierten nicht wie früher.

Doch, tun sie, alle Syntax-Features werden noch unterstützt, es wurde nichts aus der Sprache entfernt. Du kannst also weiterhin die Usings, dein Namespace, die Program-Klasse und die Main-Methode schreiben, wenn es dir gefällt - ich meine sogar eine Option für das Template gesehen zu haben.

Was sich aber geändert hat, ist der Unterschied ".NET Framework" vs. ".NET" - klingt gleich, sind aber zwei völlig verschiedene Dinge. Das .NET Framework geht bis Version 4.8 und wird *nicht* mehr weiterentwickelt, aber noch einige Jahre unterstützt - Du solltest es nicht mehr nutzen. Das neue .NET hatte anfangs einen anderen Namen (.NET Core bis Version 3.1) und geht seit dem von Version 5 über 6 bis zur in den Startlöchern wartende Version 7.
Das klingt vielleicht blöd, ist aber nicht vermeidbar (gewesen). Microsoft haben ihr .NET Framework von Grund auf überarbeitet/neuentwickelt, um Altlasten los zu werden. Das trauen sich die Firmen hinter anderen Programmiersprachen nicht und ist der Haupt-Grund, warum C# und generell .NET aktuell so sehr im Senkrecht-Start fliegt.

In den Templates ist der Unterschied am ".NET Framework" in den Klammern erkennbar, die neuen Templates haben das nicht.

Mehr zu den verschiedenen Versionen:

https://mycsharp.de/forum/threads/124114/faq-das-net-oekosystem-net-net-core-net-standard-nuget-und-co

Einen vergleichbaren Artikel von Microsoft kenne ich leider nicht, aber der ist auch sehr gut. Es lohnt sich, das begriffen zu haben, so vermeidest Du Probleme, wenn Du online nach Lösungen suchst oder externe Frameworks nutzen möchtest.

Ach ja und vertausche nicht .NET-Version mit C#-Version. Ersteres sind das Framework und die Runtime, Letzteres die Sprach-Spezifikation. Die C#-Version funktioniert prinzipiell mit allen .NET-Versionen, aber manche Features brauchen bestimmte Dinge aus einer neueren .NET-Version, die kannst Du dann natürlich nicht nutzen.
Irgendwie werfen das selbst "erfahrene" Entwickler (die Anführungszeichen sind Absicht) in einen Topf, dabei ist es eigentlich ganz einfach - deshalb erwähne ich das hier.

Hat jemand eine Lösung? Gibt es neue Crash Course zu C#?

Ja: Keine Video Crash Kurse.
Die sind nun mal immer im Nachteil, einen davon beschreibst Du so schön selber.
Und sie enthalten meistens Fehler, zeigen falsche oder schlechte Arbeitsweisen, haben große Lücken, etc. Du als Anfänger kannst das nicht beurteilen (was verständlich ist), also vertrau einfach auf den Rat ;)
Und noch mehr Nachteile, wie dass sie nicht zum Nachschlagen taugen oder häufig auf halber Strecke aufhören (was dir als Grundlagen verkauft wird, ist nur ein Bruchteil davon).

Am aktuellsten bist Du, wenn Du die Tutorials von Microsoft oder die Tutorials in der MSDN-Doku (scheint weniger "langsam" geschrieben zu sein) durcharbeitest. Und fang mit der Konsole an, bis Du fit mit der Sprache bist. Alles Andere verbirgt dir weit komplexere Dinge, die früher oder später immer auf dich zukommen und dann vermutlich überfordern.

Vielleicht das .Net Framework wechseln, weil ich bei Microsof gelsen habe das die das beim .Net 6 geändert haben?

Definitiv - wobei die schon seit 2016 (da fing es mit .NET Core 1 an) massiv am ändern sind. Seit .NET 6 haben sich aber wieder ein paar Defaults (neue Projekte betreffend) geändert, daher wirkt das so für dich.

.NET 6 ist aber der Meilenstein, ab dem man die Reise der Neuentwicklung als "abgeschlossen" betrachten kann, sie arbeiten immer aktiv an vielen Dingen, aber es ist alles da, was man so braucht. Naja, fast, für MAUI sind die Visual Studio Tools noch im Preview, also offiziell nicht released, aber für gewöhnlich funktionieren Preview-Funktionen schon sehr gut.

Woher ich das weiß:Berufserfahrung – C#.NET Senior Softwareentwickler

Fast jede noch aktuelle Programmiersprache wird ständig fortentwickelt.

Eben deswegen lernt man auch nicht anhand von Videos, sondern anhand eines aktuellen Lehrbuchs.

In Videos wird selten gesagt, auf welche Version der Sprache sie sich beziehen. Zudem kann ein Video ja nur exemplarisch was zeigen, so dass man dort auf Details halt auch viel zu wenig eingehen kann.

Insbesondere die der Sprache zugeordnete Standardbibliothek muss der Lernende natürlich anderswo einsehen. Das Zeitalter, in dem solche eine Bibliothek nur aus einigen wenigen, absolut notwendigen Funktionen bestand, ist schon lange vorbei.

Hat jemand eine Lösung?

Die Lösung besteht einfach darin, dass Du Microsofts (im Internet verfügbare) Dokumentation zu genau der Version von C# nutzt, die auf Deinem Rechner installiert ist bzw. mit der Du arbeiten möchtest oder musst. In der Praxis ist das keineswegs immer nur die neueste.

Falls es nicht darauf ankommt, eine ganz bestimmte Version zu nutzen (Du also noch Lernender bist), kaufe dir ein aktuelles Lehrbuch und nutze die darin besprochene Version der Sprache. Vorschlag: