Ohjelmointi

Mitä uutta on .NET 5: ssä

Microsoftin toinen .NET 5 -julkaisukandidaatti saapui 13. lokakuuta, jolloin .NET Frameworkin ja .NET Core: n fuusiointi oli askel lähempänä valmistumista. Uusi yhtenäinen .NET-alustan on määrä olla yleisesti käytettävissä 10. marraskuuta 2020.

Microsoft kuvaa Release Candidate 2: tä melkein lopullisena julkaisuna ja viimeisenä kahdesta RC: stä. Ensimmäinen RC julkaistiin 13. syyskuuta. .NET 5.0 -julkaisukandidaatti voidaan ladata osoitteesta dotnet.microsoft.com.

.NET 5: n korkean tason tavoitteisiin kuuluu yhtenäisen .NET SDK -kokemuksen tarjoaminen yhdellä BCL: llä (perusluokan kirjasto) kaikissa .NET 5 -sovelluksissa ja tuki sekä alkuperäisille että verkkosovelluksille useissa käyttöjärjestelmissä. Yksi .NET 5: n natiivisovellusprojekti tukee sellaisia ​​kohteita kuin Windows, Microsoft Duo (Android) ja Apple iOS käyttämällä natiivia ohjaimia näillä alustoilla.

.NET 5: n muihin tavoitteisiin kuuluu tuki tehokkaiden pilvisovellusten rakentamiseen, nopeammat algoritmit BCL: ssä, parempi tuki säilöille ajon aikana ja tuki HTTP3: lle. .NET 5.0 sisältää tuen WebAssembly-binaarimuodolle Mono-ajonaikaisen ja .NET-kirjastojen kautta. Mukana on myös joukko mitätöitäviä viitetyyppimerkintöjä.

.NET 5 lupaa myös antaa kehittäjien löytää automaattisesti piileviä vikoja koodista. Muita uusia ominaisuuksia ovat Puoli tyyppi, binäärinen liukuluku, joka vie 16 bittiä, ja kokoonpanon trimmaus, joka leikkaa käyttämättömät kokoonpanot pienentääkseen sovellusten kokoa. Mukautettu leikkaus on myös korostettu. Uusi mallinnus C # 9: ssä kattaa relaatio-, loogiset ja yksinkertaiset tyyppimallit. ClickOnce-asennusvaihtoehtoa tuetaan nyt .NET 5.0 Windows- ja .NET Core 3.1 -sovelluksille.

Uusi .NET-alusta lupaa myös suorituskyvyn parannuksia. 21. heinäkuuta saapuneeseen esikatseluun 7 liittyvässä tiedotteessa tunnustetaan noin 250 suorituskykyyn suuntautuvaa vetopyyntöä .NET 5: ssä ja todetaan, että miellyttävä yllätys on varattavissa niille, jotka ovat seuranneet .NET Core -suorituskykyä.

Muita .NET 5 Preview 7 -tiedotteessa havaittuja lisäyksiä ja parannuksia:

  • Uusi System.text.json JSON -sovellusliittymä tarjoaa mahdollisuuden jättää arvotyyppisten ominaisuuksien oletusarvot huomiotta sarjallisuuden aikana. Tämä on murtava muutos. System.text.jsonille lisätään myös kyky käsitellä pyöreitä viitteitä sarjoitettaessa, kun API-muodon odotetaan nyt olevan lopullinen.
  • Jätteiden kerääminen paljastaa nyt yksityiskohtaiset tiedot viimeisimmästä keräyksestä GetGCMemoryInfo menetelmä, joka palauttaa a GCMemoryInfo rakenne. GCMemoryInfo palvelee tietoja kone- ja kasamuistista ja viimeisimmästä kokoelmasta tai uusimmasta määritellyn GC-kokoelman kokoelmasta - lyhytaikainen, täydellinen esto tai tausta. Tämän sovellusliittymän todennäköisimmät käyttötapaukset ovat kirjaaminen / seuranta tai ilmoittaminen kuormituksen tasapainottajalle, että kone on poistettava pyörimisestä täyden GC: n pyytämiseksi. Samaan aikaan tehtiin toinen GC-muutos, jotta kalliiden palautusmuistitoimintojen siirtäminen vähämuistisiin tilanteisiin.
  • Ryujit, .NET: n kokoonpanokoodigeneraattori, saa parannuksia aina eräiden rajatarkastusten mahdollistamisesta aina päällekkäisyyksien parantamiseen ja tarpeettomien nollatulojen poistamiseen. Ryujitissa ovat myös ARM64-laitteiston sisäiset ominaisuudet ja API-optimointi.

