asp.net-core Zelfstudie
Aan de slag met asp.net-core
Zoeken…
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 |
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.
- Open Visual Studio.
- Selecteer Bestand> Nieuw project.
- Selecteer Web in de taal van uw keuze in het gedeelte Sjablonen aan de linkerkant.
- Kies het gewenste projecttype in het dialoogvenster.
- Optioneel: kies een .NET Framework dat u wilt targeten
- Geef uw project een naam en geef aan of u een oplossing voor het project wilt maken.
- Klik op OK om het project te maken.
U krijgt een ander dialoogvenster om de sjabloon te selecteren die u voor het project wilt gebruiken:
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:
Druk op F5 om de toepassing uit te voeren en een foutopsporingssessie te starten, waarmee de toepassing wordt gestart in uw standaardbrowser:
U kunt nu zien dat uw project lokaal operationeel is en klaar is als startpunt voor het bouwen van uw applicatie.
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
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.
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
- Installeer visuele Studio Code vanaf hier
- C # -extensie toevoegen
- 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
NPM installeren. Hiervoor heeft u Node op uw machine nodig. Installeer vanaf hier
Installeer Yeoman met behulp van NPM
npm installeren -g yo
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
Maak een nieuwe projectmap
mkdir CoreApplication cd CoreApplication
Steiger een zeer eenvoudig dotnet-project met de standaard opdrachtregeloptie
dotnet Nieuw
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
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
Open nu de bestanden en voer de toepassing uit. U kunt ook naar de extensie zoeken voor uw hulp.
Instellingsomgevingsvariabele in ASP.NET Core [Windows]
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:
Als u deze optie selecteert, wordt het dialoogvenster Systeemeigenschappen geopend
Klik op Omgevingsvariabelen om de lijst met huidige omgevingsvariabelen op uw systeem te bekijken.
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: 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.