Het ASP.NET Core project onder de loep
Home

Het ASP.NET Core project onder de loep

Het ASP.NET Core project onder de loep

Laten we eens kijken naar de inhoud van het project, dat we in Een ASP.NET Core project maken gemaakt hebben, om een beter begrip te krijgen van hoe ASP.NET Core werkt.

Het projectbestand .csproj

Het eerste bestand, dat we bekijken, is het projectbestand zelf - het apsdotnet.csproj bestand.

<Project Sdk="Microsoft.NET.Sdk.Web">
  <PropertyGroup>
    <TargetFramework>netcoreapp2.0</TargetFramework>
  </PropertyGroup>
  <ItemGroup>
    <PackageReference Include="Microsoft.AspNetCore.All" Version="2.0.0" />
  </ItemGroup>
  <ItemGroup>
    <DotNetCliToolReference Include="Microsoft.VisualStudio.Web.CodeGeneration.Tools" Version="2.0.0" />
  </ItemGroup>
</Project>

Dit bestand vertelt MSBuild hoe het project wordt gebouwd - van welke pakketten het afhankelijk is, welke versie van .NET Core te targeten, enzovoort. In vorige versies van .NET Core was dit projectbestand veel groter. .NET Core 2.0 heeft veel moeite gestoken in het korter, eenvoudiger en leesbaarder maken van .csproj-bestanden. Bronbestanden moeten niet langer expliciet moeten worden vermeld. De .NET Core SDK compileert automatisch alle .cs-bestanden die in de map van het projectbestand staan of in een directory onder de .csproj-directory. Op dezelfde manier zullen eventuele .resx-bestanden worden ingebed als bronnen. Als je liever niet alle .cs-bestanden wilt compileren, kanu ze uit de Compile ItemGroup verwijderen of de standaard compile-items volledig uitschakelen door de eigenschap EnableDefaultCompileItems op false te zetten.

Het element <PackageReference> in het midden van het .csproj-bestand verwijst naar een NuGet-pakket waarvan het project afhankelijk is. Vanaf ASP.NET Core 2.0 dat u nu standaard slechts één meta-pakket (Microsoft.AspNetCore.All). Dit pakket bevat alle andere Microsoft.AspNetCore-pakketten in één korte referentie en maakt ASP.NET Core 2.0 projectbestanden veel kleiner dan projectbestanden van vroegere versies. Extra afhankelijkheden (dependancies) van NuGet kunnen worden toegevoegd door meer <PackageReference> -elementen toe te voegen, door gebruik te maken van de gebruikersinterface van Visual Studio NuGet Package, of met de .NET CLI dotnet add opdracht.

De Web Host creëren en runnen

Program.cs bevat het ingangspunt van de applicatie. ASP.NET Core-apps zijn net als console-applicaties en hebben een Main-methode die uitgevoerd wordt de app wordt geöpend.
De belangrijkste methoden zijn vrij eenvoudig. Ze maken een IWebHost-object en starten die met Run op.

using System;
using Microsoft.AspNetCore;
using Microsoft.AspNetCore.Hosting;
using Microsoft.Extensions.Configuration;
using Microsoft.Extensions.Logging;

namespace aspdotnet
{
    public class Program
    {
        public static void Main(string[] args)
        {
            BuildWebHost(args).Run();
        }

        public static IWebHost BuildWebHost(string[] args) =>
            WebHost.CreateDefaultBuilder(args)
                .UseStartup<Startup>()
                .UseUrls("http://0.0.0.0:8080")
                .Build();
    }
}

In Windows is is http://localhost:5000, de default url die aan je app wordt toegekend. Op Cloud9 moet je die default url wijzigen omdat Cloud9 app's alleen luistert naar poort 8080. Open het bestand met de naam Program.cs en wijzig de url waarop je app luistert door de gemarkeerde regel toe te voegen:

JI
2017-09-21 15:27:24