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.

In Pocket speichern vorlesen Druckansicht

(Bild: Shutterstock)

Lesezeit: 1 Min.
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 technischer Leiter des Expertennetzwerks www.IT-Visions.de, das mit 53 renommierten Experten zahlreiche mittlere und große Unternehmen durch Beratungen und Schulungen sowie bei der Softwareentwicklung unterstützt. Durch seine Auftritte auf zahlreichen nationalen und internationalen Fachkonferenzen sowie mehr als 90 Fachbücher und mehr als 1500 Fachartikel gehört Holger Schwichtenberg zu den bekanntesten Experten für .NET und Webtechniken in Deutschland.

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)