Memahami Microsoft .NET 5

Salah satu tema kunci dari strategi pengembang Microsoft 2020 mungkin paling baik dianggap sebagai peralihan antar generasi. Ini adalah penyerahan yang relatif mulus, dibingkai sebagai penyatuan cara kerja lama dan baru. Namun pada akhirnya, apakah itu Project Reunion, WinUI 3, atau peluncuran .NET 5, teknologi baru terus maju, meninggalkan yang lama.

Itu bukanlah hal yang buruk. Kami mengembangkan cara-cara baru untuk melakukan sesuatu karena berbagai alasan, tetapi mereka sering kali berpadu di sekitar satu poin utama: Cara baru itu lebih baik. Ini memecahkan masalah yang tidak bisa dilakukan alat lama dan menjawab pertanyaan baru yang tidak ditanyakan ketika solusi asli sedang ditentukan.

NET baru untuk dunia baru

Semua alasan tersebut muncul bersamaan dalam transisi dari .NET Framework ke .NET 5. Dua puluh tahun yang lalu ketika .NET Framework yang asli sedang didefinisikan, kami membangun aplikasi server-klien monolitik dalam lingkungan TI yang ditentukan dengan ketat. Sekarang kami membuat campuran layanan mikro terdistribusi ringan dan aplikasi seluler lintas platform, menggunakan infrastruktur yang berubah dengan cepat. Meskipun klise, ini adalah dunia yang sama sekali baru.

.NET Core dirancang untuk cara kerja ini; lintas platform sejak awal masa hidupnya dan dimaksudkan untuk mendukung aplikasi seluler baru yang mengutamakan cloud serta pola dan praktik pengembangan .NET tradisional. Itu mengambil lebih banyak dan lebih banyak API melalui tiga rilis utama, dan ketika pustaka .NET Standard mulai menawarkan target umum untuk kode yang membuatnya lebih mudah untuk berbagi proyek di atasnya, .NET Framework, dan Xamarin.

.NET 5: Sebuah jalan untuk pengembangan masa depan

Secara teknis, rilis baru ini seharusnya .NET Core 4, tetapi Microsoft melewatkan nomor versi untuk menghindari kebingungan dengan rilis .NET Framework saat ini. Pada saat yang sama, berpindah ke nomor versi yang lebih tinggi dan menghapus Core dari namanya menunjukkan bahwa ini adalah langkah selanjutnya untuk semua pengembangan .NET. Dua proyek masih mempertahankan nama Inti: ASP.NET Core 5.0 dan Entity Framework Core 5, karena proyek lama dengan nomor versi yang sama masih ada.

Ini adalah tonggak penting, menandai titik di mana Anda perlu mempertimbangkan untuk memulai semua proyek baru di .NET 5 dan memindahkan kode apa pun yang ada dari .NET Framework. Meskipun Microsoft tidak menghapus dukungan dari .NET Framework, itu dalam mode pemeliharaan dan tidak akan mendapatkan fitur baru apa pun di rilis poin mendatang. Semua API baru dan pengembangan komunitas akan ada di .NET 5 (dan dukungan jangka panjang 2021 .NET 6).

Beberapa teknologi yang sudah dikenal seperti Formulir Web dan Windows Communication Foundation sudah tidak digunakan lagi di .NET 5. Jika Anda masih menggunakannya, sebaiknya tetap menggunakan .NET Framework 4 untuk saat ini dan rencanakan migrasi ke teknologi yang lebih baru dan didukung, seperti sebagai Razor Pages ASP.NET atau gRPC. Ada rencana untuk dukungan komunitas untuk kerangka kerja alternatif yang akan menawarkan API serupa, tetapi bekerja dengan pendekatan yang lebih baru akan membantu kode bukti masa depan dan membuatnya lebih mudah untuk bekerja lintas platform.

Satu aspek yang sedikit membingungkan dari .NET 5 adalah cara kerjanya dengan pustaka .NET Standard. Mereka tidak akan hilang, meskipun kode .NET 5 tidak perlu mereferensikannya secara langsung karena mereka sekarang merupakan bagian dari moniker kerangka target (TFM) .NET 5. TFM baru ini menggantikan TFM lama netcoreapp dan netstandard TFM, meskipun jika Anda menulis kode yang perlu dibagikan ke seluruh kerangka kerja, Anda masih dapat menggunakan TFM .NET Standard 2.0 untuk tujuan kompatibilitas. Namun, dalam banyak kasus, Anda cenderung hanya bekerja di lingkungan .NET 5 sehingga Anda dapat tetap menggunakan net5.0deklarasi TFM dengan aman .

