Microsoft telah mengumumkan rilis signifikan platform terbuka .NET 7, yang dibuat dengan menyatukan produk .NET Framework, .NET Core, dan Mono. Dengan .NET 7, Anda dapat membuat aplikasi lintas platform di seluruh browser, cloud, desktop, perangkat IoT, dan platform seluler menggunakan pustaka umum dan proses pembuatan independen aplikasi umum. Rakitan .NET SDK 7, .NET Runtime 7, dan ASP.NET Core Runtime 7 dibuat untuk Linux, macOS, dan Windows. .NET Desktop Runtime 6 hanya tersedia untuk Windows. Perkembangan terkait proyek didistribusikan di bawah lisensi MIT. Cabang .NET 7 akan dipertahankan selama 18 bulan hingga 14 Mei 2024.
.NET 7 menyertakan runtime CoreCLR dengan kompiler RyuJIT JIT, pustaka standar, pustaka CoreFX, WPF, Formulir Windows, WinUI, Kerangka Entitas, antarmuka baris perintah dotnet, dan alat untuk mengembangkan layanan mikro, pustaka, server, aplikasi grafis dan konsol . Diterbitkan secara terpisah adalah tumpukan untuk mengembangkan aplikasi web ASP.NET Core 7.0, lapisan Entity Framework Core 7.0 ORM (driver tersedia, termasuk untuk SQLite dan PostgreSQL), pustaka WPF 7 (Windows Presentation Foundation), kerangka kerja Windows Forms 7 untuk GUI pengembangan, kerangka kerja Orleans 7 untuk membuat aplikasi Cloud Native, kerangka kerja MAUI 7 untuk mengembangkan antarmuka pengguna multi-platform, dan edisi bahasa C# 11 dan F# 7. Dukungan .NET 7.0 dan C# 11 disertakan dalam editor Visual Studio Code gratis.
Fitur rilis baru:
- Pustaka kelas dasar (BCL, Base Class Library) telah disatukan untuk digunakan dalam berbagai jenis aplikasi, termasuk program untuk sistem desktop, aplikasi web, platform cloud, aplikasi seluler, game, program tersemat, dan sistem pembelajaran mesin. Anda dapat menggunakan satu SDK umum, Runtime, dan kumpulan pustaka untuk mengembangkan berbagai jenis aplikasi.
- Memberikan kemampuan untuk mengikat aplikasi ke API yang sesuai dengan rilis .NET 7 melalui definisi kerangka kerja target "net7.0", misalnya " net7.0 ". Untuk mengikat ke API khusus platform, Anda dapat menentukan jenis platform saat menentukan target, misalnya, dengan menentukan "net7.0-android".
- Dukungan yang ditingkatkan secara signifikan untuk arsitektur ARM64 dan terus bekerja untuk mencapai paritas dalam kinerja untuk aplikasi .NET saat dijalankan pada arsitektur x86 dan ARM64. Peningkatan efisiensi cache L64 saat runtime pada sistem ARM45. Instruksi LSE digunakan untuk membatasi akses memori dari utas paralel, menghasilkan pengurangan latensi sebesar 64%. Pustaka telah menambahkan penangan yang menggunakan jenis vektor Vector128, Vector256 dan Vector8, dan fungsi EncodeToUtf8 dan DecodeFromUtf60 telah ditulis ulang berdasarkan instruksi vektor, yang meningkatkan kinerjanya hingga 16% (untuk fungsi NarrowUtf35ToAscii dan GetIndexOfFirstNonAsciiChar, peningkatan kinerja mencapai 64%). Secara umum, kecepatan tes kelulusan pada platform ARM10 meningkat 60-XNUMX%.

- Dukungan untuk platform Linux telah ditingkatkan, termasuk menambahkan paket dengan .NET 22.04 ke repositori stok Ubuntu 6 dan menyediakan image docker yang dioptimalkan, ringkas, dan siap pakai untuk menyebarkan kontainer dengan cepat menggunakan aplikasi berbasis .NET.
- Menambahkan dukungan untuk arsitektur IBM Power 64-bit (ppc64le).
- Memperkenalkan .NET Upgrade Assistant toolkit untuk memudahkan memigrasikan aplikasi lama ke cabang .NET 6 atau .NET 7. Versi baru telah memperluas dukungan untuk memigrasikan aplikasi dari ASP.NET ke ASP.NET Core, menambahkan penganalisa dan korektor kode untuk WinForms , WPF, dan perpustakaan kelas , mengimplementasikan dukungan untuk analisis file yang dapat dieksekusi, menambahkan dukungan untuk UWP (Universal Windows Platform).
- Peluang yang diperluas untuk membuat aplikasi untuk sistem cloud (cloud-native) dan platform PaaS (platform sebagai layanan). Disediakan kemampuan untuk membuat aplikasi yang dikemas dalam wadah terisolasi menggunakan perintah "dotnet publish".
- Alat yang diperluas untuk memantau status aplikasi dan mengumpulkan metrik tentang pekerjaan mereka. Acara dan metode baru telah ditambahkan untuk menganalisis aktivitas dan kinerja aplikasi.
- C# 11 menambahkan dukungan untuk literal string mentah, yang dapat menyertakan karakter khusus tanpa perlu menghindarinya (literal tersebut dipisahkan oleh tiga tanda kutip). Antarmuka generik (generik) untuk fungsi matematika diusulkan dan kemungkinan mendefinisikan elemen statis dalam antarmuka virtual disediakan, yang memungkinkan untuk menerapkan metode pemrograman generik untuk melakukan operasi matematika tanpa informasi pasti tentang jenis nilai.
- Kemampuan yang diperluas dari perpustakaan standar. Menambahkan System.Formats.Tar API untuk bekerja dengan arsip dalam format Tar. Dukungan untuk mikrodetik dan nanodetik telah ditambahkan ke fungsi manajemen waktu (TimeStamp, DateTime, dll.). System.Text.Json mengimplementasikan kemampuan untuk mengontrol serialisasi dan deserialisasi tipe .NET.
- Menambahkan dukungan untuk penyelesaian otomatis template proyek sampel dengan menekan tombol Tab di antarmuka baris perintah "dotnet baru".
- .NET SDK mengimplementasikan kemampuan untuk membatasi penggunaan template proyek yang disediakan, misalnya, Anda dapat menentukan di sistem operasi mana template tersebut valid.
- NuGet telah menambahkan mode manajemen paket terpusat yang memungkinkan Anda mengelola ketergantungan untuk beberapa proyek sekaligus.
- Peningkatan kinerja kompiler JIT. Menambahkan dukungan untuk mekanisme OSR (On Stack Replacement) untuk mengubah kode metode yang sudah dijalankan, yang memungkinkan Anda melakukan pengoptimalan pada metode yang membutuhkan waktu lama untuk diselesaikan tanpa menunggu panggilan saat ini selesai (dalam tes TechEmpower, ada adalah peningkatan 10-30% dalam kinerja pemrosesan permintaan pertama sebesar XNUMX-XNUMX%) .
- Efisiensi pengoptimalan berdasarkan hasil pembuatan profil kode (PGO - Pengoptimalan yang dipandu profil) telah ditingkatkan, yang memungkinkan untuk mempertimbangkan fitur yang ditentukan selama pelaksanaan program.
- Dukungan tambahan untuk kompilasi menjadi executable mandiri (AOT Asli), di mana seluruh proyek awalnya dikompilasi ke kode asli dari platform target tanpa menggunakan kode perantara dan tanpa menggunakan JIT.
Sumber: opennet.ru

