asp.net-coreAan de slag met asp.net-core


Opmerkingen

.NET Core is een ontwikkelplatform voor algemene doeleinden dat wordt beheerd door Microsoft en de .NET-gemeenschap op GitHub. Het is platformonafhankelijk en ondersteunt Windows, macOS en Linux en kan worden gebruikt in scenario's voor apparaten, cloud en embedded / IoT.

De volgende kenmerken definiëren het beste .NET Core:

  • Flexibele inzetbaarheid: kan worden opgenomen in uw app of zij-aan-zij gebruikers- of machine-breed worden geïnstalleerd.
  • Cross-platform: draait op Windows, macOS en Linux; kan worden overgezet naar andere besturingssystemen. De ondersteunde besturingssystemen (OS), CPU's en applicatiescenario's zullen in de loop van de tijd groeien, geleverd door Microsoft, andere bedrijven en particulieren.
  • Opdrachtregelprogramma's: alle productscenario's kunnen worden uitgevoerd vanaf de opdrachtregel.
  • Compatibel: .NET Core is compatibel met .NET Framework, Xamarin en Mono, via de - .NET Standard Library.
  • Open source: het .NET Core-platform is open source, met MIT- en Apache 2-licenties. Documentatie is gelicentieerd onder CC-BY. .NET Core is een .NET Foundation-project.
  • Ondersteund door Microsoft: .NET Core wordt ondersteund door Microsoft, per .NET Core-ondersteuning

versies

Versie Release-opmerkingen Publicatiedatum
RC1 * 1.0.0-RC1 2015/11/18
RC2 * 1.0.0-RC2 2016/05/16
1.0.0 1.0.0 2016/06/27
1.0.1 1.0.1 2016/09/13
1.1 1.1 2016/11/16

Maak een nieuw project vanaf de opdrachtregel

Het is mogelijk om een nieuw ASP.NET Core-project volledig vanaf de opdrachtregel te maken met de opdracht dotnet .

dotnet new web
dotnet restore
dotnet run
 

dotnet new web scaffolds een nieuw "leeg" webproject. De web parameter vertelt het dotnet instrument om het gebruik van ASP.NET Core Empty sjabloon. Gebruik dotnet new -all om alle beschikbare sjablonen te tonen die momenteel zijn geïnstalleerd. Andere belangrijke sjablonen bevatten console , classlib , mvc en xunit .

Nadat de sjabloon is ondersteund, kunt u de pakketten herstellen die nodig zijn om het project uit te voeren ( dotnet restore ) en compileren en starten ( dotnet run ).

Zodra het project wordt uitgevoerd, is het beschikbaar op de standaardpoort: http: // localhost: 5000

Installatie en instellingen

Visual Studio installeren

Als u Visual Studio niet hebt geïnstalleerd, kunt u de gratis Visual Studio Community Edition hier downloaden . Als u het al hebt geïnstalleerd, kunt u doorgaan naar de volgende stap.

Een ASP.NET Core MVC-toepassing maken.

  1. Open Visual Studio.
  2. Selecteer Bestand> Nieuw project.
  3. Selecteer Web in de taal van uw keuze in het gedeelte Sjablonen aan de linkerkant.
  4. Kies het gewenste projecttype in het dialoogvenster.
  5. Optioneel: kies een .NET Framework dat u wilt targeten
  6. Geef uw project een naam en geef aan of u een oplossing voor het project wilt maken.
  7. Klik op OK om het project te maken.

voer hier de afbeeldingsbeschrijving in

U krijgt een ander dialoogvenster om de sjabloon te selecteren die u voor het project wilt gebruiken:

voer hier de afbeeldingsbeschrijving in

Elk van de beschrijvingen spreekt voor zich. Selecteer voor dit eerste project de webtoepassing , die alle standaardconfiguraties, authenticatie en sommige bestaande inhoud zal bevatten.

Aangezien dit een introductietoepassing is en geen beveiliging of verificatie vereist, kunt u de verificatieoptie wijzigen in Geen verificatie aan de rechterkant van het dialoogvenster en op OK klikken om het project te maken .

U zou het nieuwe project dan in Solution Explorer moeten zien:

voer hier de afbeeldingsbeschrijving in

Druk op F5 om de toepassing uit te voeren en een foutopsporingssessie te starten, waarmee de toepassing wordt gestart in uw standaardbrowser:

voer hier de afbeeldingsbeschrijving in

U kunt nu zien dat uw project lokaal operationeel is en klaar is als startpunt voor het bouwen van uw applicatie.

Minimale ASP.NET Core Web API met ASP.NET Core MVC

Met ASP.NET Core 1.0 zijn het MVC- en Web API-framework samengevoegd tot één framework genaamd ASP.NET Core MVC. Dit is een goede zaak, omdat MVC en Web API veel functionaliteit delen, maar er waren altijd subtiele verschillen en code-duplicatie.