Memulai dengan .NET 5

.NET 5.0 terus menghosting set bahasa yang sama, termasuk versi baru C # dan F #. Ini menambahkan banyak fitur baru dan datang sebagai bagian dari Visual Studio 16.8 atau dengan ekstensi C # Visual Studio Code yang diperbarui. Microsoft telah memindahkan kerangka kerja dan semua implementasinya, seperti kebanyakan Mono, ke dalam satu repositori GitHub, mengkonsolidasikan pengembangan dan memastikan bahwa semua versi memiliki fitur dasar yang sama. Saat Microsoft pindah ke .NET 6, itu akan membawa implementasi tingkat yang lebih tinggi lainnya, termasuk Xamarin.

.NET baru tetap didasarkan pada teknik kompilator just-in-time yang dikembangkan untuk Common Language Runtime asli. CoreCLR baru terus meningkatkan kinerja, sambil bekerja di berbagai arsitektur prosesor. Dengan kedatangan prosesor berbasis ARM M1 Apple, kode yang ditulis dalam .NET untuk macOS akan berjalan sebagai biner asli pada perangkat keras berbasis Intel dan ARM, sehingga kode tidak perlu melalui lapisan emulasi kedua. Dukungan untuk ARM64 akan memungkinkan aplikasi .NET 5 untuk berjalan secara native di Windows pada perangkat keras ARM, memanfaatkan fitur di prosesor SQ1 dan SQ2 milik Microsoft.

Beberapa skenario, seperti Perakitan Web dan sistem operasi seluler, memerlukan kode yang telah dikompilasi sebelumnya, dan .NET 5 menawarkan kompiler sebelumnya bersama perkakas JIT-nya. Compiler AOT sekarang tersedia untuk semua lingkungan pengembangan, dan tim Uno Platform telah melihat peningkatan kecepatan yang signifikan untuk dukungan Perakitan Web-nya, dengan urutan 7 hingga 15 kali lipat dari penerjemah bahasa Perakitan Web sebelumnya.

Ada rencana untuk membuat kompiler AOT tersedia sebagai opsi untuk aplikasi yang membutuhkan startup cepat dan footprint memori yang lebih rendah, misalnya pada jam tangan pintar terbatas sumber daya dan perangkat keras IoT. Opsi lainnya adalah penyebaran file tunggal. Semua yang diperlukan untuk aplikasi (termasuk runtime) digabungkan ke dalam satu paket, sehingga lebih mudah untuk menyebarkan aplikasi .NET dalam wadah atau pada sistem non-Windows.

NET baru tidak boleh dilihat secara terpisah. Perkembangan tambahan seputar Web Assembly dengan Blazor dan pengembangan UI lintas platform dengan MAUI (UI aplikasi multiplatform), juga penting. Dengan menggunakan kombinasi teknologi ini, sangat sedikit yang tidak dapat ditargetkan dengan .NET 5, dari perangkat keras kelas Raspberry Pi hingga ponsel Android hingga kontainer yang dihosting Kubernetes yang berjalan di AWS dan Azure.

Ke .NET 6 pada tahun 2021

Satu poin penting adalah bahwa ini hanya satu langkah lagi dalam suatu proses. .NET 5 adalah teknologi kunci untuk pemisahan API Windows dari OS, penggabungan Reuni Proyek dari API WinRT dan Win32, dan perpindahan ke WinUI 3 dan MAUI sebagai lapisan UI. Sebagian besar pekerjaan itu berlanjut dengan rilis .NET 6 pada tahun 2021 — target untuk banyak proyek ini. Anda tidak perlu menunggu .NET 6 untuk memulai migrasi. Semakin cepat Anda memulai, semakin baik, memberi Anda waktu untuk menangani masalah apa pun yang mungkin muncul.

Anda harus melihat .NET 5 sebagai langkah pertama dalam perjalanan selanjutnya .NET, langkah di mana Anda harus mulai mengambil semua kode warisan itu dan memutuskan apa yang perlu dimajukan dengan porting dan memperbarui, dan apa yang perlu diganti sepenuhnya . Saat 2020 akan segera berakhir, Anda kemungkinan besar akan merencanakan jadwal pengembangan 2021 Anda. Dengan pemikiran tersebut, .NET 5 harus menjadi lensa yang membantu Anda fokus pada apa yang perlu dilakukan agar perangkat lunak Anda tetap siap untuk masa depan yang bergerak lebih cepat yang tidak lagi terikat pada rilis Windows — atau ke Windows sama sekali.