Memahami Microsoft .NET 5

Salah satu tema utama strategi pembangun Microsoft 2020 mungkin dianggap terbaik sebagai peralihan antara generasi. Ini adalah penyerahan yang agak lancar, dirangka sebagai penyatuan cara kerja lama dan baru. Tetapi pada akhirnya, sama ada Projek Reunion, WinUI 3, atau pelancaran .NET 5, teknologi baru terus maju, meninggalkan yang lama.

Itu bukan perkara buruk. Kami mengembangkan cara baru untuk melakukan sesuatu kerana banyak sebab, tetapi mereka sering menyatukan satu perkara penting: Cara baru lebih baik. Ini menyelesaikan masalah yang tidak dapat dilakukan oleh alat lama dan menjawab pertanyaan baru yang tidak ditanyakan ketika penyelesaian asalnya sedang ditentukan.

.NET baru untuk dunia baru

Semua alasan tersebut bersatu dalam peralihan dari .NET Framework ke .NET 5. Dua puluh tahun yang lalu ketika Framework .NET yang asal sedang didefinisikan, kami membina aplikasi pelayan pelanggan monolitik dalam persekitaran IT yang ditentukan dengan ketat. Sekarang kami membina gabungan perkhidmatan mikro diedarkan ringan dan aplikasi mudah alih merentas platform, menggunakan infrastruktur yang berubah dengan pantas. Ia, walaupun klise, dunia yang sama sekali baru.

.NET Core direka untuk cara kerja ini; merentas platform dari awal kehidupannya dan bertujuan untuk menyokong aplikasi mudah alih baru yang pertama di awan serta corak dan amalan pembangunan .NET tradisional. Ini mengambil semakin banyak API melalui tiga rilis utama, dan ketika perpustakaan .NET Standard mula menawarkan sasaran umum untuk kod yang menjadikannya lebih mudah untuk berkongsi projek di seberang, Framework .NET, dan Xamarin.

.NET 5: Jalan untuk pembangunan masa depan

Secara teknikal, pelepasan baru ini mestilah .NET Core 4, tetapi Microsoft melangkau nombor versi untuk mengelakkan kekeliruan dengan pelepasan Framework .NET semasa. Pada masa yang sama, beralih ke nombor versi yang lebih tinggi dan menjatuhkan Core dari namanya menunjukkan bahawa ini adalah langkah seterusnya untuk semua pengembangan .NET. Dua projek masih mengekalkan nama Teras: ASP.NET Core 5.0 dan Entity Framework Core 5, kerana projek lama dengan nombor versi yang sama masih ada.

Ini adalah tonggak penting, menandakan titik di mana anda perlu mempertimbangkan untuk memulakan semua projek baru di .NET 5 dan memindahkan kod yang ada dari .NET Framework. Walaupun Microsoft tidak membuang sokongan dari .NET Framework, ia berada dalam mod penyelenggaraan dan tidak akan mendapat apa-apa ciri baru dalam rilis titik yang akan datang. Semua API baru dan pembangunan masyarakat akan berada di. NET 5 (dan 2021 sokongan jangka panjang. NET 6).

Beberapa teknologi yang sudah biasa seperti Bentuk Web dan Yayasan Komunikasi Windows tidak lagi digunakan di .NET 5. Sekiranya anda masih menggunakannya, lebih baik untuk terus menggunakan .NET Framework 4 buat masa ini dan rencanakan migrasi ke teknologi yang lebih baru dan disokong, seperti sebagai Razor Pages atau gRPC ASP.NET. Terdapat rancangan untuk sokongan masyarakat untuk kerangka alternatif yang akan menawarkan API serupa, tetapi bekerja dengan pendekatan yang lebih baru akan membantu kod kalis masa depan dan menjadikannya lebih mudah untuk bekerja lintas platform.

Salah satu aspek yang sedikit membingungkan .NET 5 adalah bagaimana ia berfungsi dengan perpustakaan .NET Standard. Mereka tidak akan pergi, walaupun kod .NET 5 tidak perlu merujuknya secara langsung kerana mereka kini merupakan subset dari moniker kerangka sasaran (TFM). TFM baru ini menggantikan yang lama netcoreapp dan netstandard TFM, walaupun jika anda menulis kod yang perlu dikongsi di seluruh kerangka kerja, anda masih boleh menggunakan TFN .NET Standard 2.0 untuk tujuan keserasian. Dalam kebanyakan kes, bagaimanapun, anda mungkin hanya bekerja di persekitaran .NET 5 sehingga anda dapat dengan selamat menggunakan net5.0deklarasi TFM.

