Für das Erstellen einer Webanwendung in .NET kommt ASP.NET Core zum Einsatz.
Anpassen der Projektdatei
Um mit dem Entwickeln von ASP.NET Core-Apps zu beginnen, sollte zunächst die Projektdatei entsprechend angepasst werden. Dazu wird der Wert vom Sdk-Attribut des Project-Elements auf Microsoft.NET.Sdk.Web gesetzt, um implizit auf das Microsoft.AspNetCore.App-Framework zu verweisen und weitere Features zugeschnitten auf ASP.NET Core-Apps zu aktivieren. Dies ist zwar nicht zwingend erforderlich, aber sehr empfehlenswert:
<Project Sdk="Microsoft.NET.Sdk.Web">
<PropertyGroup>
<TargetFramework>net10.0</TargetFramework>
</PropertyGroup>
</Project>
Wird zusätzlich die Eigenschaft ImplicitUsings aktiviert, werden neben den global using-Direktiven für die Microsoft.NET.Sdk-Namespaces eine Reihe von Standardnamespaces zur Verwendung mit ASP.NET Core dem Projekt zur Verfügung gestellt:
- System.Net.Http.Json
- Microsoft.AspNetCore.Builder
- Microsoft.AspNetCore.Hosting
- Microsoft.AspNetCore.Http
- Microsoft.AspNetCore.Routing
- Microsoft.Extensions.Configuration
- Microsoft.Extensions.DependencyInjection
- Microsoft.Extensions.Hosting
- Microsoft.Extensions.Logging
Die erste Webanwendung
Abhängig von den Anforderungen wird zu Beginn eine der zustandslosen Create…-Methoden verwendet, um ein Objekt der Klasse WebApplicationBuilder zu erstellen und bei Bedarf die Befehlszeilenargumente zu übergeben. Dieser Generator stammt aus dem Microsoft.AspNetCore.Builder-Namespace und verfügt unter anderem über eine Eigenschaft Services, um verwendbare Funktionen mitzuteilen. Wird die Build()-Methode auf dem Builder aufgerufen, wird eine Anwendungsinstanz erstellt und zurückgegeben. Tatsächlich wird durch den Aufruf der Create()-Methode das WebApplication-Objekt mit vorkonfigurierten Standardwerten direkt erstellt ohne zuvor explizit ein Generatorobjekt anlegen zu müssen.
Die App-Instanz dient zur tatsächlichen Verwendung von Funktionen wie dem Einrichten von Routing oder dem Hinzufügen von Middleware. Die MapGet()-Methode ist eine der Erweiterungsmethoden für WebApplication-Objekte aus der Klasse EndpointRouteBuilderExtensions, um einen Endpunkt für die ASP.NET Core-Anwendung bereitzustellen. Selbstverständlich gibt es auch für die anderen HTTP-Verben entsprechende Methoden, welche ein Routenmuster erwarten und ein auszuführendes Delegat, wenn der Endpunkt abgegeglichen wird. Abschließend wird die Webanwendung nach allen gewünschten Konfigurationen über eine entsprechende Methode gestartet:
using Microsoft.AspNetCore.Builder;
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hallo, Welt!");
app.Run();
In dem obigen Beispiel wird nach diesem Verfahren eine einfache Webanwendung erstellt, die bei einer Anfrage an die Root-URL den Antworttext Hallo, Welt! zurückgibt.
Ausführen und Testen der Anwendung
Um nun die Funktionsfähigkeit der Anwendung zu testen, kann die Anwendung wie gewohnt mit dotnet run gestartet werden und mit einem Tool wie curl oder einem Webbrowser aufgerufen werden:
$ curl localhost:5000
Hallo, Welt!
Hinzufügen von Razor-Seiten
Für die Erstellung von dynamischen Webseiten in ASP.NET Core wird Razor verwendet. Razor ist eine leistungsstarke Template-Sprache, die es ermöglicht, C#-Code in HTML-Dateien einzubetten.
Weitere Informationen