Microsoft tillkÀnnagav idag en betydande release av den öppna plattformen .NET 7, byggd genom att förena produkterna .NET Framework, .NET Core och Mono. Med .NET 7 kan du bygga plattformsoberoende applikationer för webblÀsare, moln, skrivbord, IoT och mobila plattformar med hjÀlp av enhetliga bibliotek och en gemensam byggprocess oberoende av applikationstyp. .NET SDK 7, .NET Runtime 7 och ASP.NET Core Runtime 7-assemblagerna Àr utformade för Linux, macOS О Windows.NET Desktop Runtime 6 Àr endast tillgÀngligt för WindowsArbetet i samband med detta projekt distribueras under MIT-licensen. .NET 7-grenen kommer att underhÄllas i 18 mÄnader, fram till den 14 maj 2024.
.NET 7 inkluderar CoreCLR-körtiden med RyuJIT JIT-kompilatorn, standardbibliotek, CoreFX-bibliotek, WPF, Windows Forms, WinUI, Entity Framework, kommandoradsgrÀnssnittet dotnet, samt verktyg för att utveckla mikrotjÀnster, bibliotek, server-, grafik- och konsolapplikationer. Separat publicerade Àr ASP.NET Core 7.0-utvecklingsstacken för webbapplikationer, Entity Framework Core 7.0 ORM-lagret (drivrutiner finns tillgÀngliga, inklusive för SQLite och PostgreSQL) och WPF 7-biblioteket (Windows Ramverk för presentationsgrunden (PF) Windows Forms 7 för GUI-utveckling, Orleans 7-plattformen för att bygga Cloud Native-applikationer, MAUI 7-ramverket för att utveckla anvÀndargrÀnssnitt för flera plattformar och utgÄvor av sprÄken C# 11 och F# 7. Stöd för .NET 7.0 och C# 11 ingÄr i den kostnadsfria kodredigeraren Visual Studio Code.
Funktioner i den nya utgÄvan:
- Base Class Library (BCL) har förenats för anvÀndning i olika typer av applikationer, inklusive skrivbordsprogram, webbapplikationer, molnplattformar, mobilapplikationer, spel, inbÀddade program och maskininlÀrningssystem. Ett enda gemensamt SDK, en runtime och en uppsÀttning bibliotek kan anvÀndas för att utveckla olika typer av applikationer.
- Gav möjligheten att binda en applikation till ett API som motsvarar .NET 7-utgÄvan genom att definiera en mÄlplattform för "net7.0", till exempel " net7.0 "För att binda till plattformsspecifika API:er kan du ange plattformstypen mer detaljerat nÀr du definierar ett mÄl, till exempel genom att ange "net7.0-android".
- Betydligt förbÀttrat stöd för ARM64-arkitekturen och fortsatt arbete för att uppnÄ paritet i prestanda för .NET-applikationer nÀr de körs pÄ x86- och ARM64-arkitekturer. FörbÀttrad L64-cache-effektivitet vid körning pÄ ARM45-system. LSE-instruktioner anvÀnds för att separera minnesÄtkomst frÄn parallella trÄdar, vilket resulterar i en 64 % minskning av latensen. Biblioteket har lagt till hanterare som anvÀnder vektortyperna Vector128, Vector256 och Vector8, och funktionerna EncodeToUtf8 och DecodeFromUtf60 har skrivits om baserat pÄ vektorinstruktioner, vilket har ökat deras prestanda med upp till 16 % (för funktionerna NarrowUtf35ToAscii och GetIndexOfFirstNotes, 64%). Sammantaget ökade hastigheten för att klara tester pÄ ARM10-plattformen med 60-XNUMX%.

- FörbÀttrat plattformsstöd Linux, inklusive i standardförrÄd Ubuntu 22.04 lade till paket med .NET 6 och tillhandahöll en optimerad, kompakt och fÀrdig att anvÀnda Docker-avbildning för snabb distribution av containrar med .NET-baserade applikationer.
- Tillagt stöd för IBM Power 64-bitars arkitektur (ppc64le).
- VerktygslÄdan .NET Upgrade Assistant har introducerats för att förenkla migreringen av Àldre applikationer till .NET 6 eller .NET 7. Den nya versionen utökar stödet för att migrera applikationer frÄn ASP.NET till ASP.NET Core, lÀgger till kodanalysatorer och korrigerare för WinForms, WPF och klassbibliotek, implementerar stöd för att analysera körbara filer och lÀgger till stöd för UWP (Universal)-plattformen. Windows Plattform).
- Möjligheterna att skapa applikationer för molnbaserade system och PaaS-plattformar (plattform som en tjÀnst) har utökats. Möjligheten att skapa applikationer paketerade i isolerade containrar har tillhandahÄllits med hjÀlp av kommandot "dotnet publish".
- Utökade verktyg för att övervaka applikationernas tillstÄnd och samla in mÀtvÀrden om hur de fungerar. Lade till nya hÀndelser och metoder för att analysera applikationsaktivitet och prestanda.
- C# 11 lÀgger till stöd för obearbetade strÀng-literaler, som kan innehÄlla specialtecken utan att behöva escapes (sÄdana literaler omges av tre citattecken). Generiska grÀnssnitt för matematiska funktioner föreslÄs och möjligheten att definiera statiska element i virtuella grÀnssnitt tillhandahÄlls, vilket gör det möjligt att tillÀmpa generiska programmeringsmetoder för att utföra matematiska operationer utan exakt information om typen av vÀrden.
- Möjligheterna i standardbiblioteket har utökats. Lade till API System.Formats.Tar för att arbeta med arkiv i Tar-format. Stöd för mikrosekunder och nanosekunder har lagts till funktionerna för att arbeta med tid (TimeStamp, DateTime, etc.). System.Text.Json ger möjlighet att kontrollera serialisering och deserialisering av .NET-typer.
- KommandoradsgrÀnssnittet "dotnet new" stöder nu automatisk komplettering av standardprojektmallar genom att trycka pÄ Tab-tangenten.
- .NET SDK har möjlighet att begrÀnsa anvÀndningen av medföljande projektmallar, du kan till exempel bestÀmma vilka operativsystem en mall Àr tillÄten pÄ.
- NuGet har nu ett centraliserat pakethanteringslÀge som lÄter dig hantera beroenden för flera projekt samtidigt.
- FörbĂ€ttrad JIT-kompilatorprestanda. Lade till stöd för OSR-mekanismen (On Stack Replacement) för att Ă€ndra koden för redan exekverade metoder, vilket gör det möjligt att optimera metoder som tar lĂ„ng tid att exekvera utan att vĂ€nta pĂ„ att det aktuella anropet ska slutföras (TechEmpower-test visar en ökning pĂ„ 10â30 % i prestandan för bearbetning av första begĂ€ran).
- FörbÀttrad effektivitet av optimering baserat pÄ kodprofileringsresultat (PGO - Profile-guided optimization), vilket gör det möjligt att ta hÀnsyn till funktioner som bestÀms under programexekveringen.
- Lade till stöd för kompilering till fristÄende körbara filer (Native AOT), dÀr hela projektet initialt kompileras till maskinkoden för mÄlplattformen utan att anvÀnda mellanliggande kod och utan att anvÀnda JIT.
KĂ€lla: opennet.ru

