ΠΠΎΠΌΠΏΠ°Π½ΠΈΡ Microsoft ΠΏΡΠ΅Π΄ΡΡΠ°Π²ΠΈ Π·Π½Π°ΡΠΈΡΠ΅Π»Π΅Π½ ΡΠΏΠ΄Π΅ΠΉΡ Π½Π° ΠΎΡΠΊΡΠΈΡΠ°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° .NET 7, ΡΡΠ·Π΄Π°Π΄Π΅Π½Π° Π±Π»Π°Π³ΠΎΠ΄Π°ΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΎΠ±Π΅Π΄ΠΈΠ½ΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΠΏΡΠΎΠ΄ΡΠΊΡΠΈΡΠ΅ .NET Framework, .NET Core ΠΈ Mono. Π‘ .NET 7 ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΡΠ΅ ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° Π±ΡΠ°ΡΠ·ΡΡΠΈ, ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΠΊΠΎΠΌΠΏΡΡΡΠΈ, IoT ΡΡΡΡΠΎΠΉΡΡΠ²Π° ΠΈ ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ Π΅Π΄ΠΈΠ½Π½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ ΠΈ ΠΎΠ±Ρ ΠΏΡΠΎΡΠ΅Ρ Π½Π° ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΡ, Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΠΎ ΠΎΡ ΡΠΈΠΏΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ. ΠΠΎΠΌΠΏΠΈΠ»Π°ΡΠΈΠΈΡΠ΅ Π½Π° .NET SDK 7, .NET Runtime 7 ΠΈ ASP.NET Core Runtime 7 ΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π·Π° Linux, macOS ΠΈ Windows. .NET Desktop Runtime 6 Π΅ Π½Π°Π»ΠΈΡΠ΅Π½ ΡΠ°ΠΌΠΎ Π·Π° Windows. Π‘Π²ΡΡΠ·Π°Π½ΠΈΡΠ΅ Ρ ΠΏΡΠΎΠ΅ΠΊΡΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠΈ ΡΠ΅ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½ΡΠ²Π°Ρ ΠΏΠΎΠ΄ Π»ΠΈΡΠ΅Π½ΡΠΈΡ MIT. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π²Π΅ΡΡΠΈΡΡΠ° .NET 7 ΡΠ΅ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠΈ 18 ΠΌΠ΅ΡΠ΅ΡΠ° Π΄ΠΎ 14 ΠΌΠ°ΠΉ 2024 Π³.
.NET 7 Π²ΠΊΠ»ΡΡΠ²Π° runtime CoreCLR Ρ JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ° RyuJIT, ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ CoreFX, WPF, Windows Forms, WinUI, Entity Framework, ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡ Π·Π° ΠΊΠΎΠΌΠ°Π½Π΄Π΅Π½ ΡΠ΅Π΄ dotnet, ΠΊΠ°ΠΊΡΠΎ ΠΈ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈ Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΡΠ²ΠΈΠ·ΠΈ, Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ, ΡΡΡΠ²ΡΡΠ½ΠΈ, Π³ΡΠ°ΡΠΈΡΠ½ΠΈ ΠΈ ΠΊΠΎΠ½Π·ΠΎΠ»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ. ΠΠΎΠΎΡΠ΄Π΅Π»Π½ΠΎ Π΅ ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½ ΡΡΠ΅ΠΊΠ° Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ASP.NET Core 7.0, ORM ΡΠ»ΠΎΠΉ Entity Framework Core 7.0 (Ρ Π΄ΡΠ°ΠΉΠ²Π΅ΡΠΈ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π·Π° SQLite ΠΈ PostgreSQL), Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° WPF 7 (Windows Presentation Foundation), ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ Windows Forms 7 Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° GUI, ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Orleans 7 Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Cloud Native ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΡΡΠ΅ΠΉΠΌΠ²ΠΎΡΠΊ MAUI 7 Π·Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΠΌΠ½ΠΎΠ³ΠΎΠΏΠ»Π°ΡΡΠΎΡΠΌΠ΅Π½ΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, ΠΊΠ°ΠΊΡΠΎ ΠΈ Π²Π΅ΡΡΠΈΠΈ Π½Π° Π΅Π·ΠΈΡΠΈΡΠ΅ C# 11 ΠΈ F# 7. ΠΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° .NET 7.0 ΠΈ C# 11 Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² Π±Π΅Π·ΠΏΠ»Π°ΡΠ½ΠΈΡ ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Visual Studio Code.
Π₯Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈ Π½Π° Π½ΠΎΠ²ΠΎΡΠΎ ΠΈΠ·Π΄Π°Π½ΠΈΠ΅:
- ΠΠ·Π²ΡΡΡΠ΅Π½Π° Π΅ ΡΠ½ΠΈΡΠΈΠΊΠ°ΡΠΈΡ Π½Π° Π±Π°Π·ΠΎΠ²Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ° ΠΎΡ ΠΊΠ»Π°ΡΠΎΠ²Π΅ (BCL, Base Class Library) Π·Π° ΡΠΏΠΎΡΡΠ΅Π±Π° Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ ΡΠΎΡΡΡΠ΅Ρ Π·Π° Π½Π°ΡΡΠΎΠ»Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, ΡΠ΅Π± ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΠΌΠΎΠ±ΠΈΠ»Π½ΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΈΠ³ΡΠΈ, Π²Π³ΡΠ°Π΄Π΅Π½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π·Π° ΠΌΠ°ΡΠΈΠ½Π½ΠΎ ΠΎΠ±ΡΡΠ΅Π½ΠΈΠ΅. ΠΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠΊΠ° Π½Π° ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π΅Π΄ΠΈΠ½ ΠΎΠ±Ρ SDK, Runtime ΠΈ Π½Π°Π±ΠΎΡ ΠΎΡ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ.
- ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ Ρ API, ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²Π°Ρ Π½Π° Π²Π΅ΡΡΠΈΡ .NET 7, ΡΡΠ΅Π· ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Β«net7.0Β», Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, Β«net7.0Β». ΠΠ° ΡΠ²ΡΡΠ·Π²Π°Π½Π΅ Ρ API, ΡΠΏΠ΅ΡΠΈΡΠΈΡΠ½ΠΈ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ, ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΡΡΠΎΡΠ½ΠΈΡΠ΅ ΡΠΈΠΏΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΊΠ°ΡΠΎ ΠΏΠΎΡΠΎΡΠΈΡΠ΅ Β«net7.0-androidΒ».
- ΠΠ½Π°ΡΠΈΡΠ΅Π»Π½ΠΎ ΠΏΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠ°ΡΠ° ARM64 ΠΈ ΠΏΡΠΎΠ΄ΡΠ»ΠΆΠ°Π²Π° ΡΠ°Π±ΠΎΡΠ°ΡΠ° Π·Π° ΠΏΠΎΡΡΠΈΠ³Π°Π½Π΅ Π½Π° ΠΏΠ°ΡΠΈΡΠ΅Ρ Π² ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ .NET ΠΏΡΠΈ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° Π°ΡΡ
ΠΈΡΠ΅ΠΊΡΡΡΠΈ x86 ΠΈ ARM64. Π runtime Π΅ ΡΠ²Π΅Π»ΠΈΡΠ΅Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠ΅ΡΠ° ΠΎΡ ΡΡΠ΅ΡΠΎ Π½ΠΈΠ²ΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠΈ ARM64. ΠΠΊΠ»ΡΡΠ΅Π½ΠΈ ΡΠ° ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ LSE Π·Π° ΡΠ°Π·Π³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° Π΄ΠΎΡΡΡΠΏΠ° Π΄ΠΎ ΠΏΠ°ΠΌΠ΅ΡΡΠ° ΠΎΡ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΈ ΠΏΠΎΡΠΎΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π΅ Π΄ΠΎΠ²Π΅Π»ΠΎ Π΄ΠΎ Π½Π°ΠΌΠ°Π»ΡΠ²Π°Π½Π΅ Π½Π° Π·Π°ΠΊΡΡΠ½Π΅Π½ΠΈΡΡΠ° Ρ 45%. Π Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°ΡΠ° ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΎΠ±ΡΠ°Π±ΠΎΡΠ²Π°ΡΠΈ, ΠΏΠΎΠ»Π·Π²Π°ΡΠΈ Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΡΠΈΠΏΠΎΠ²Π΅ Vector64, Vector128 ΠΈ Vector256, Π° ΡΡΡΠΎ ΡΠ°ΠΊΠ° Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° Π²Π΅ΠΊΡΠΎΡΠ½ΠΈ ΠΈΠ½ΡΡΡΡΠΊΡΠΈΠΈ ΡΠ° ΠΏΡΠ΅Π½Π°ΠΏΠΈΡΠ°Π½ΠΈ ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ EncodeToUtf8 ΠΈ DecodeFromUtf8, ΠΊΠΎΠ΅ΡΠΎ ΠΎΡΠΈΠ³ΡΡΡΠ²Π° ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΡΡΡ
Π½Π°ΡΠ° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡ Π΄ΠΎ 60% (Π·Π° ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ NarrowUtf16ToAscii ΠΈ GetIndexOfFirstNonAsciiChar ΡΠ²Π΅Π»ΠΈΡΠ΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π΄ΠΎΡΡΠΈΠ³Π° 35%). Π ΠΎΠ±ΡΠΈ Π»ΠΈΠ½ΠΈΠΈ, ΡΠΊΠΎΡΠΎΡΡΡΠ° Π½Π° ΠΏΡΠ΅ΠΌΠΈΠ½Π°Π²Π°Π½Π΅ Π½Π° ΡΠ΅ΡΡΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° ARM64 Π΅ Π½Π°ΡΠ°ΡΠ½Π°Π»Π° Ρ 10-60%.

