Hari ini, kami mengumumkan bahwa rilis berikutnya setelah .NET Core 3.0 adalah .NET 5. Ini akan menjadi rilis besar berikutnya dalam seri .NET.
Di masa depan hanya akan ada satu .NET , yang dengannya Anda dapat mengembangkan Windows, Linux, macOS, iOS, Android, tvOS, watchOS, dan WebAssembly, antara lain.
Kami memperkenalkan .NET API, fitur runtime, dan fitur bahasa baru di .NET 5.
Dimulai dengan proyek .NET Core, kami telah menambahkan sekitar lima puluh ribu API .NET Framework ke platform. .NET Core 3.0 mengisi sebagian besar kesenjangan fitur .NET Framework 4.8 yang tersisa, mendukung Windows Forms, WPF, dan Entity Framework 6. .NET 5 dibangun di atas pekerjaan ini, memanfaatkan fitur terbaik .NET Core dan Mono untuk membuat platform. Anda dapat menggunakannya untuk semua kode .NET modern.
Kami bermaksud untuk merilis .NET 5 pada November 2020 dan meluncurkan pratinjau pertama pada paruh pertama tahun 2020. Ini akan didukung dalam pembaruan mendatang untuk Visual Studio 2019, Visual Studio untuk Mac, dan Visual Studio Code.
.NET 5 = .NET Core vNext
.NET 5 adalah langkah selanjutnya dalam .NET Core. Proyek ini bertujuan untuk meningkatkan . BERSIH:
- Bangun runtime dan kerangka kerja .NET yang dapat digunakan di mana saja, dengan perilaku runtime terpadu dan pengalaman pengembang.
- Dengan memanfaatkan sepenuhnya .NET Core, . NET Framework, Xamarin, dan Mono untuk memperluas kemampuan .NET.
- Membangun produk dari satu basis kode, pengembang (Microsoft dan komunitas) dapat bekerja sama dan memperluas bersama untuk meningkatkan semua skenario.
Proyek dan arah baru ini merupakan titik balik utama bagi .NET. Dengan .NET 5, kode dan file proyek Anda akan sama apa pun jenis aplikasi yang Anda bangun. Setiap aplikasi memiliki akses ke fitur runtime, API, dan bahasa yang sama. Juga termasuk peningkatan kinerja CoreFX, yang dilakukan hampir setiap hari.
Semua yang Anda sukai dari .NET Core akan terus ada:
- Sumber terbuka dan berorientasi komunitas di GitHub.
- Implementasi lintas platform.
- Mendukung pemanfaatan fitur khusus platform seperti formulir Windows dan WPF di Windows dan pengikatan asli untuk setiap platform asli dari Xamarin.
- Kinerja tinggi.
- Pasang berdampingan.
- File proyek kecil (gaya SDK).
- Kompatibel dengan antarmuka baris perintah (CLI).
- Integrasi Visual Studio, Visual Studio untuk Mac, dan Visual Studio Code.
Ada juga beberapa hal baru:
- Anda akan memiliki lebih banyak opsi untuk pengalaman runtime Anda (lebih lanjut tentang itu di bawah).
- Interoperabilitas Java akan tersedia di semua platform.
- Beberapa sistem operasi akan mendukung interoperabilitas Objective-C dan Swift.
- CoreFX akan diperluas untuk mendukung advance-of-time (AOT) untuk .NET, jejak yang lebih kecil, dan dukungan untuk lebih banyak sistem operasi.
Kami akan merilis .NET Core 3.0 pada bulan September tahun ini, .NET 5 pada November 2020, dan kemudian kami bermaksud untuk merilis versi utama . BERSIH:
Kami melewatkan versi 4 karena akan membingungkan pengguna yang akrab dengan .NET Framework, yang telah ada sejak lama dengan seri 4.x. Selain itu, kami ingin mengomunikasikan dengan jelas bahwa .NET 5 adalah masa depan platform .NET. Menyebutnya .NET 5 menjadikannya versi tertinggi yang pernah kami rilis.
Kami juga mengambil kesempatan ini untuk menyederhanakan penamaan. Kami berpikir bahwa jika hanya satu .NET yang terbaik, kami tidak memerlukan istilah klarifikasi seperti "Core". Nama yang lebih pendek adalah penyederhanaan dan juga menyampaikan pesan bahwa .NET 5 memiliki fungsionalitas dan perilaku yang seragam. Tentu saja, Anda dapat terus menggunakan nama ".NET Core" jika Anda mau.
Pengalaman runtime
Mono adalah implementasi lintas platform asli dari .NET. Ini dimulai sebagai alternatif sumber terbuka untuk .NET Framework dan beralih ke khusus seluler dengan popularitas perangkat iPhone/iOS dan Android. Mono adalah runtime yang digunakan sebagai bagian dari Xamarin.
CoreCLR adalah runtime yang digunakan sebagai bagian dari .NET Core. Ini terutama digunakan untuk mendukung aplikasi cloud, termasuk layanan terbesar Microsoft, dan sekarang juga digunakan dalam aplikasi desktop Windows, IoT, dan pembelajaran mesin.
Singkatnya, runtime .NET Core dan Mono memiliki banyak kesamaan (bagaimanapun, keduanya adalah runtime .NE), tetapi keduanya juga memiliki fitur unik yang berharga. Sangat masuk akal untuk memungkinkan untuk memilih pengalaman runtime yang Anda inginkan. Kami membuat CoreCLR dan Mono dapat dipertukarkan satu sama lain. Kami akan membuatnya sesederhana membuat sakelar untuk memilih di antara opsi runtime yang berbeda.
Bagian berikut menjelaskan fokus utama yang kami rencanakan untuk digunakan untuk .NET 5. Mereka memberikan perspektif yang jelas tentang bagaimana kami berencana untuk mengembangkan kedua runtime ini secara individual dan bersama-sama.
Throughput tinggi dan produktivitas tinggi
Sejak awal, .NET mengandalkan kompiler just-in-time (JIT) untuk mengubah kode bahasa perantara (IL) menjadi kode mesin yang dioptimalkan. Sejak itu, kami telah membangun runtime terkelola berbasis JIT terdepan di industri yang memiliki throughput yang sangat tinggi dan juga meningkatkan pengalaman pengembang, membuat pemrograman menjadi cepat dan mudah.
JIT sangat ideal untuk skenario cloud dan klien yang berjalan lama. Mereka dapat menghasilkan kode yang dikonfigurasi untuk mesin tertentu, termasuk instruksi CPU tertentu. JIT juga dapat meregenerasi metode saat runtime, teknik yang membuat JIT lebih cepat, sambil tetap memiliki opsi untuk menghasilkan versi kode yang sangat dioptimalkan jika menjadi metode yang sering digunakan.
Upaya kami untuk membuat ASP.NET Core berjalan lebih cepat pada tolok ukur Techpower adalah contoh bagus dari kekuatan JIT dan investasi kami di CoreCLR. Upaya kami untuk memperkuat .NET Core untuk kontainer juga merupakan bukti kemampuan runtime untuk beradaptasi secara dinamis dengan lingkungan yang dibatasi.
Alat pengembang adalah contoh bagus lainnya tentang bagaimana JIT benar-benar hebat, seperti alat pengawasan dotnet atau edit dan lanjutkan. Alat sering kali perlu mengkompilasi dan memuat kode beberapa kali dalam satu proses tanpa memulai ulang, dan perlu melakukannya dengan sangat cepat.
Pengembang yang menggunakan .NET Core atau .NET Framework terutama mengandalkan JIT. Oleh karena itu, pengalamannya harus familiar.
Pengalaman default untuk sebagian besar skenario kerja .NET 5 akan menggunakan runtime CoreCLR berbasis JIT. Dua pengecualian penting adalah iOS dan klien Blazor (perakitan web), karena keduanya memerlukan kompilasi asli sebelumnya (AOT).
Startup cepat, jejak kecil, dan penggunaan memori rendah
Sebagian besar proyek Mono berfokus pada seluler dan konsol. Fitur dan hasil utama dari proyek ini adalah kompiler AOT .NET berdasarkan proyek kompiler LLVM terkemuka di industri. Kompiler Mono AOT memungkinkan kode .NET dibangun ke dalam kode asli yang dapat dieksekusi yang dapat berjalan di komputer, seperti kode C++. Aplikasi yang dikompilasi AOT dapat berjalan secara efisien di lokasi yang lebih kecil dan bertukar throughput untuk startup saat diperlukan.
Proyek Blazor sudah menggunakan Mono AOT. Ini akan menjadi salah satu proyek pertama yang beralih ke .NET 5. Kami menggunakannya sebagai salah satu opsi untuk membuktikan rencana ini.
Ada dua jenis solusi AOT:
- Membutuhkan solusi yang 100% dikompilasi AOT.
- Sebagian besar kode adalah solusi yang dikompilasi AOT, tetapi JIT atau interpreter dapat digunakan untuk pola kode yang tidak ramah AOT (seperti generik). Mono AOT mendukung kedua kasus tersebut. Apple membutuhkan AOT pertama untuk iOS dan beberapa konsol untuk alasan keamanan. Metode kedua adalah pilihan yang lebih baik karena menawarkan keunggulan AOT dan menghindari beberapa kerugian.
.NET Native adalah kompiler AOT kami untuk aplikasi Windows UWP, dan juga merupakan contoh dari jenis AOT pertama yang tercantum di atas. Dalam implementasi khusus ini, kami membatasi .NET API dan fitur yang dapat Anda gunakan. Kami belajar dari pengalaman ini bahwa solusi AOT perlu mencakup semua aspek dan pola API .NET.
Kompilasi AOT masih diperlukan di iOS, perakitan web, dan beberapa konsol. Untuk aplikasi yang membutuhkan startup yang lebih cepat atau jejak rendah, kami akan menjadikan kompilasi AOT sebagai opsi.
Kelahiran proyek
Kami memulai proyek ini pada Desember 2018 dengan tim teknis di Boston. Pemimpin desain dari tim .NET (Mono/Xamarin dan .NET Core) dan Unity menyajikan berbagai kemampuan teknis dan arah arsitektur.
Kami sekarang memajukan proyek ini sebagai tim dengan serangkaian hasil akhir. Kami telah membuat banyak kemajuan pada sejumlah proyek sejak Desember:
- Lapisan minimum didefinisikan yang mendefinisikan lapisan kode terkelola <-> runtime dengan tujuan mencapai >99% kode publik CoreFX.
- MonoVM sekarang dapat menggunakan CoreFX dan pustaka kelasnya.
- Jalankan semua pengujian CoreFX di MonoVM dengan implementasi CoreFX.
- Jalankan aplikasi ASP.NET Core 3.0 dengan MonoVM.
- Jalankan MonoDevelop di CoreCLR, lalu jalankan Visual Studio untuk Mac.
Bermigrasi ke satu . Implementasi .NET menimbulkan beberapa pertanyaan penting: Apa kerangka kerja targetnya? Apakah aturan kompatibilitas paket NuGet sama? Beban kerja apa yang harus didukung .NET 5 SDK? Bagaimana cara membuat kode untuk arsitektur tertentu? Apakah kita masih membutuhkan .NET Standard? Kami sedang mengerjakan masalah ini sekarang dan akan segera membagikan dokumen desain untuk Anda baca dan memberikan umpan balik.
Epilog
Proyek .NET 5 adalah arah baru yang penting dan menarik untuk .NET. Anda akan melihat .NET menjadi lebih sederhana, tetapi juga dengan berbagai fitur dan utilitas yang lebih luas. Semua perkembangan dan fitur baru akan menjadi bagian dari .NET 5, termasuk versi C# baru.
Kami melihat masa depan yang cerah di mana Anda dapat menggunakan API dan bahasa .NET yang sama untuk menargetkan berbagai jenis aplikasi, sistem operasi, dan arsitektur silikon. Di Visual Studio, Visual Studio untuk Mac, Visual Studio Code, Azure DevOps, atau baris perintah, mudah untuk mengubah konfigurasi build untuk membangun aplikasi yang berbeda.
Tautan asli:Login hyperlink terlihat.
|