Publicera .NET-appar

Slutförd

Kodning av en app med ASP.NET Core skiljer sig från att utforma en statisk webbplats med HTML, CSS och JavaScript. En statisk webbplats kan distribueras till alla webbservrar som stöder statiska filer. Webbservern behöver inte bearbeta statiska filer. det tjänar dem helt enkelt via HTTP. När en webbläsare begär en resurs skickar webbservern helt enkelt tillbaka filen till webbläsaren.

En ASP.NET Core-app är å andra sidan ett dynamiskt webbprogram. Den körs som ett program på webbservern. När användarens webbläsare skickar en begäran till webbservern kör webbservern appen för att generera ett svar och sedan skickar webbservern tillbaka svaret till webbläsaren.

Att publicera en .NET-app är processen att förbereda appen för distribution på en server. När du publicerar en .NET-app paketeras din app och dess beroenden i en mapp som enkelt kan distribueras. Den publicerade appen innehåller inga källkodsfiler, men den innehåller alla filer som behövs för att köra appen, inklusive de kompilerade sammansättningarna (DLL:er), konfigurationsfiler och andra tillgångar som appen behöver. Appen kan sedan distribueras till en webbserver, molntjänst eller annan värdmiljö.

Typer av distributioner

När du publicerar en .NET-app kan du välja mellan två olika typer av distributioner: ramverksberoende och fristående. Vilken typ av distribution du väljer påverkar hur din app paketeras och distribueras.

Ramverksberoende distribution

En animering som visar hur en ramverksberoende distribution beror på förekomsten av .NET-körningen på måldatorn.

En ramverksberoende distribution innehåller endast appens filer och beroenden. Den innehåller inte .NET-körningen. I stället måste måldatorn ha .NET-körningen installerad för att kunna köra appen. Den här typen av distribution är standard för .NET-appar.

Fristående distribution

En animering som visar hur en fristående distribution innehåller .NET-körningen med appen.

En fristående distribution innehåller appens filer, beroenden och .NET-körningen. .NET-körningen ingår i appen, så måldatorn behöver inte ha .NET-körningen installerad för att kunna köra appen. Att inkludera körningen gör fristående distributioner större än ramverksberoende distributioner, men det gör dem också mer portabla. Det gör det också enklare att köra flera versioner av .NET-körningen sida vid sida på samma dator.

Välja en distributionstyp

Vilken distributionstyp du väljer beror på appens krav och målmiljön. Tänk på följande faktorer när du väljer en distributionstyp:

Distributionstyp

Fördelar

Nackdelar

Ramverksberoende

  • Mindre distributionsstorlek
  • Snabbare distributionstider
  • Använder .NET-körningen installerad på måldatorn, oavsett operativsystem
  • Kräver att .NET-körningen installeras på måldatorn
  • Kräver hantering av .NET-körningsversionerna som är installerade på måldatorn

Fristående

  • Du behöver inte installera .NET-körning på måldatorn
  • Enklare att köra flera versioner av .NET sida vid sida
  • Större distributionsstorlek
  • Långsammare distributionstider
  • .NET-körningsuppdateringar måste distribueras med appen

Var du ska distribuera din app

När du har publicerat din app kan du distribuera den till alla miljöer som stöder ASP.NET Core. Här är några alternativ:

Tornfalk

Som standard körs ASP.NET Core-appar i ASP.NET Cores inbyggda webbserver, Kestrel. Kestrel är plattformsoberoende och finjusterad för höga prestanda. Den stöder alla moderna webbserverfunktioner, inklusive HTTPS, HTTP/2, HTTP/3 och WebSockets. Det är också anpassningsbart och utökningsbart, så du kan konfigurera det så att det uppfyller appens behov. Kestrel är den rekommenderade webbservern för ASP.NET Core-appar.

Eftersom Kestrel är inbyggt i ASP.NET Core kan du distribuera din app till alla datorer som kan köra .NET, inklusive Windows, macOS och Linux. Kestrel fungerar bra på egen hand, men appar som körs på Kestrel distribueras ofta bakom en omvänd proxyserver, till exempel Internet Information Services (IIS), Nginx eller Apache. Den omvända proxyservern hanterar inkommande begäranden från Internet och vidarebefordrar dem till Kestrel. På så sätt kan du dra nytta av den omvända proxyserverns funktioner, till exempel belastningsutjämning, cachelagring och SSL-avslutning.

Internet Information Services (IIS)

Om du distribuerar till Windows kan du vara värd för din ASP.NET Core-app i IIS. För att göra detta måste du installera ASP.NET Core-modulen för IIS. Modulen vidarebefordrar begäranden från IIS till Kestrel, som kör din app. På så sätt kan du dra nytta av IIS-funktioner, till exempel processhantering, loggning och säkerhet.

Behållare

Om du distribuerar till en containerbaserad miljö kan du paketera din ASP.NET Core-app som en Docker-container. På så sätt kan du köra din app i alla containerkörningar som stöder Docker, till exempel Docker Desktop, Docker Enterprise eller Kubernetes. Containrar är portabla och skalbara, så du kan köra appen på alla datorer som har stöd för Docker, oavsett det underliggande operativsystemet.

Blått

Om du distribuerar till Azure kan du vara värd för din ASP.NET Core-app i Azure App Service eller Azure Container Apps. Olika verktyg gör det enkelt att distribuera din app till Azure från kommandoraden. Dessa verktyg innefattar:

  • Azure Tools-tillägget för Visual Studio Code
  • Visual Studio
  • Azure CLI (kommandoradsgränssnittet för Azure)
  • Azure Developer CLI (azd)