|
|
Publisert 2019-9-28 16:38:47
|
|
|
|

For noen dager siden lanserte Microsoft .NET Core 3.0, og en av de største forbedringene er støtte for Windows-skrivebordsapplikasjoner (kun Windows). Ved å bruke .NET Core 3.0 SDK Windows Desktop Component kan du portere Windows Forms og Windows Presentation Foundation (WPF)-applikasjoner. For å være tydelig: Windows-skrivebordskomponenter støttes og inkluderes kun på Windows.
SDK-nedlastingsadresse:Innloggingen med hyperkoblingen er synlig.
Lenker for å introdusere .NET Core-funksjoner:
Innloggingen med hyperkoblingen er synlig.
Innloggingen med hyperkoblingen er synlig.
Funksjoner inkluderer følgende:
- Bruk C# for å bygge rike, interaktive klient-webapper.
- Bruk gRPC for å lage høyytelses backend-tjenester.
- SignalR støtter nå automatisk gjentilkobling og klient-til-server-flyter.
- Bruk OpenAPI-dokumentasjon for å generere sterkt typet klientkode for web-API-er.
- Endepunktsruting er integrert gjennom rammeverket.
- Kestrel har HTTP/2 aktivert som standard.
- Integrert web-API og autentisering på én side for apper.
- Sertifikater og Kerberos-autentisering støttes.
- Integrer den nye System.Text.Json serialiseren.
- Den nye universelle hostingen setter opp felles administrerte tjenester som avhengighetsinjeksjon, konfigurasjon og logging.
- En ny Worker Service-mal for å bygge langsiktige tjenester.
- Nye EventCounters opprettes for forespørsler per sekund, totale, nåværende og mislykkede forespørsler.
- Oppstartsfeil som er hostet i IIS rapporteres nå til Windows Event Log.
- Be om pipeline-integrasjon System.IO.Pipelines.
- Ytelsesforbedringer på tvers av hele teknologistacken.
La oss lage et nytt .NET Core 3.0-konsollprosjekt med VS 2019, som vist i figuren nedenfor:
Ved å referere til Newtonsoft.Json-pakken, skriv noen linjer kode, som følger:
Vi høyreklikker på VS Regenerate, åpner deretter bin-mappen til prosjektet, og oppdager at flere filer vil bli generert, inkludert :demo1.exe og Newtonsoft.Json.dll filer.
Publiser en enkeltfil kjørbar fil
Metode 1:
Kjør følgende kommando i prosjektkatalogen:
Vi åpner mappen C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64, og vi finner at mange DLL-filer genereres og at det finnes en publiser-mappe.
Gå til publiseringsmappen,Størrelsen på visnings demo1.exe er 66M, som er samme størrelse som alle filer utenfor mappen, som vist i figuren nedenfor:
Den genererte enkeltkjørbare filen inneholder faktisk miljøet som kreves for å kjøre programmet, og krever ikke at målmaskinen installerer SDK-en, og ulempen er at filstørrelsen blir svært stor.
Metode 2:
Høyreklikk vs rediger prosjektfilen og legg til PublishSingleFile-nodekonfigurasjonen, koden er som følger:
Høyreklikk deretter og klikk på "Publiser"-knappen.
Samlingslenker
.NET core 3.0 SDK leveres med et verktøy som kan redusere størrelsen på appen din ved å analysere IL og klippe ubrukte assemblies.
Selvstendige apper inkluderer alt du trenger for å kjøre kode uten å måtte installere .NET på hoveddatamaskinen din. Men ofte trenger appen bare en brøkdel av rammeverket for å kjøre, og andre ubrukte biblioteker kan fjernes.
.NET Core inkluderer nå en innstilling som skanner appens IL ved hjelp av IL linker-verktøyet. Dette verktøyet vil oppdage hvilken kode som trengs, og deretter klippe ubrukte biblioteker. Dette verktøyet kan betydelig redusere distribusjonsstørrelsen på noen applikasjoner.
For å aktivere dette verktøyet, bruk <PublishTrimmed> innstillingene i prosjektet ditt og publiser en selvstendig app:
.NET Core CLI
Vi genererte nettopp en 66M-fil, og etter å ha lagt til konfigurasjonen,Den ble til 35M, noe som reduserte belegget til 30 millioner。
Sørg for å vurdere applikasjoner eller rammeverk som bruker refleksjoner eller relaterte dynamiske funksjoner (inkludert ASP.NET Core og WPF)Vanligvis skadet under kutting。 Denne korrupsjonen oppstår fordi lenkeren ikke er klar over denne dynamiske oppførselen og ikke kan bestemme hvilke rammetyper som kreves for refleksjon。 IL-linkerverktøyet kan konfigureres til å oppdage denne situasjonen.
Viktigst av alt, sørg for å påføre det etter kuttingGjennomfør tester。
(Slutt)
|
Foregående:Løs at ajax ikke kan tildele verdier til eksterne variablerNeste:C-språket er så kraftig, hvilket språk er det skrevet på?
|