.NET 5 Preview 6, julkaistu 25. kesäkuuta, poisti sisäänrakennetun tuen WinRT: lle (Windows Runtime), joka on API-kokoelma Universal Windows Platform -sovellusten rakentamiseen. Tämä on murtava muutos; WinNET: ää käyttävät .NET Core 3.x -sovellukset on käännettävä uudelleen. .NET- ja Windows-tiimit ovat pyrkineet muuttamaan tapaa, jolla WinRT toimii Windowsissa, korvaamalla WinRT-tuen .NET 5: n C # / WinRT -työkaluketjulla. C # / WinRT on NuGet-pakattu työkalupakki, joka tarjoaa WinRT-projektiotukea C #: lle.

Muita muutoksia .NET 5 Preview 6: een:

  • .NET 5 Preview 6 SDK sisältää Windows Formsin tuen Windows ARM64 -laitteilla. Työ jatkuu Windows Presentation Foundationin tuen lisäämiseen Windows ARM64: ssä.
  • RyuJIT-koodin laatuparannukset kattavat rakenteiden käsittelyn ja optimoinnin turhien nolla-alustusten poistamiseksi. Edistystä on tapahtunut myös ARM64-laitteiston sisäisen optimoinnin suhteen sekä ARM64: n luodun koodin parantamisessa koodikokoa pienennettäessä.
  • Alustan tukisuunnitelmat on päivitetty.

10. kesäkuuta julkaistu .NET 5 Preview 5 sisältää seuraavat uudet ominaisuudet:

  • RyuJIT JIT-kääntäjällä on nopeampi, kannettava toteutus tailcall-avustajille. Yhteinen tutkintaryhmä pyytää ajonaikaa apua aina, kun se huomaa tarvitsevansa apulaista puhelun suorittamiseen. Myös RyuJIT: n osalta ARM64-laitteiston sisäisen toteutuksen edistyminen on jatkunut. Muihin RyuJIT-parannuksiin liittyy parempi nopeus tapauksessa, joka vaikutti säännöllisen lausekkeen kokoamiseen ja parantuneeseen Intel-arkkitehtuurin suorituskykyyn.
  • Natiivikokoisten binäärien vienti .NET-koodiin on otettu käyttöön. Tämän ominaisuuden rakennuspalikka isännöi sovellusliittymän API-tukea UnManagedCallersOnlyAttribute. Alkuperäisen viennin projekti mahdollistaa mukautetun alkuperäisen viennin paljastamisen. Se ei vaadi korkeamman tason keskinäistä tekniikkaa, kuten COM, ja se on monitasoinen.
  • DirectoryServices.Protokollat tuki laajenee Linuxiin ja MacOS: iin.
  • Alpine 3.12 Linux-jakelua tuetaan nyt.

.NET 5.0 -julkaisukandidaatin voi ladata osoitteesta dot.net.microsoft.com.

19. toukokuuta julkaistu .NET 5 Preview 4 esitteli seuraavat uudet ominaisuudet:

  • C # 9 ja F # 5 kielen tuki.
  • F #: n käyttämien tailcallien parempi suorituskyky.
  • Parempi suorituskyky ToUpperInvariant, merkkijono.ToLowerInvariantja niihin liittyvät mallit.
  • Parannettu HTTP 1.1- ja HTTP 2 -suorituskyky.
  • Parannettu puhelunlaskentamekanismi.
  • Sisäisen yleisen sanakirjan dynaaminen laajentaminen yleisen koodin iskemien suorituskyvyn kallioiden poistamiseksi.
  • Kiinnitetty esine kasa kasan pirstoutumisen vähentämiseksi.
  • Yksittäiset tiedostosovellukset, jotka perustuvat uuteen yksittäisten tiedostojen julkaisutyyppiin, joka suorittaa sovelluksen yhdestä binaarista.