- ΠΠΎΠ΄ΠΎΠ±ΡΠ΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π½Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° Linux, Π²ΠΊΠ»ΡΡΠΈΡΠ΅Π»Π½ΠΎ Π² ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈΡΠ΅ ΡΠ΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ Π½Π° Ubuntu 22.04 ΡΠ° Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΠΏΠ°ΠΊΠ΅ΡΠΈ Ρ .NET 6 ΠΈ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½ ΠΎΠΏΡΠΈΠΌΠΈΠ·ΠΈΡΠ°Π½, ΠΊΠΎΠΌΠΏΠ°ΠΊΡΠ΅Π½ ΠΈ Π³ΠΎΡΠΎΠ² Π·Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ docker-ΠΎΠ±ΡΠ°Π· Π·Π° Π±ΡΡΠ·ΠΎ ΡΠ°Π·Π³ΡΡΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ Ρ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π½Π° Π±Π°Π·Π°ΡΠ° Π½Π° .NET.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° 64-Π±ΠΈΡΠΎΠ²Π° Π°ΡΡ ΠΈΡΠ΅ΠΊΡΡΡΠ° IBM Power (ppc64le).
- ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ Π΅ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠ°ΡΠΈΡΠΌ .NET Upgrade Assistant Π·Π° ΠΎΠΏΡΠΎΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΏΡΠ΅Ρ Π²ΡΡΠ»ΡΠ½Π΅ΡΠΎ Π½Π° ΡΡΠ°ΡΠΈ ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΊΡΠΌ Π²Π΅ΡΡΠΈΠΈΡΠ΅ .NET 6 ΠΈΠ»ΠΈ .NET 7. Π Π½ΠΎΠ²Π°ΡΠ° Π²Π΅ΡΡΠΈΡ Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ°ΡΠ° Π·Π° ΠΌΠΈΠ³ΡΠ°ΡΠΈΡ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ ΠΎΡ ASP.NET ΠΊΡΠΌ ASP.NET Core, Π΄ΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π°Π½Π°Π»ΠΈΠ·Π°ΡΠΎΡΠΈ ΠΈ ΠΊΠΎΡΠ΅ΠΊΡΠΎΡΠΈ Π½Π° ΠΊΠΎΠ΄Π° Π·Π° WinForms, WPF ΠΈ Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠΈ Ρ ΠΊΠ»Π°ΡΠΎΠ²Π΅, ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅, Π΄ΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ°ΡΠ° UWP (Universal Windows Platform).
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ Π·Π° ΠΎΠ±Π»Π°ΡΠ½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ (cloud-native) ΠΈ ΠΏΠ»Π°ΡΡΠΎΡΠΌΠΈ PaaS (ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° ΠΊΠ°ΡΠΎ ΡΡΠ»ΡΠ³Π°). ΠΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π΅ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡ, ΠΎΠΏΠ°ΠΊΠΎΠ²Π°Π½ΠΈ Π² ΠΈΠ·ΠΎΠ»ΠΈΡΠ°Π½ΠΈ ΠΊΠΎΠ½ΡΠ΅ΠΉΠ½Π΅ΡΠΈ, Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° Β«dotnet publishΒ».
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΠ° ΡΡΠ΅Π΄ΡΡΠ²Π°ΡΠ° Π·Π° ΠΏΡΠΎΡΠ»Π΅Π΄ΡΠ²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΡΡΠ° ΠΈ ΡΡΠ±ΠΈΡΠ°Π½Π΅ Π½Π° ΠΌΠ΅ΡΡΠΈΠΊΠΈ ΠΎΡΠ½ΠΎΡΠ½ΠΎ ΡΡΡ Π½Π°ΡΠ° ΡΠ°Π±ΠΎΡΠ°. ΠΠΎΠ±Π°Π²Π΅Π½ΠΈ ΡΠ° Π½ΠΎΠ²ΠΈ ΡΡΠ±ΠΈΡΠΈΡ ΠΈ ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° Π°Π½Π°Π»ΠΈΠ· Π½Π° Π°ΠΊΡΠΈΠ²Π½ΠΎΡΡΡΠ° ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ΡΠΎ.
- Π C# 11 Π±Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° Π½Π΅ΠΎΠ±ΡΠ°Π±ΠΎΡΠ΅Π½ΠΈ Π½ΠΈΠ·ΠΎΠ²ΠΈ Π»ΠΈΡΠ΅ΡΠ°Π»ΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° Π²ΠΊΠ»ΡΡΠ²Π°Ρ ΡΠΏΠ΅ΡΠΈΠ°Π»Π½ΠΈ ΡΠΈΠΌΠ²ΠΎΠ»ΠΈ Π±Π΅Π· Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΡΡΠ° ΠΎΡ Π΅ΡΠΊΠ΅ΠΉΠΏΠ²Π°Π½Π΅ (ΡΠ°ΠΊΠΈΠ²Π° Π»ΠΈΡΠ΅ΡΠ°Π»ΠΈ ΡΠ΅ ΠΎΠ±ΠΎΠ·Π½Π°ΡΠ°Π²Π°Ρ Ρ ΡΡΠΈ ΠΊΠ°Π²ΠΈΡΠΊΠΈ). ΠΡΠ΅Π΄Π»ΠΎΠΆΠ΅Π½ΠΈ ΡΠ° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ Π·Π° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΡΡΠ½ΠΊΡΠΈΠΈ ΠΈ Π΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Π΅Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½Π΅ Π½Π° ΡΡΠ°ΡΠΈΡΠ½ΠΈ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈ Π²ΡΠ² Π²ΠΈΡΡΡΠ°Π»Π½ΠΈ ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠΈ, ΠΊΠΎΠ΅ΡΠΎ Π΅ ΠΏΠΎΠ·Π²ΠΎΠ»ΠΈΠ»ΠΎ ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° ΠΌΠ΅ΡΠΎΠ΄ΠΈ Π·Π° ΠΎΠ±ΠΎΠ±ΡΠ΅Π½ΠΎ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΠ°Π½Π΅ Π·Π° ΠΈΠ·Π²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΠΌΠ°ΡΠ΅ΠΌΠ°ΡΠΈΡΠ΅ΡΠΊΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΈ Π±Π΅Π· ΡΠΎΡΠ½Π° ΠΈΠ½ΡΠΎΡΠΌΠ°ΡΠΈΡ Π·Π° ΡΠΈΠΏΠ° Π½Π° ΡΡΠΎΠΉΠ½ΠΎΡΡΠΈΡΠ΅.
- Π Π°Π·ΡΠΈΡΠ΅Π½ΠΈ ΡΠ° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΠΈΡΠ΅ Π½Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½Π°ΡΠ° Π±ΠΈΠ±Π»ΠΈΠΎΡΠ΅ΠΊΠ°. ΠΠΎΠ±Π°Π²Π΅Π½ Π΅ API System.Formats.Tar Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π°ΡΡ ΠΈΠ²ΠΈ Π² ΡΠΎΡΠΌΠ°Ρ Tar. Π ΡΡΠ½ΠΊΡΠΈΠΈΡΠ΅ Π·Π° ΡΠ°Π±ΠΎΡΠ° Ρ Π²ΡΠ΅ΠΌΠ΅ (TimeStamp, DateTime ΠΈ Ρ.Π½.) Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΌΠΈΠΊΡΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ ΠΈ Π½Π°Π½ΠΎΡΠ΅ΠΊΡΠ½Π΄ΠΈ. Π System.Text.Json Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° ΠΈ Π΄Π΅ΡΠ΅ΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡΡΠ° Π½Π° ΡΠΈΠΏΠΎΠ²Π΅ .NET.
- Π ΠΈΠ½ΡΠ΅ΡΡΠ΅ΠΉΡΠ° Π½Π° ΠΊΠΎΠΌΠ°Π½Π΄Π½ΠΈΡ ΡΠ΅Π΄ Β«dotnet newΒ» Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½Π° ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π΄ΠΎΠ²ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π·Π° ΡΡΠ°Π½Π΄Π°ΡΡΠ½ΠΈ ΠΏΡΠΎΠ΅ΠΊΡΠΈ ΡΡΠ΅Π· Π½Π°ΡΠΈΡΠΊΠ°Π½Π΅ Π½Π° ΠΊΠ»Π°Π²ΠΈΡΠ° Tab.
- Π .NET SDK Π΅ ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π° Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΎΠ³ΡΠ°Π½ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΈΠ»Π°Π³Π°Π½Π΅ΡΠΎ Π½Π° Π΄ΠΎΡΡΠ°Π²Π΅Π½ΠΈΡΠ΅ ΡΠ°Π±Π»ΠΎΠ½ΠΈ Π½Π° ΠΏΡΠΎΠ΅ΠΊΡΠΈ, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΎΠΏΡΠ΅Π΄Π΅Π»ΠΈ Π² ΠΊΠΎΠΈ ΠΎΠΏΠ΅ΡΠ°ΡΠΈΠΎΠ½Π½ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Π΅ Π΄ΠΎΠΏΡΡΡΠΈΠΌ ΡΠ°Π±Π»ΠΎΠ½Π°.
- Π NuGet Π΅ Π΄ΠΎΠ±Π°Π²Π΅Π½ ΡΠ΅ΠΆΠΈΠΌ Π·Π° ΡΠ΅Π½ΡΡΠ°Π»ΠΈΠ·ΠΈΡΠ°Π½ ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° ΠΏΠ°ΠΊΠ΅ΡΠΈΡΠ΅, ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΡΠΏΡΠ°Π²Π»Π΅Π½ΠΈΠ΅ Π½Π° Π·Π°Π²ΠΈΡΠΈΠΌΠΎΡΡΠΈΡΠ΅ Π΅Π΄Π½ΠΎΠ²ΡΠ΅ΠΌΠ΅Π½Π½ΠΎ Π·Π° Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΠΏΡΠΎΠ΅ΠΊΡΠ°.
- ΠΠΎΠ²ΠΈΡΠ΅Π½Π° Π΅ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° JIT ΠΊΠΎΠΌΠΏΠΈΠ»Π°ΡΠΎΡΠ°. ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π½Π° ΠΌΠ΅Ρ Π°Π½ΠΈΠ·ΠΌΠ° OSR (On Stack Replacement) Π·Π° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΠΊΠΎΠ΄Π° Π½Π° Π²Π΅ΡΠ΅ ΠΈΠ·ΠΏΡΠ»Π½ΡΠ²Π°Π½ΠΈΡΠ΅ ΠΌΠ΅ΡΠΎΠ΄ΠΈ, ΠΊΠΎΠ΅ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²Π½Π°ΡΡΠ½Π΅ΡΠΎ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΠΈ Π² ΠΌΠ΅ΡΠΎΠ΄ΠΈΡΠ΅, ΡΠΈΠΉΡΠΎ ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ ΠΎΡΠ½Π΅ΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ Π²ΡΠ΅ΠΌΠ΅, Π±Π΅Π· Π΄Π° ΡΠ΅ ΡΠ°ΠΊΠ° Π·Π°Π²ΡΡΡΠ²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ΅ΠΊΡΡΠΎΡΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ (Π² ΡΠ΅ΡΡΠ° TechEmpower Π΅ ΠΎΡΠ±Π΅Π»ΡΠ·Π°Π½ΠΎ ΠΏΠΎΠ²ΠΈΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° ΠΎΠ±ΡΠ°Π±ΠΎΡΠΊΠ°ΡΠ° Π½Π° ΠΏΡΡΠ²ΠΈΡΠ΅ Π·Π°ΡΠ²ΠΊΠΈ Ρ 10-30%).
- ΠΠΎΠ²ΠΈΡΠ΅Π½Π° Π΅ΡΠ΅ΠΊΡΠΈΠ²Π½ΠΎΡΡ Π½Π° ΠΎΠΏΡΠΈΠΌΠΈΠ·Π°ΡΠΈΡΡΠ°, ΠΎΡΠ½ΠΎΠ²Π°Π½Π° Π½Π° ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈΡΠ΅ ΠΎΡ ΠΏΡΠΎΡΠΈΠ»ΠΈΡΠ°Π½Π΅ΡΠΎ Π½Π° ΠΊΠΎΠ΄Π° (PGO β Profile-guided optimization), ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°ΡΠ° ΠΎΡΡΠΈΡΠ°Π½Π΅ Π½Π° Ρ Π°ΡΠ°ΠΊΡΠ΅ΡΠΈΡΡΠΈΠΊΠΈΡΠ΅, ΠΎΠΏΡΠ΅Π΄Π΅Π»ΡΠ½ΠΈ ΠΏΠΎ Π²ΡΠ΅ΠΌΠ΅ Π½Π° ΠΈΠ·ΠΏΡΠ»Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠ°ΡΠ°.
- ΠΠΎΠ±Π°Π²Π΅Π½Π° Π΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠΊΠ° Π·Π° ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½Π΅ Π² ΡΠ°ΠΌΠΎΠ΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΈ ΠΈΠ·ΠΏΡΠ»Π½ΠΈΠΌΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ (Native AOT), Π² ΠΊΠΎΠΈΡΠΎ ΡΠ΅Π»ΠΈΡΡ ΠΏΡΠΎΠ΅ΠΊΡ ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΎ Π΅ ΠΊΠΎΠΌΠΏΠΈΠ»ΠΈΡΠ°Π½ Π² ΠΌΠ°ΡΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ Π½Π° ΡΠ΅Π»Π΅Π²Π°ΡΠ° ΠΏΠ»Π°ΡΡΠΎΡΠΌΠ° Π±Π΅Π· ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΌΠ΅ΠΆΠ΄ΠΈΠ½Π΅Π½ ΠΊΠΎΠ΄ ΠΈ Π±Π΅Π· ΠΏΡΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ Π½Π° JIT.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: opennet.ru

