Memahami .NET MAUI dan masa depan Xamarin

Pada tahun 2000, Persidangan Pembangun Profesional Microsoft adalah mengenai pengaturan lokasi .NET, memperkenalkan banyak teknologi yang kami gunakan selama dua dekad terakhir. Dua puluh tahun kemudian, wajar untuk mengatakan bahawa Microsoft telah menekan butang reset pada peluasan .NET dan banyak kerangka pembangunnya. Pada Build 2020, syarikat itu membuat peta jalan untuk dua puluh tahun ke depan, berdasarkan pengumuman Project Reunion.

Masa depan adalah satu. BERSIH

Mungkin untuk melihat kembali enam tahun atau lebih untuk melihat akar masa kini dalam sumber terbuka .NET dan penciptaan .NET Foundation. Platform ini memerlukan badan bebas untuk menggembalakannya melalui peralihan dari .NET Framework yang lama ke Core NET yang baru, bebas warisan dan modular. Peralihan itu mesti merangkumi lebih daripada Windows; ia harus membawa pelanggan mudah alih Xamarin dan platform permainan 3-D Unity, serta bertujuan untuk memperluas jangkauan .NET ke macOS dan Linux.

Itu membawa kita ke tahun 2020 dan peralihan yang akan datang dari .NET Framework 4 yang semakin tua ke .NET 5 yang baru, pelepasan besar seterusnya. NET Core dengan kebanyakan API dan ruang nama .NET Framework yang sudah biasa. Transformasi itu akan menyaksikan permulaan perubahan besar untuk alat pengembangan Xamarin mudah alih dan lintas platform Microsoft, ketika Microsoft mengalihkan usaha kejuruteraan dari Xamarin's Mono ke .NET 5.

Membawa Mono dan .NET bersama dalam .NET 6

Satu perkara yang jelas: Microsoft tidak membuang pelaburan dan pelaburan anda di Xamarin. Mono belum akan ke mana-mana. Banyak projek besar bergantung pada Mono, dan kita akan melihat Xamarin terus berkembang Mono untuk menyokong keluaran baru Android dan iOS. Tetapi jika anda mahukan ciri baru dan API baru dan model pembangunan merentas platform yang lebih luas, maka strategi pembangunan masa depan anda akan berdasarkan pada .NET 5 dan jadual pelepasan tahunan .NET yang berterusan. .NET yang lengkap dan bersatu masih belum selesai, dan walaupun .NET 5 akan menjadi langkah maju yang penting, kita tidak akan melihat penyatuan sehingga akhir 2021 dan rancangan pelepasan sokongan jangka panjang yang akan datang, .NET 6.

Maksudnya bukan untuk menggantikan Mono sepenuhnya, tetapi untuk memiliki satu set perpustakaan kelas yang sama dan satu rantai alat tunggal untuk .NET Core dan untuk Mono, membangun kerja yang sudah berjalan dalam ciri-ciri peringkat platform seperti .NET Standard perpustakaan. Itu meninggalkan soalan menarik: Seperti apa rupa UI merentas platform pada masa depan yang berkumpul? Walaupun terdapat pilihan lintas platform di port Uno Platform WinUI 3, dengan sokongan peranti mudah alih di samping WebAssembly dan macOS, kawalan yang dihantar oleh Microsoft di WinUI adalah kawalan desktop Windows, dan berfungsi dengan baik dalam aplikasi desktop dan tablet.

Mengembangkan kerangka kerja UI merentas platform untuk .NET

Xamarin menawarkan alternatif kepada WinUI untuk pembangunan lintas platform. Strategi merentas platformnya berdasarkan gabungan sokongan XAML untuk kawalan asli untuk iOS dan Android di samping Bentuk Xamarin lintas platformnya sendiri. Xamarin Forms adalah platform pengembangan MVVM (model-view-viewmodel) dengan sendirinya, dengan penampilan dan nuansa kawalannya sendiri berdasarkan bahasa Reka Bentuk Bahan Android. Borang Xamarin memberikan aplikasi dan rupa iOS dan Android yang konsisten sambil tetap memberi mereka akses ke ciri dan perkhidmatan asli.