23. huhtikuuta julkistetun .NET 5: n esikatselun 3 parannukset sisältävät seuraavat:

  • BitArray-luokka bittiarvojen hallintaa varten päivitettiin sisällyttämään laitteistopohjainen toteutus ARM64: lle ARM64-sisäisten ominaisuuksien avulla. BitArray-suorituskyvyn parannukset ovat merkittäviä, Microsoft sanoi. Lisäksi CLR: n On Stack -korvaus (OSR) otettiin käyttöön, jotta tällä hetkellä käynnissä olevilla menetelmillä suoritettu koodi voidaan vaihtaa kesken menetelmän suorituksen, kun taas nämä menetelmät ovat aktiivisia "pinossa". Tämä kyky parantaa porrastetun kokoamisen suorituskykyominaisuuksia on nyt kokeellinen, opt-in-ominaisuus x64: ssä. Toinen RyuJIT-parannus parantaa tekstin koodilaatua argumentteina "häntäpuhelun" sijaintipuheluissa. RyuJIT: n odotetaan myös tarjoavan parempaa geneeristen ominaisuuksien suorituskykyä.
  • Tuen lisääminen viitteiden säilyttämiseen lisättiin System.Txt.Jsoniin, mikä mahdollisti viitesilmukan käsittelyn JSON-sarjoitukseen. JsonSerializer tukee myös muuttumattomia luokkia ja rakenteita. Tukee nyt myös nolla-arvojen käsittelyä.
  • .NET SDK viittaa nyt automaattisesti NETFramework.ReferenceAssemblies NuGet -pakettiin, joka antaa .NET Frameworkin kohdekehyksen projektitiedostossa. Tämä muutos mahdollistaa .NET Framework -projektien rakentamisen koneelle, johon ei ole asennettu .NET Framework -kohdistuspakettia. Tämä parannus kohdistuu erityisesti kohdepaketteihin, eikä siinä oteta huomioon muita mahdollisia projektiriippuvuuksia.

Erityiset parannukset .NET 5: n esikatselussa 2, julkaistu 2. huhtikuuta, sisälsivät:

  • RyuJITiin on tehty useita muutoksia, jotta parannetaan luodun konekoodin laatua, mukaan lukien päällekkäiset nolla-alustukset on poistettu aggressiivisemmin ja tyhjennetyt laatikkooptimoinnit, joihin on vedottu aiemmin.
  • Eri säikeiden palvelinjätekeräys voi nyt varastaa ja merkitä vanhemman sukupolven kohteiden elossa olevia gen0 / 1-objekteja. Säikeiden välinen varastaminen lyhentää lyhytaikaisia ​​GC-taukoja tilanteissa, joissa joidenkin GC-ketjujen merkitseminen kesti paljon kauemmin kuin toiset. Lisäksi osa Pinned Object Heap (POH) -ominaisuudesta on toteutettu, osa roskien keräyksestä, jotta kerääjä voi hallita kiinnitettyjä objekteja erikseen. Näin vältetään kiinnitettyjen objektien kielteiset vaikutukset sukupolvien kasoihin.

Esikatselu 1, julkaistu 16. maaliskuuta, sisälsi säännöllisiä lausekkeiden suorituskyvyn parannuksia sekä koodin laadun parannuksia RyuJIT: ssä.

Marraskuussa 2020 julkaistavan tuotantojulkaisun vuoksi .NET 5: n on tarkoitus sisältää:

  • ASP.NET Core, avoimen lähdekoodin kehys verkkosovelluksille.
  • Entity Framework -tietotietotekniikka.
  • WinForms.
  • WPF (Windows Presentation Foundation).
  • Xamarin-mobiilisovelluksen laitemalli.
  • ML.NET.

Microsoft sanoi, että .NET 5 tarjoaa yhden, yhtenäisen alustan minkä tahansa tyyppisten sovellusten rakentamiseen. Yritys ohjaa puolet liikenteestä .NET-verkkosivuston liikenteestä .NET 5 -versioon testitapauksena Azure-kuormituksen tasapainottamista käyttämällä.

Microsoft suosittelee, että kehittäjät rakentavat uusia sovelluksia .NET Core 3.1: llä ja siirtävät ne sitten .NET 5: een. Yritys huomautti, että .NET Framework -sovellukset voidaan jättää .NET Frameworkiin, jota tuetaan niin kauan kuin itse Windows on tuettu.

$config[zx-auto] not found$config[zx-overlay] not found