Programmering

Forståelse af Microsoft .NET 5

Et af hovedtemaerne i Microsofts 2020-udviklerstrategi betragtes måske bedst som skift mellem generationer. Det er en relativt jævn overdragelse, indrammet som en forening af gamle og nye måder at arbejde på. Men i sidste ende, uanset om det er Project Reunion, WinUI 3 eller lanceringen af ​​.NET 5, går den nye teknologi frem og efterlader den gamle bagud.

Det er ikke en dårlig ting. Vi udvikler nye måder at gøre ting på af mange grunde, men de falder ofte sammen omkring et nøglepunkt: Den nye måde er bedre. Det løser problemer, som gamle værktøjer ikke kunne, og besvarer nye spørgsmål, der ikke blev stillet, da den oprindelige løsning blev defineret.

Et nyt .NET til en ny verden

Alle disse grunde kommer sammen i overgangen fra .NET Framework til .NET 5. For tyve år siden, da den originale .NET Framework blev defineret, byggede vi monolitiske klient-serverapplikationer i tæt definerede IT-miljøer. Nu bygger vi en blanding af lette distribuerede mikrotjenester og mobilapps på tværs af platforme ved hjælp af hurtigt skiftende infrastrukturer. Det er trods klichéen en helt ny verden.

.NET Core er designet til denne måde at arbejde på; platforme fra tidligt i sit liv og beregnet til at understøtte nye, cloud-første mobile applikationer såvel som traditionelle .NET-udviklingsmønstre og praksis. Det hentede flere og flere API'er gennem tre store udgivelser, og da .NET Standard-bibliotekerne begyndte at tilbyde et fælles mål for kode, der gjorde det lettere at dele projekter på tværs af det, .NET Framework og Xamarin.

.NET 5: En vej til fremtidig udvikling

Teknisk set skulle denne nye udgave være .NET Core 4, men Microsoft springer over et versionsnummer for at undgå forveksling med den nuværende udgivelse af .NET Framework. Samtidig ved at flytte til et højere versionsnummer og slippe Core fra navnet indikerer det, at dette er det næste trin for al .NET-udvikling. To projekter bevarer stadig kernenavnet: ASP.NET Core 5.0 og Entity Framework Core 5, da ældre projekter med samme versionsnumre stadig eksisterer.

Det er en vigtig milepæl, der markerer det punkt, hvor du skal overveje at starte alle nye projekter i .NET 5 og flytte enhver eksisterende kode fra. NET Framework. Selvom Microsoft ikke fjerner support fra .NET Framework, er det i vedligeholdelsestilstand og får ingen nye funktioner i fremtidige punktudgivelser. Alle nye API'er og udvikling af samfund findes i .NET 5 (og 2021's langsigtede support. NET 6).

Nogle velkendte teknologier som webformularer og Windows Communication Foundation udfases i .NET 5. Hvis du stadig bruger dem, er det bedst at forblive på .NET Framework 4 indtil videre og planlægge en overgang til nyere, understøttede teknologier, f.eks. som ASP.NET's Razor Pages eller gRPC. Der er planer for samfundsstøtte til alternative rammer, der tilbyder lignende API'er, men at arbejde med nyere tilgange vil hjælpe fremtidssikker kode og gøre det lettere at arbejde på tværs af platforme.

Et let forvirrende aspekt af .NET 5 er, hvordan det fungerer med. NET Standard-biblioteker. De går ikke væk, selvom .NET 5-kode ikke behøver at henvise dem direkte, da de nu er en delmængde af .NET 5 target framework moniker (TFM). Denne nye TFM erstatter den gamle netcoreapp og netstandard TFM'er, men hvis du skriver kode, der skal deles på tværs af rammer, kan du stadig bruge .NET Standard 2.0 TFM til kompatibilitetsformål. I de fleste tilfælde arbejder du sandsynligvis kun i et .NET 5-miljø, så du sikkert kan holde fast i en net5.0 TFM-erklæring.

Kom godt i gang med .NET 5

