Oefening: een ASP.NET Core-web-app-project maken op basis van een sjabloon
In deze oefening gaat u het volgende doen:
- Maak een ASP.NET Core-web-app-project op basis van een sjabloon.
- Bekijk de structuur van het gemaakte project.
Een ASP.NET Core-web-app maken met behulp van een sjabloon
Maak in Visual Studio Code een nieuw project:
Selecteer de Verkennerweergave:
Selecteer de knop .NET Project maken . U kunt ook het opdrachtenpalet openen met Ctrl+Shift+P en vervolgens '
.NET' typen om de opdracht .NET: Nieuw project te zoeken en te selecteren.
Selecteer de ASP.NET Core Empty-projectsjabloon in de lijst.
Maak in het dialoogvenster Projectlocatie een map met de naam
MyWebAppdie het project bevat.Geef in de Command Palette het project
MyWebAppeen naam, ook rekening houdend met het gebruik van hoofdletters. Het gebruik van deze exacte projectnaam is belangrijk om ervoor te zorgen dat de naamruimten voor code in deze instructie overeenkomen met die van u.Selecteer Project maken in het opdrachtpalet.
De structuur van het project onderzoeken
De inhoud van de projectmap MyWebApp wordt weergegeven in Visual Studio Code Explorer:
Maak vanuit een terminal of de opdrachtregel een nieuw project:
Ga naar de map (
cd) die het project gaat bevatten.Maak een ASP.NET Core-web-app in een map met de naam MyWebApp door de .NET CLI-opdracht
dotnet newuit te voeren:dotnet new web -o MyWebAppEr wordt een nieuw ASP.NET Core leeg webproject gemaakt in een map met de naam MyWebApp.
Hier volgt een overzicht van de syntaxis van de opdracht:
-
dotnet new: een .NET CLI-opdracht voor het maken van verschillende .NET-ontwikkelingsartefacten op basis van sjablonen, zoals projecten, oplossingen, bibliotheken, configuratie en andere gespecialiseerde bestanden. -
web: Een projectsjabloon die wordt gebruikt voor het maken van een leeg ASP.NET Core-webproject, zonder voorbeeldinhoud.webis een van de vele ingebouwde projectsjablonen die beschikbaar zijn in de .NET SDK. -
-o: Met de uitvoeroptie geeft u de map op waarin het nieuwe project wordt gemaakt:- Als de map niet bestaat, maakt de .NET CLI deze.
- De map waarin het project wordt gemaakt, fungeert als de standaardprojectnaam, naamruimte en assemblynaam (de naam van de gecompileerde uitvoer).
- Als de uitvoeroptie
-o <directory>niet wordt gebruikt, wordt de huidige map gebruikt.
-
Open de map MyWebApp van het project.
De structuur van het project onderzoeken
De inhoud van de projectmap MyWebApp wordt weergegeven in Visual Studio Code Explorer:
De volgende secties bevatten een overzicht van de hoofdprojectmappen en bestanden van het lege ASP.NET Core-project:
Het projectbestand MyWebApp.csproj
Het .csproj-projectbestand wordt gebruikt voor het volgende:
- Configureren hoe u het project bouwt
- Opgeven welke versie van .NET moet worden gericht
- Projectafhankelijkheden beheren
Het .sln-oplossingsbestand
Wanneer een ASP.NET Core-project wordt gemaakt of geopend in Visual Studio Code (met de C# Dev Kit-extensie), wordt er een [projectnaam].sln oplossingsbestand gemaakt. Het [projectnaam].sln oplossingsbestand bevat informatie voor een of meer gerelateerde projecten, waaronder buildgegevens, instellingen en diverse bestanden die niet aan één bepaald project zijn gekoppeld.
De obj-map
De obj map bevat tussenliggende bestanden die worden gebruikt door het buildsysteem, inclusief gecompileerde objectbestanden die zijn gegenereerd op basis van de bronbestanden. De uiteindelijke build-uitvoer wordt in een bin map geplaatst die tijdens het buildproces is gemaakt.
Het bestand Eigenschappen/launchSettings.json
Het bestand Properties/launchSettings.json bevat configuratiegegevens voor de wijze waarop de app tijdens de ontwikkeling wordt gestart. Deze instellingen omvatten de applicationUrl eigenschap, die de hoofd-URL aangeeft die de app gebruikt, zoals https://localhost:{port}, waar {port} een willekeurig lokaal poortnummer is toegewezen wanneer het project wordt gemaakt.
Het bestandlaunchSettings.json bevat de volgende configuratie:
{
"$schema": "https://json.schemastore.org/launchsettings.json",
"profiles": {
"http": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "http://localhost:5218",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
},
"https": {
"commandName": "Project",
"dotnetRunMessages": true,
"launchBrowser": true,
"applicationUrl": "https://localhost:7140;http://localhost:5218",
"environmentVariables": {
"ASPNETCORE_ENVIRONMENT": "Development"
}
}
}
}
Het bestand Program.cs
Het Program.cs-bestand fungeert als het toegangspunt voor een ASP.NET Core-app en heeft verschillende belangrijke doeleinden, waaronder:
- Hostconfiguratie: hiermee configureert u de host, inclusief het instellen van de webserver.
- Serviceregistratie: voegt services toe aan de functionaliteit van de app, zoals databasecontexten, logboekregistratie en gespecialiseerde services voor specifieke frameworks.
- Middleware-pijplijnconfiguratie: definieert de aanvraagafhandelingspijplijn van de app als een reeks middleware-exemplaren.
- Omgevingsconfiguratie: stelt omgevingsspecifieke instellingen in voor ontwikkeling, fasering en productie.
In het nieuwe lege ASP.NET Core-project dat u hebt gemaakt, bevat het Program.cs bestand de volgende minimale code:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
app.MapGet("/", () => "Hello World!");
app.Run();
Met de volgende regels code in dit bestand maakt u een WebApplicationBuilder met vooraf geconfigureerde standaardinstellingen en bouwt u de app:
var builder = WebApplication.CreateBuilder(args);
var app = builder.Build();
De app.MapGet() methode definieert rechtstreeks een eindpunt dat HTTP GET-aanvragen verwerkt:
app.MapGet("/", () => "Hello World!");
app.MapGet("/"): Definieert een route voor de HTTP GET-aanvraag. Hiermee / wordt aangegeven dat deze route reageert op de aanvragen die zijn gedaan met de hoofd-URL van de app. Waar is bijvoorbeeld http://localhost:{port}/{port} een willekeurig toegewezen poortnummer dat is toegewezen in het bestand Properties/launchSettings.json bij het maken van het project.
() => "Hello World!": Een lambda-expressie die fungeert als de aanvraaghandler. Wanneer er een GET-aanvraag wordt gedaan naar de hoofd-URL, wordt deze lambda-expressie uitgevoerd en wordt de tekenreeks 'Hallo wereld!' geretourneerd