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

Mõni päev tagasi andis Microsoft välja .NET Core 3.0 ning üks suurimaid täiustusi on tugi Windowsi töölauarakendustele (ainult Windows). Kasutades .NET Core 3.0 SDK Windows Desktop Component'i, saate portida Windows Formsi ja Windows Presentation Foundation (WPF) rakendusi. Selguse huvides: Windowsi töölauakomponendid on toetatud ja kaasatud ainult Windowsis.
SDK allalaadimise aadress:Hüperlingi sisselogimine on nähtav.
Lingid .NET Core funktsioonide tutvustamiseks:
Hüperlingi sisselogimine on nähtav.
Hüperlingi sisselogimine on nähtav.
Funktsioonide hulka kuuluvad järgmised:
- Kasuta C#-d, et ehitada rikkalikke, interaktiivseid kliendi veebirakendusi.
- Kasuta gRPC-d kõrge jõudlusega taustateenuste loomiseks.
- SignalR toetab nüüd automaatset taasühendamist ja kliendi-serveri vooge.
- Kasuta OpenAPI dokumentatsiooni, et genereerida tugevalt tüübistatud kliendikoodi veebipõhiste API-de jaoks.
- Lõpp-punktide marsruutimine on integreeritud raamistiku kaudu.
- Kestrelil on vaikimisi HTTP/2 lubatud.
- Integreeritud veebipõhine API ja üheleheküljeline rakenduse autentimise tugi.
- Sertifikaadid ja Kerberos autentimine on toetatud.
- Integreeri uus System.Text.Json serialiseerija.
- Uus universaalne majutus loob ühised hallatavad teenused, nagu sõltuvuste süstimine, seadistamine ja logimine.
- Uus Töötajate Teeninduse mall pikaajaliste teenuste loomiseks.
- Uued EventLoendurid luuakse päringute arvu sekundis, kogu-, kehtivate ja ebaõnnestunud päringute jaoks.
- IIS-is majutatud käivitusvead raporteeritakse nüüd Windowsi sündmuste logisse.
- Taotle torujuhtme integratsiooni System.IO.Pipelines.
- Jõudluse paranemine kogu tehnoloogiaplatvormis.
Loome uue .NET Core 3.0 konsooliprojekti VS 2019-ga, nagu alloleval joonisel näidatud:
Viidates Newtonsoft.json paketile, kirjuta paar koodirida järgmiselt:
Me paremklõpsame VS Regenerate'il, avame projekti bin-kataloogi ja leiame, et genereeritakse mitu faili, sealhulgas :demo1.exe ja Newtonsoft.Json.dll failid.
Avalda ühe failiga käivitatav fail
Meetod 1:
Käivita järgmine käsk projekti kataloogis:
Avame kausta C:\Users\itsvse_pc\source\repos\demo1\demo1\bin\Debug\netcoreapp3.0\win10-x64 ja leiame, et on palju dll-faile genereeritud ning on olemas avaldamise kaust.
Mine avaldamise kausta,Vaatamis demo1.exe suurus on 66M, mis on sama suur kui kõigil failidel väljaspool kausta, nagu alloleval joonisel näidatud:
Genereeritud üksik täidetav fail sisaldab tegelikult programmi täitmiseks vajalikku keskkonda ega nõua sihtarvutilt SDK paigaldamist; puuduseks on faili suurus väga suur.
Meetod 2:
Paremklõps vs projektifaili muutmine ja PublishSingleFile sõlme konfiguratsiooni lisamine, kood on järgmine:
Seejärel paremklõpsa ja vajuta nuppu "Avalda".
Assamblee lingid
.NET core 3.0 SDK-ga tuleb kaasa tööriist, mis suudab vähendada sinu rakenduse suurust, analüüsides IL-d ja lõigates kasutamata assamblee.
Iseseisvad rakendused sisaldavad kõike, mida vajad koodi käivitamiseks ilma, et peaksid .NET oma põhiarvutisse installima. Kuid sageli vajab rakendus vaid murdosa raamistikust ning teised kasutamata teegid saab eemaldada.
.NET Core sisaldab nüüd seadet, mis skaneerib sinu rakenduse IL-i IL-i IL-i lingitööriista abil. See tööriist tuvastab, milline kood on vajalik, ja lõikab seejärel kasutamata teegid. See tööriist võib oluliselt vähendada mõnede rakenduste juurutusmahtu.
Selle tööriista lubamiseks kasuta <PublishTrimmed> oma projekti seadeid ja avalda iseseisev rakendus:
.NET Core CLI
Me genereerisime just 66M faili ja pärast konfiguratsiooni lisamist,See kasvas 35 miljoniks, vähendades hõivatust 30 miljoni võrra。
Kindlasti kaalu rakendusi või raamistikke, mis kasutavad peegeldusi või seotud dünaamilisi funktsioone (sh ASP.NET Core ja WPF).Tavaliselt kahjustatakse lõikamisel。 See rikkumine tekib, kuna linker ei ole sellest dünaamilisest käitumisest teadlik ega suuda kindlaks teha, millised raamitüübid on peegeldamiseks vajalikud。 IL linkeri tööriista saab seadistada selle olukorra tuvastamiseks.
Kõige tähtsam on kindlasti kanda see peale pärast lõikamistTestide läbiviimine。
(Lõpp)
|
Eelmine:Lahenda ajax, et välistele muutujatele ei saa väärtusi määrataJärgmine:C-keel on nii võimas, mis keeles see on kirjutatud?
|