Het samenvoegen van deze twee in een kader maakte het echter ook moeilijker om elkaar van elkaar te onderscheiden. Microsoft.AspNet.WebApi vertegenwoordigt bijvoorbeeld het Web API 5.xx-framework, niet het nieuwe. Maar wanneer u Microsoft.AspNetCore.Mvc (versie 1.0.0 ) 1.0.0 , krijgt u het volledige pakket. Dit bevat alle out-of-the-box functies die het MVC-framework biedt. Zoals Razor, taghelpers en modelbinding.

Als u alleen een web-API wilt bouwen, hebben we niet al deze functies nodig. Dus, hoe bouwen we een minimalistische web-API? Het antwoord is: Microsoft.AspNetCore.Mvc.Core . In de nieuwe wereld is MVC opgesplitst in meerdere pakketten en dit pakket bevat alleen de kerncomponenten van het MVC-framework, zoals routing en autorisatie.

Voor dit voorbeeld gaan we een minimale MVC-API maken. Inclusief een JSON-formatter en CORS. Maak een lege ASP.NET Core 1.0-webtoepassing en voeg deze pakketten toe aan uw project.json:

"Microsoft.AspNetCore.Mvc.Core": "1.0.0",
"Microsoft.AspNetCore.Mvc.Cors": "1.0.0",
"Microsoft.AspNetCore.Mvc.Formatters.Json": "1.0.0"
 

Nu kunnen we MVC registreren met AddMvcCore() in de opstartklasse:

public void ConfigureServices(IServiceCollection services)
{
    services.AddMvcCore()
            .AddCors()
            .AddJsonFormatters();
}
 

AddMvcCore retourneert een IMvcCoreBuilder instantie waarmee verder kan worden gebouwd. Het configureren van de middleware is hetzelfde als normaal:

public void Configure(IApplicationBuilder app)
{
    app.UseCors(policy =>
    {
        policy.AllowAnyOrigin();
    });
    app.UseMvc();
}
 

Controllers

De 'oude' Web API wordt geleverd met zijn eigen controller-basisklasse: ApiController . In de nieuwe wereld is er niet zoiets bestaat, alleen de standaard Controller klasse. Helaas is dit een vrij grote basisklasse en het is gebonden aan modelbinding, views en JSON.NET.

Gelukkig hoeven in het nieuwe framework controller-klassen niet uit Controller te komen om door het routeringsmechanisme te worden opgepikt. Alleen de naam toevoegen met Controller is voldoende. Hiermee kunnen we onze eigen controller-basisklasse bouwen. Laten we het ApiController noemen, alleen voor de oude tijden:

/// <summary>
/// Base class for an API controller.
/// </summary>
[Controller]
public abstract class ApiController
{
    [ActionContext]
    public ActionContext ActionContext { get; set; }

    public HttpContext HttpContext => ActionContext?.HttpContext;

    public HttpRequest Request => ActionContext?.HttpContext?.Request;

    public HttpResponse Response => ActionContext?.HttpContext?.Response;

    public IServiceProvider Resolver => ActionContext?.HttpContext?.RequestServices;
}
 

Het kenmerk [Controller] geeft aan dat het type of een afgeleid type door het standaardcontroledetectiemechanisme als een controller wordt beschouwd. Het kenmerk [ActionContext] geeft aan dat de eigenschap moet worden ingesteld met de huidige ActionContext wanneer MVC de controller maakt. De ActionContext biedt informatie over het huidige verzoek.

ASP.NET Core MVC biedt ook een ControllerBase klasse die een controller-basisklasse biedt zonder ondersteuning voor weergaven. Het is echter nog steeds veel groter dan het onze. Gebruik het als u het handig vindt.

Conclusie

We kunnen nu een minimale web-API bouwen met behulp van het nieuwe ASP.NET Core MVC-framework. Dankzij de modulaire pakketstructuur kunnen we de pakketten die we nodig hebben eenvoudig invoeren en een eenvoudige en eenvoudige applicatie maken.

Instellingsomgevingsvariabele in ASP.NET Core [Windows]

=> Origineel bericht <=

ASP.NET Core gebruikt de omgevingsvariabele ASPNETCORE_ENVIRONMENT om de huidige omgeving te bepalen. Als u uw toepassing standaard uitvoert zonder deze waarde in te stellen, wordt deze standaard ingesteld op de Production .

> dotnet run
Project TestApp (.NETCoreApp,Version=v1.0) was previously compiled. Skipping compilation.

Hosting environment: Production  
Content root path: C:\Projects\TestApp  
Now listening on: http://localhost:5000  
Application started. Press Ctrl+C to shut down. 
 

De omgevingsvariabele instellen in Windows

Op de opdrachtregel

U kunt eenvoudig een omgevingsvariabele instellen vanaf een opdrachtprompt met behulp van de opdracht setx.exe in Windows. Je kunt het gebruiken om eenvoudig een gebruikersvariabele in te stellen:

