Neu in .NET 7.0 [12] : Rückkehr des klassischen Startcodes in Projektvorlagen

.NET 7.0 bietet für Konsolen- und Webprojekte wieder den klassischen Startcode mit einer Programklasse inklusive Main()-Methode in den Projektvorlagen.

Lesezeit: 1 Min.
In Pocket speichern
vorlesen Druckansicht Kommentare lesen

(Bild: Shutterstock)

Von
  • Dr. Holger Schwichtenberg

Bei dem im November 2021 erschienenen .NET 6.0 war eines der Ziele von Microsoft, dass das Programmiermodell für Neueinsteiger möglich einfach erscheinen soll. Dazu wurde der Startcode von Webanwendungen, Webservices und Konsolenanwendung eingedampft, bei Konsolenanwendungen auf eine einzige Zeile.

Der Dotnet-Doktor – Holger Schwichtenberg

Dr. Holger Schwichtenberg ist Chief Technology Expert bei MAXIMAGO, die Innovations- und Experience-getriebener Softwareentwicklung, u.a. in hochkritischen sicherheitstechnischen Bereichen, anbietet. Zudem ist er Leiter des Expertennetzwerks www.IT-Visions.de, das mit 38 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratung und Schulung bei der Entwicklung sowie dem Betrieb von Software unterstützt.

Das gefiel nicht allen, und mit .NET 7.0 kommen nun diejenigen zu ihrem Recht, die lieber eine Klassendefinition und eine explizite Startmethode mit args-Parameter sehen möchten. In der .NET 7.0 CLI (dotnet.exe bzw. dotnet) gibt es nun beim Anlegen von Projekten die neue Option --use-program-main.

dotnet new web --use-program-main

Im zeitgleich erschienenen Visual Studio 2022 17.4 heißt die Option im Assistenten für neue Projekte andersherum ausgedrückt "Do not use top-level statements".

Option "Do not use top-level statements" beim Anlegen von Projekten in Visual Studio 2022 17.4 (Abb. 1)

Abbildung 2 zeigt den Vergleich der beiden Startcodestile am Beispiel einer Konsolenanwendung: Links ohne class-Program, was Standard für Konsolen- und Webanwendungen in .NET 6.0 war. In der Mitte der alte und jetzt wieder wählbare Stil mit class-Program mit statischer Main()-Methode.

Daneben zeigt Abbildung 2, dass man in Visual Studio per Refactoring vom klassenlosen Stil zum klassenbasierten Stil wechseln kann. Auch ein Refactoring in die andere Richtung ist möglich (siehe Abbildung 3).

Vergleich der beiden Startcode-Stile und Refactoring vom klassenlosen Stil zum klassenbasierten Stil (Abb. 2)

Vergleich der beiden Startcode-Stile und Refactoring vom klassenbasierten Stil zum klassenlosen Stil (Abb. 3)

(rme)