Ohjelmointi

Microsoft .NET 5: n ymmärtäminen

Yksi Microsoftin vuoden 2020 kehittäjästrategian pääaiheista on ehkä parhaiten ajateltavissa sukupolvien vaihdoksena. Se on suhteellisen sujuva luovutus, jota kehitetään vanhojen ja uusien työskentelytapojen yhdistämisenä. Mutta loppujen lopuksi riippumatta siitä, onko kyseessä Project Reunion, WinUI 3 tai .NET 5, uusi tekniikka etenee ja jättää vanhan taakse.

Se ei ole huono asia. Kehitämme uusia tapoja tehdä asioita monista syistä, mutta ne yhdistyvät usein yhden avainkohdan ympärille: Uusi tapa on parempi. Se ratkaisee ongelmat, joita vanhat työkalut eivät pystyneet, ja vastaa uusiin kysymyksiin, joita ei kysytty alkuperäisen ratkaisun määrittelyn aikana.

Uusi .NET uutta maailmaa varten

Kaikki nämä syyt yhdistyvät siirtyessä .NET Frameworkista .NET 5: een. Kaksikymmentä vuotta sitten, kun alkuperäistä .NET Frameworkia määriteltiin, rakensimme monoliittiset asiakas-palvelinsovellukset tarkasti määriteltyihin IT-ympäristöihin. Nyt rakennamme yhdistelmän kevyitä hajautettuja mikropalveluja ja alustojen välisiä mobiilisovelluksia nopeasti muuttuvien infrastruktuurien avulla. Kliseestä huolimatta se on kokonaan uusi maailma.

.NET Core on suunniteltu tätä työskentelytapaa varten; monialustainen elämästään alusta lähtien ja tarkoitettu tukemaan uusia, pilvi ensin -mobiilisovelluksia sekä perinteisiä .NET-kehityskuvioita ja -käytäntöjä. Se otti yhä enemmän sovellusliittymiä kolmen suuren julkaisun kautta, ja kun .NET Standard -kirjastot alkoivat tarjota yhteistä tavoitetta koodille, joka helpotti projektien jakamista sen, .NET Frameworkin ja Xamarinin välillä.

.NET 5: Polku tulevaisuuden kehitykseen

Teknisesti tämän uuden julkaisun tulisi olla .NET Core 4, mutta Microsoft ohittaa versionumeron välttääkseen sekaannusta nykyisen .NET Framework -julkaisun kanssa. Samaan aikaan siirtyminen suurempaan versionumeroon ja ytimen pudottaminen nimestä osoittaa, että tämä on seuraava askel kaikelle .NET-kehitykselle. Kahdessa projektissa on edelleen ydinnimi: ASP.NET Core 5.0 ja Entity Framework Core 5, koska vanhoja projekteja, joilla on sama versionumero, on edelleen olemassa.

Se on tärkeä virstanpylväs, joka merkitsee kohtaa, jossa sinun on harkittava kaikkien uusien projektien aloittamista .NET 5: ssä ja kaikkien olemassa olevien koodien siirtämistä .NET Frameworkista. Vaikka Microsoft ei poista tukea .NET Frameworkista, se on ylläpitotilassa eikä saa uusia ominaisuuksia tulevissa pisteiden julkaisuissa. Kaikki uudet sovellusliittymät ja yhteisön kehittäminen ovat .NET 5: ssä (ja vuoden 2021 pitkäaikaisessa tuessa .NET 6).

Jotkut tutut tekniikat, kuten Web-lomakkeet ja Windows Communication Foundation, ovat vanhentuneita .NET 5: ssä. Jos käytät niitä edelleen, on parasta pysyä .NET Framework 4: ssä toistaiseksi ja suunnitella siirtyminen uudempiin, tuettuihin tekniikoihin, kuten kuten ASP.NET: n Razor Pages tai gRPC. Yhteisön tuki on suunnitteilla vaihtoehtoisille kehyksille, jotka tarjoavat samanlaisia ​​sovellusliittymiä, mutta työskenteleminen uudempien lähestymistapojen kanssa auttaa tulevaisuuden kestävää koodia ja helpottaa alustojen välistä työskentelyä.

Yksi hieman hämmentävä näkökohta .NET 5: ssä on, kuinka se toimii .NET Standard -kirjastojen kanssa. He eivät mene pois, vaikka .NET 5 -koodin ei tarvitse viitata niihin suoraan, koska ne ovat nyt .NET 5 target framework monikerin (TFM) osajoukko. Tämä uusi TFM korvaa vanhan netcoreapp ja verkkostandardi TFM: t, vaikka kirjoitat koodia, joka on jaettava kehysten kesken, voit silti käyttää .NET Standard 2.0 TFM: ää yhteensopivuustarkoituksiin. Useimmissa tapauksissa työskentelet kuitenkin todennäköisesti .NET 5 -ympäristössä, joten voit pitää kiinni netto5.0 TFM-julistus.