.NET 5.0 fortsætter med at være vært for det samme velkendte sæt sprog, inklusive nye versioner af både C # og F #. Disse tilføjer mange nye funktioner og kommer som en del af Visual Studio 16.8 eller med den opdaterede C # Visual Studio Code-udvidelse. Microsoft har flyttet rammen og alle dens implementeringer, ligesom meget af Mono, i et enkelt GitHub-arkiv, der konsoliderer udviklingen og sikrer, at alle versioner har de samme underliggende funktioner. Når Microsoft flytter til .NET 6, bringer det andre implementeringer på højere niveau ind, herunder Xamarin.

Den nye .NET er fortsat baseret på just-in-time kompileringsteknikker udviklet til den oprindelige Common Language Runtime. Den nye CoreCLR fortsætter med at forbedre ydeevnen, mens den arbejder på tværs af flere processorarkitekturer. Med ankomsten af ​​Apples M1 ARM-baserede processorer kører kode skrevet i .NET til macOS som native binære filer på både Intel- og ARM-baseret hardware, så kode behøver ikke at gennemgå et andet lag af emulering. Understøttelse af ARM64 gør det muligt for .NET 5-applikationer at køre indbygget på Windows på ARM-hardware, idet de udnytter funktionerne i Microsofts egne SQ1- og SQ2-processorer.

Nogle scenarier, som f.eks.Web Assembly og mobile operativsystemer, kræver forudkompileret kode, og .NET 5 tilbyder en kompilator i forvejen sammen med sit JIT-værktøj. AOT-kompilatoren er nu tilgængelig i ethvert udviklingsmiljø, og Uno Platform-teamet ser allerede betydelige hastighedsforøgelser for sin Web Assembly-support i størrelsesordenen 7 til 15 gange i forhold til den tidligere Web Assembly-sprogtolk.

Der er planer om at gøre AOT-compileren tilgængelig som en mulighed for apps, der har brug for hurtig opstart og lavere hukommelsesfodspor, for eksempel på ressourcebegrænsede smartwatches og IoT-hardware. En anden mulighed er implementering af enkeltfiler. Alt, hvad der kræves til en applikation (inklusive runtime), er samlet i en enkelt pakke, hvilket gør det lettere at implementere .NET-applikationer i containere eller på ikke-Windows-systemer.

Det nye .NET skal ikke ses isoleret. Yderligere udvikling omkring Web Assembly med Blazor og platform-UI-udvikling med MAUI (multiplatform app UI) er også vigtig. Ved at bruge en kombination af disse teknologier kan meget lidt ikke målrettes mod .NET 5, fra Raspberry Pi-klasse hardware til Android-telefoner til Kubernetes-hostede containere, der kører på AWS og Azure.

Videre til .NET 6 i 2021

Et vigtigt punkt er, at dette kun er endnu et trin i en proces. .NET 5 er en nøgleteknologi til adskillelse af Windows API'er fra OS, Project Reunion-fusion af WinRT og Win32 API'er og flytningen til både WinUI 3 og MAUI som UI-lag. Meget af dette arbejde fortsætter med frigivelsen af ​​.NET 6 i 2021 - målet for mange af disse projekter. Du behøver ikke at vente på, at .NET 6 kommer i gang med migreringer. Jo hurtigere du starter, jo bedre giver du tid til at håndtere eventuelle problemer, der opstår.

.NET 5 som et første trin i den næste del af. NET-rejsen, en hvor du skal begynde at tage al den ældre kode og beslutte, hvad der er nødvendigt at bringe frem ved portering og opdatering, og hvad der skal udskiftes fuldstændigt. . Når 2020 slutter, planlægger du sandsynligvis din udviklingsplan for 2021. Med det i tankerne skal .NET 5 være et objektiv, der hjælper dig med at fokusere på, hvad der skal gøres for at holde din softwaregård klar til en meget hurtigere fremtid, der ikke længere er bundet til Windows-udgivelser - eller overhovedet til Windows.