Dengan .NET 6 bertujuan untuk menyatukan pelbagai platform .NET, Xamarin Forms adalah asas logik untuk satu set perkakas UI mudah alih baru dan kerangka UI merentas platform baru untuk .NET. Microsoft melancarkan pendekatan baru ini di Build 2020, menyebutnya sebagai .NET Multiplatform App UI (MAUI).

.NET MAUI adalah generasi berikutnya Xamarin Forms, yang bertujuan untuk membolehkan pembangun membuat aplikasi sekali dalam satu projek Visual Studio dengan satu pangkalan kode tunggal, yang menyasarkan mana-mana peranti yang disokong. Tujuannya adalah untuk menyampaikan struktur projek yang dipermudahkan. Daripada satu penyelesaian dengan projek terpisah untuk setiap platform yang anda sasarkan, dengan MAUI satu projek akan mengandungi sumber daya yang diperlukan untuk menargetkan platform tertentu. Sekiranya anda memerlukan API asli untuk akses ke perkhidmatan khusus peranti, ini dapat digabungkan dalam tampilan platform dan digunakan pada waktu kompilasi ketika menargetkan build untuk setiap platform. Di samping kod platform, anda dapat mengumpulkan sumber yang akan digunakan oleh XAML anda, termasuk gambar dan fon, memberi anda satu tempat untuk menguruskan semua elemen aplikasi anda.

Model projek baru yang disertakan dengan .NET 6 adalah kunci pendekatan ini, kerana ia menerapkan pengelompokan yang lebih logik untuk modul yang digunakan dalam aplikasi lintas platform, dan bagaimana kod dibina dan digunakan. Walau bagaimanapun, walaupun terdapat perubahan struktur pada projek, kod yang anda tulis esok semestinya seperti hari ini, tetapi lebih mudah digunakan di pelbagai platform dan terus dikemas kini dengan perubahan pada API platform dan sumber reka bentuk aplikasi.

Jalan menuju .NET MAUI

Kami masih berbulan-bulan lagi untuk melihat kod .NET MAUI yang boleh digunakan, kerana ia bergantung pada ciri-ciri .NET 6 SDK, walaupun repositori GitHub sudah dibuka dengan beberapa pelaksanaan awal. Apabila pratonton dihantar menjelang akhir tahun 2020, apa yang akan kami perolehi hampir sama dengan Borang Xamarin yang ada, yang akan terus dikembangkan selari dengan .NET MAUI. Perubahan utama adalah bagaimana anda membuat struktur projek, dengan ruang nama baru berpindah dari ruang nama Xamarin sendiri ke Sistem .NET.

Peta jalan yang diterbitkan untuk .NET MAUI mencadangkan bahawa pada mulanya kami akan mendapatkan binaan pratonton berdasarkan penamaan semula keluaran Xamarin Forms semasa, dengan beberapa penyederhanaan dan ciri baru yang berasal dari ciri baru .NET 6. Lebih banyak perubahan akan datang pada tahun 2021 seiring dengan .NET MAUI dan .NET 6 berkembang, dengan kawalan macOS dan Windows yang bergabung dengan Android dan iOS menjelang musim panas 2021. Anda seharusnya dapat menyampaikan aplikasi terpadu pada pelepasan November 2021 yang dimaksudkan, dengan calon pelepasan yang dijadualkan pada September 2021.

Microsoft merancang perubahan lain pada Xamarin dalam jangka waktu .NET 6, memindahkan perpustakaan Xamarin lain ke Sistem, dan menamakan semula Xamarin.iOS dan Xamarin. Android ke .NET untuk iOS dan .NET untuk Android. Ini adalah langkah yang logik, jika sedikit menyedihkan bagi kita yang mengikuti perkembangan Xamarin sejak awal Mono.

Mungkin cara berfikir yang lebih positif adalah bahawa, dengan beralih ke platform silang. NET Core sebagai asas semua perkara. BERSIH, ia tidak begitu banyak Microsoft menyerap Xamarin kerana Xamarin menjadi nadi masa depan sumber terbuka .NET . Itu adalah warisan yang baik untuk projek Mono.