Bermula dengan .NET 5

.NET 5.0 terus menjadi tuan rumah kumpulan bahasa yang sama, termasuk versi baru kedua C # dan F #. Ini menambah banyak ciri baru dan datang sebagai sebahagian daripada Visual Studio 16.8 atau dengan peluasan C # Visual Studio Code yang dikemas kini. Microsoft telah memindahkan kerangka kerja dan semua implementasinya, seperti kebanyakan Mono, ke dalam satu repositori GitHub, menyatukan pembangunan dan memastikan semua versi mempunyai ciri yang sama. Ketika Microsoft bergerak ke .NET 6, ia akan membawa pelaksanaan tahap tinggi yang lain, termasuk Xamarin.

.NET yang baru tetap berdasarkan teknik penyusun tepat pada masanya yang dikembangkan untuk Runtime Bahasa Umum yang asal. CoreCLR baru terus meningkatkan prestasi, sambil bekerja di pelbagai arkitek pemproses. Dengan kedatangan pemproses berasaskan M1 ARM Apple, kod yang ditulis dalam .NET untuk macOS akan berfungsi sebagai binari asli pada perkakasan berasaskan Intel dan ARM, jadi kod tidak perlu melalui lapisan kedua emulasi. Sokongan untuk ARM64 akan membolehkan aplikasi .NET 5 berjalan secara asli pada Windows pada perkakasan ARM, dengan memanfaatkan ciri-ciri pada pemproses SQ1 dan SQ2 Microsoft sendiri.

Beberapa senario, seperti Perhimpunan Web dan sistem operasi mudah alih, memerlukan kod yang dikompilasi sebelumnya, dan .NET 5 menawarkan penyusun yang lebih awal bersama dengan perkakas JITnya. Penyusun AOT kini tersedia untuk persekitaran pembangunan apa pun, dan pasukan Uno Platform telah melihat peningkatan kelajuan yang signifikan untuk sokongan Perhimpunan Webnya, berdasarkan pesanan 7 hingga 15 kali berbanding jurubahasa bahasa Majlis Web sebelumnya.

Terdapat rancangan untuk menjadikan penyusun AOT tersedia sebagai pilihan untuk aplikasi yang memerlukan permulaan yang cepat dan jejak memori yang lebih rendah, misalnya pada jam tangan pintar dan perkakasan IoT terhad sumber. Pilihan lain adalah penyebaran fail tunggal. Semua yang diperlukan untuk aplikasi (termasuk runtime) digabungkan ke dalam satu paket, menjadikannya lebih mudah untuk menggunakan aplikasi .NET dalam bekas atau pada sistem bukan Windows.

.NET baru tidak boleh dilihat secara terpisah. Perkembangan tambahan di sekitar Perhimpunan Web dengan Blazor dan pengembangan UI merentas platform dengan MAUI (UI aplikasi pelbagai platform), juga penting. Dengan menggunakan kombinasi teknologi ini, sangat sedikit yang tidak dapat disasarkan dengan .NET 5, dari perkakasan kelas Raspberry Pi ke telefon Android ke kontena yang dihoskan oleh Kubernetes yang berjalan di AWS dan Azure.

Ke .NET 6 pada tahun 2021

Satu perkara penting adalah bahawa ini hanya satu langkah lagi dalam proses. .NET 5 adalah teknologi utama untuk pemisahan API Windows dari OS, penggabungan Project Reunion WinRT dan Win32 API, dan perpindahan ke WinUI 3 dan MAUI sebagai lapisan UI. Sebilangan besar kerja itu diteruskan dengan pembebasan .NET 6 pada tahun 2021 - sasaran untuk banyak projek ini. Anda tidak perlu menunggu .NET 6 untuk memulakan migrasi. Semakin cepat anda memulakan, semakin baik, memberi anda masa untuk menangani sebarang masalah yang mungkin timbul.

Anda harus melihat .NET 5 sebagai langkah awal dalam perjalanan seterusnya .NET, di mana anda harus mula mengambil semua kod warisan itu dan memutuskan apa yang perlu dibawa ke hadapan dengan memindahkan dan mengemas kini, dan apa yang perlu diganti sepenuhnya . Menjelang tahun 2020, anda mungkin akan merancang jadual pembangunan 2021 anda. Sehubungan dengan itu, .NET 5 harus menjadi lensa yang membantu anda memfokus pada perkara yang perlu dilakukan untuk memastikan harta perisian anda siap untuk masa depan yang jauh lebih pantas yang tidak lagi ditambatkan ke pelepasan Windows — atau ke Windows sama sekali.