.NET 5: n käytön aloittaminen

.NET 5.0 isännöi edelleen samoja tuttuja kieliä, mukaan lukien uudet versiot C #: sta ja F #: sta. Nämä lisäävät monia uusia ominaisuuksia ja tulevat osana Visual Studio 16.8: ta tai päivitetyn C # Visual Studio Code -laajennuksen kanssa. Microsoft on siirtänyt kehyksen ja kaikki sen toteutukset, kuten suurimman osan Monosta, yhdeksi GitHub-arkistoksi, konsolidoimalla kehityksen ja varmistamalla, että kaikilla versioilla on samat taustalla olevat ominaisuudet. Kun Microsoft siirtyy .NET 6: een, se tuo muita korkeamman tason toteutuksia, mukaan lukien Xamarin.

Uusi .NET perustuu edelleen alkuperäisen Common Language Runtime -sovellusta varten kehitettyihin juuri oikeaan aikaan-kääntäjätekniikoihin. Uusi CoreCLR parantaa edelleen suorituskykyä työskennellessään useilla prosessoriarkkitehtuureilla. Applen M1 ARM -perusteisten prosessorien saapuessa .NET: ään kirjoitettu koodi macOS: lle toimii alkuperäisinä binääreinä sekä Intel- että ARM-pohjaisessa laitteistossa, joten koodin ei tarvitse käydä läpi toisen emulointikerroksen. ARM64-tuen ansiosta .NET 5 -sovellukset voivat toimia luonnollisesti Windowsissa ARM-laitteistossa hyödyntämällä Microsoftin omien SQ1- ja SQ2-prosessorien ominaisuuksia.

Jotkin skenaariot, kuten Web Assembly ja mobiilikäyttöjärjestelmät, edellyttävät ennalta käännettyä koodia, ja .NET 5 tarjoaa JIT-työkalujen ohella ennenaikaisen kääntäjän. AOT-kääntäjä on nyt saatavana mihin tahansa kehitysympäristöön, ja Uno Platform -tiimi näkee jo huomattavaa nopeutta Web Assembly -tukea varten, noin 7-15 kertaa edelliseen Web Assembly -kielten tulkkiin verrattuna.

AOT-kääntäjä aikoo tehdä vaihtoehtona sovelluksille, jotka tarvitsevat nopeaa käynnistystä ja pienempiä muistinjälkiä, esimerkiksi resursseilla rajoitetuissa älykelloissa ja IoT-laitteistoissa. Toinen vaihtoehto on yksittäisten tiedostojen käyttöönotto. Kaikki sovellukseen tarvittava (mukaan lukien ajonaikainen) on niputettu yhdeksi paketiksi, mikä helpottaa .NET-sovellusten asentamista säilöihin tai muihin kuin Windows-järjestelmiin.

Uutta .NET-tietokonetta ei tule nähdä erillään. Blazor-verkkokokouksen ja MAUI (multiplatform app UI) -ympäristön välisen käyttöliittymäkehityksen ympärillä olevat lisäkehitykset ovat myös tärkeitä. Käyttämällä näiden tekniikoiden yhdistelmää .NET 5: n kohdentamiseen ei voida kohdistaa hyvin vähän, Raspberry Pi-luokan laitteistoista Android-puhelimiin AWS: llä ja Azuressa toimiviin Kubernetesin isännöimiin kontteihin.

.NET 6: een vuonna 2021

Yksi tärkeä seikka on, että tämä on vain yksi vaihe prosessissa. .NET 5 on avainteknologia Windows-sovellusliittymien erottamiseksi käyttöjärjestelmästä, WinRT- ja Win32-sovellusliittymien Project Reunion -yhdistämisestä ja siirtymisestä sekä WinUI 3: een että MAUI: iin käyttöliittymäkerroksina. Suuri osa tästä työstä jatkuu .NET 6: n julkaisemisella vuonna 2021, joka on monien näiden projektien kohde. Sinun ei tarvitse odottaa .NET 6: n aloittamista siirtojen kanssa. Mitä nopeammin aloitat, sitä parempi, antaa sinulle aikaa käsitellä esiin tulevia asioita.

Sinun pitäisi nähdä .NET 5 ensimmäisenä askeleena .NET-matkan seuraavassa osassa, jossa sinun pitäisi alkaa ottaa kaikki vanhat koodit ja päättää, mitä on tarpeen viedä eteenpäin siirtämällä ja päivittämällä, ja mikä on korvattava kokonaan. . Kun vuosi 2020 loppuu, suunnittelet todennäköisesti vuoden 2021 kehitysaikataulua. Tässä mielessä .NET 5: n pitäisi olla linssi, joka auttaa sinua keskittymään siihen, mitä on tehtävä, jotta ohjelmistokanta pysyy valmiina paljon nopeammin liikkuvaan tulevaisuuteen, jota ei enää ole sidottu Windowsin julkaisuihin - tai Windowsiin.