>setx ASPNETCORE_ENVIRONMENT "Development"

SUCCESS: Specified value was saved.
 

Merk op dat de omgevingsvariabele niet is ingesteld in het huidige open venster. U moet een nieuwe opdrachtprompt openen om de bijgewerkte omgeving te zien. Het is ook mogelijk om systeemvariabelen in te stellen (in plaats van alleen gebruikersvariabelen) als u een beheeropdrachtprompt opent en de schakeloptie / M toevoegt:

>setx ASPNETCORE_ENVIRONMENT "Development" /M

SUCCESS: Specified value was saved.
 

PowerShell gebruiken Als alternatief kunt u PowerShell gebruiken om de variabele in te stellen. In PowerShell, evenals de normale gebruikers- en systeemvariabelen, kunt u ook een tijdelijke variabele maken met de opdracht $Env: :

$Env:ASPNETCORE_ENVIRONMENT = "Development"
 

De gemaakte variabele duurt alleen voor de duur van uw PowerShell-sessie - zodra u het venster sluit, keert de omgeving terug naar de standaardwaarde.

Als alternatief kunt u de gebruikers- of systeemomgevingsvariabelen rechtstreeks instellen. Met deze methode worden de omgevingsvariabelen in de huidige sessie niet gewijzigd, dus u moet een nieuw PowerShell-venster openen om uw wijzigingen te zien. Net als voorheen vereist het wijzigen van de systeem (machine) variabelen beheerderstoegang

[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development", "User")
[Environment]::SetEnvironmentVariable("ASPNETCORE_ENVIRONMENT", "Development", "Machine")
 

Het Windows-configuratiescherm gebruiken Als u geen fan bent van de opdrachtprompt, kunt u uw variabelen eenvoudig bijwerken met uw muis! Klik op de Windows-startmenuknop (of druk op de Windows-toets), zoek naar environment variables en kies Bewerk omgeving variabelen voor uw account: voer hier de afbeeldingsbeschrijving in

Als u deze optie selecteert, wordt het dialoogvenster Systeemeigenschappen geopend voer hier de afbeeldingsbeschrijving in

Klik op Omgevingsvariabelen om de lijst met huidige omgevingsvariabelen op uw systeem te bekijken. voer hier de afbeeldingsbeschrijving in

Ervan uitgaande dat u nog geen variabele ASPNETCORE_ENVIRONMENT , klikt u op de knop Nieuw ... en voegt u een nieuwe omgevingsvariabele toe voor de account: voer hier de afbeeldingsbeschrijving in Klik op OK om al uw wijzigingen op te slaan. U moet opdrachtvensters opnieuw openen om ervoor te zorgen dat de nieuwe omgevingsvariabelen worden geladen.

Visual Studio-code gebruiken om de kernapplicatie Cross plateform aspnet te ontwikkelen

Met AspNetCore kunt u de applicatie op elk platform ontwikkelen, inclusief Mac, Linux, Window en Docker.

Installatie en setup

  1. Installeer visuele Studio Code vanaf hier
  2. C # -extensie toevoegen
  3. Installeer dot net core sdk. U kunt vanaf hier installeren

Nu heb je alle tools beschikbaar. Om de applicatie te ontwikkelen. Nu heb je een steigeroptie nodig. Daarvoor zou je moeten overwegen om Yeoman te gebruiken. Om Yeoman te installeren

  1. NPM installeren. Hiervoor heeft u Node op uw machine nodig. Installeer vanaf hier

  2. Installeer Yeoman met behulp van NPM

    npm installeren -g yo

  3. Installeer nu de aspnet-generator

    npm installeer -g generator-aspnet

Nu hebben we alle instellingen op uw machine. Laten we eerst een nieuw project maken met de basisopdracht DotNetCore en vervolgens een nieuw project maken met Yo.

Nieuw project met opdrachtregel

  1. Maak een nieuwe projectmap

    mkdir CoreApplication cd CoreApplication

  2. Steiger een zeer eenvoudig dotnet-project met de standaard opdrachtregeloptie

    dotnet Nieuw

Nieuw project

  1. Herstel de pakketten en voer de toepassing uit

    dotNet herstel dotnet run voer hier de afbeeldingsbeschrijving in

Gebruik Yeoman als steigeroptie

Maak een projectmap en voer het Yo-commando uit

yo aspnet
 

Yeoman zal enkele input vragen zoals Projecttype, Projectnaam enz. Zoals

voer hier de afbeeldingsbeschrijving in

voer hier de afbeeldingsbeschrijving in

Herstel nu de pakketten door de opdracht dotnet restore uit te voeren en voer de toepassing uit

Gebruik VS Code om de applicatie te ontwikkelen

Voer de visuele studiocode uit zoals voer hier de afbeeldingsbeschrijving in

Open nu de bestanden en voer de toepassing uit. U kunt ook naar de extensie zoeken voor uw hulp.