Muutama päivä sitten Microsoft julkaisi .NET Core 3.0:n, ja yksi suurimmista parannuksista on tuki Windows-työpöytäsovelluksille (vain Windows). Käyttämällä .NET Core 3.0 SDK Windows Desktop Componentia voit portata Windows Forms- ja Windows Presentation Foundation (WPF) -sovelluksia. Selvennykseksi: Windowsin työpöytäkomponentit ovat tuettuja ja sisältyvät vain Windowsiin.
SDK-latausosoite:Hyperlinkin kirjautuminen on näkyvissä.
Linkkejä .NET Core -ominaisuuksien esittelyyn:
Hyperlinkin kirjautuminen on näkyvissä.
Hyperlinkin kirjautuminen on näkyvissä.
Ominaisuuksiin kuuluvat seuraavat:
- Käytä C#:a rakentaaksesi rikkaita, interaktiivisia asiakasverkkosovelluksia.
- Käytä gRPC:tä luodaksesi suorituskykyisiä taustapalveluita.
- SignalR tukee nyt automaattista uudelleenyhteyttä ja asiakas-palvelin-virtoja.
- Käytä OpenAPI-dokumentaatiota vahvasti tyypitetyn asiakaskoodin tuottamiseen Web-API:lle.
- Päätepisteiden reititys integroidaan kehyksen kautta.
- Kestrelissä HTTP/2 on oletuksena käytössä.
- Integroitu verkko-API ja yksisivuinen sovelluksen todennustuki.
- Varmenteet ja Kerberos-tunnistautuminen ovat tuettuja.
- Integroi uusi System.Text.Json -sarjaloisto.
- Uusi universaali isännöinti luo yhteisiä hallittuja palveluita, kuten riippuvuuksien injektion, konfiguroinnin ja lokimisen.
- Uusi Worker Service -mallipohja pitkäaikaisten palveluiden rakentamiseen.
- Uusia EventLaskureita luodaan pyynnöille sekunnissa, kokonaismäärälle, ajantasaisille ja epäonnistuneille pyynnöille.
- IIS:ssä isännöidyt käynnistysvirheet raportoidaan nyt Windowsin tapahtumalokille.
- Pyydä putkistointegraatiota System.IO.Pipelines.
- Suorituskyvyn parannuksia koko teknologiapinossa.
Luodaan uusi .NET Core 3.0 -konsoliprojekti VS 2019:n kanssa, kuten alla olevassa kuvassa näkyy:
Viitaten Newtonsoft.json-pakettiin, kirjoita muutama koodirivi seuraavasti:
Klikkaamme hiiren oikealla VS Regeneratea, avaamme projektin bin-kansion, ja löydämme, että useita tiedostoja syntyy, mukaan lukien :demo1.exe- ja Newtonsoft.Json.dll-tiedostot.
Julkaise yksitiedostoinen suoritettava tiedosto
Menetelmä 1:
Suorita seuraava komento projektihakemistossa:
Avaamme kansion C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64, ja huomaamme, että paljon dll-tiedostoja on generoitu ja julkaisukansio on olemassa.
Mene julkaisukansioon,Katselu demo1.exe koko on 66M, mikä on sama koko kuin kaikilla kansion ulkopuolisilla tiedostoilla, kuten alla olevassa kuvassa näkyy:
Luotu yksittäinen suoritettava tiedosto sisältää itse asiassa ohjelman suorittamiseen tarvittavan ympäristön, eikä vaadi kohdetietokonetta asentamaan SDK:ta, ja haittapuolena on, että tiedostokoko kasvaa huomattavasti.
Menetelmä 2:
Hiiren oikea klikkaus vs muokkaa projektitiedostoa ja lisää PublishSingleFile-solmukonfiguraatio, koodi on seuraava:
Sitten napsauta hiiren oikealla ja klikkaa "Julkaise"-painiketta.
Assembly-linkit
.NET Core 3.0 SDK sisältää työkalun, joka voi pienentää sovelluksesi kokoa analysoimalla IL:ää ja leikkaamalla käyttämättömiä kokoonpanoja.
Itsenäiset sovellukset sisältävät kaiken, mitä tarvitset koodin ajamiseen ilman, että .NET:n tarvitsee asentaa pääkoneellesi. Monesti sovellus tarvitsee kuitenkin vain murto-osan kehyksestä toimiakseen, ja muita käyttämättömiä kirjastoja voidaan poistaa.
.NET Core sisältää nyt asetuksen, joka skannaa sovelluksesi IL:n IL-linkintyökalulla. Tämä työkalu tunnistaa, mitä koodia tarvitaan, ja leikkaa käyttämättömät kirjastot. Tämä työkalu voi merkittävästi pienentää joidenkin sovellusten käyttöönottokokoa.
Ota tämä työkalu käyttöön käyttämällä <PublishTrimmed> projektisi asetuksia ja julkaisemalla itsenäinen sovellus:
.NET Core CLI
Generoimme juuri 66M tiedoston, ja konfiguroinnin lisäämisen jälkeen,Se kasvoi 35 miljoonaksi, mikä vähensi 30 miljoonan käyttöasteen määrää。
Muista harkita sovelluksia tai kehyksiä, jotka käyttävät heijastuksia tai niihin liittyviä dynaamisia ominaisuuksia (mukaan lukien ASP.NET Core ja WPF).Yleensä vaurioituu leikkaamisen aikana。 Tämä korruptio johtuu siitä, että linkittäjä ei ole tietoinen tästä dynaamisesta käyttäytymisestä eikä pysty määrittämään, mitä kehystyyppejä tarvitaan heijastukseen。 IL-linkkityökalu voidaan konfiguroida havaitsemaan tämä tilanne.
Tärkeintä on, että levität sitä leikkaamisen jälkeenSuorita testejä。
(Loppu)
|