Memahami MAUI .NET dan masa depan Xamarin

Pada tahun 2000, Konferensi Pengembang Profesional Microsoft adalah tentang mengatur adegan untuk .NET, memperkenalkan banyak teknologi yang telah kami gunakan selama dua dekade terakhir. Dua puluh tahun kemudian, wajar untuk mengatakan bahwa Microsoft telah menekan tombol reset pada penyebaran .NET dan banyak kerangka kerja pengembangnya. Pada Build 2020, perusahaan menetapkan peta jalannya untuk dua puluh tahun ke depan, berdasarkan pengumuman Reuni Proyeknya.

Masa depan adalah satu .NET

Sangat mungkin untuk melihat ke belakang enam tahun atau lebih untuk melihat akar hari ini dalam sumber terbuka .NET dan pembuatan .NET Foundation. Platform ini membutuhkan badan independen untuk memandu melalui transisi dari .NET Framework lama ke .NET Core modular baru yang bebas warisan. Transisi itu harus mencakup lebih dari Windows; itu harus membawa serta klien seluler Xamarin dan platform game 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 lama ke .NET 5 baru, rilis besar berikutnya dari .NET Core dengan sebagian besar API dan namespace .NET Framework yang sudah dikenal. Transformasi tersebut akan menjadi awal dari perubahan besar untuk alat pengembangan Xamarin seluler dan lintas platform Microsoft, karena Microsoft mengalihkan upaya rekayasa dari Mono Xamarin ke .NET 5.

Menyatukan Mono dan .NET di .NET 6

Satu hal yang jelas: Microsoft tidak membuang baik investasi Anda maupun investasi Anda di Xamarin. Mono belum akan kemana-mana. Banyak proyek besar bergantung pada Mono, dan kita akan melihat Xamarin terus mengembangkan Mono untuk mendukung rilis baru Android dan iOS. Namun jika Anda menginginkan fitur baru dan API baru serta model pengembangan lintas platform yang lebih luas, maka strategi pengembangan masa depan Anda akan didasarkan pada .NET 5 dan jadwal rilis .NET tahunan yang sedang berlangsung. .NET lengkap dan terpadu masih agak jauh, dan meskipun .NET 5 akan menjadi langkah maju yang signifikan, kami tidak akan melihat penyatuan hingga akhir 2021 dan rencana rilis rilis dukungan jangka panjang berikutnya, .NET 6.

Maksudnya bukan untuk sepenuhnya menggantikan Mono, tetapi untuk memiliki satu set pustaka kelas yang sama dan satu toolchain untuk .NET Core dan untuk Mono, membangun pekerjaan yang sudah berlangsung dalam fitur tingkat platform seperti .NET Standard perpustakaan. Itu meninggalkan pertanyaan yang menarik: Seperti apa tampilan antarmuka lintas platform di masa depan yang terkonvergensi? Meskipun ada opsi lintas platform di port Uno Platform dari WinUI 3, dengan dukungan perangkat seluler bersama WebAssembly dan macOS, kontrol yang dikirimkan Microsoft di WinUI adalah kontrol desktop Windows, dan mereka bekerja paling baik di aplikasi desktop dan tablet.

Mengembangkan kerangka kerja UI lintas platform untuk .NET

Xamarin menawarkan alternatif WinUI untuk pengembangan lintas platform. Strategi lintas platformnya didasarkan pada campuran dukungan XAML untuk kontrol asli untuk iOS dan Android bersama Formulir Xamarin lintas platformnya sendiri. Xamarin Forms adalah platform pengembangan MVVM (model-view-viewmodel), dengan tampilan dan nuansa kontrolnya sendiri berdasarkan bahasa Desain Material Android. Formulir Xamarin memberi aplikasi iOS dan Android tampilan dan nuansa yang konsisten sambil tetap memberi mereka akses ke fitur dan layanan asli.

Dengan .NET 6 dimaksudkan untuk menyatukan berbagai platform .NET, Formulir Xamarin adalah landasan logis untuk sekumpulan baru perkakas UI seluler dan kerangka kerja UI lintas platform baru untuk .NET. Microsoft meluncurkan pendekatan baru ini pada Build 2020, menyebutnya sebagai .NET Multiplatform App UI (MAUI).

.NET MAUI adalah generasi berikutnya dari Formulir Xamarin, yang dimaksudkan untuk memungkinkan pengembang membangun aplikasi sekali dalam satu proyek Visual Studio dengan satu basis kode, menargetkan perangkat yang didukung. Tujuannya adalah untuk menghasilkan struktur proyek yang disederhanakan. Daripada solusi tunggal dengan proyek terpisah untuk setiap platform yang Anda targetkan, dengan MAUI, satu proyek akan berisi sumber daya yang diperlukan untuk menargetkan platform tertentu. Jika Anda memerlukan API native untuk mengakses layanan khusus perangkat, API ini dapat digabungkan dalam tampilan platform dan digunakan pada waktu kompilasi saat menargetkan build untuk setiap platform. Di samping kode platform, Anda dapat menggabungkan sumber daya yang akan digunakan oleh XAML Anda, termasuk gambar dan font, memberi Anda satu tempat untuk mengelola semua elemen aplikasi Anda.

Model proyek baru yang disertakan dengan .NET 6 adalah kunci dari pendekatan ini, karena model ini menerapkan pengelompokan yang lebih logis ke modul yang digunakan dalam aplikasi lintas platform, dan bagaimana kode dibuat dan disebarkan. Namun, terlepas dari perubahan struktural pada proyek, kode yang Anda tulis besok harus seperti hari ini, tetapi lebih mudah untuk diterapkan di berbagai platform dan untuk terus diperbarui dengan perubahan pada API platform dan sumber daya desain aplikasi.

Jalan menuju .NET MAUI

Kami masih berbulan-bulan lagi untuk melihat kode .NET MAUI yang dapat digunakan, karena ini bergantung pada fitur .NET 6 SDK, meskipun repositori GitHub sudah terbuka dengan beberapa implementasi awal. Ketika pratinjau dikirimkan menjelang akhir tahun 2020, apa yang akan kita dapatkan harus cukup mirip dengan Formulir Xamarin yang ada, yang akan terus dikembangkan secara paralel dengan MAUI .NET. Perubahan utama akan terjadi pada bagaimana Anda menyusun proyek, dengan namespace baru berpindah dari namespace Xamarin sendiri ke Sistem .NET.

Peta jalan yang diterbitkan untuk MAUI .NET menyarankan bahwa awalnya kita akan mendapatkan pratinjau build berdasarkan penggantian nama rilis Formulir Xamarin saat ini, dengan beberapa penyederhanaan dan fitur baru yang berasal dari fitur baru .NET 6. Lebih banyak perubahan akan datang selama 2021 seiring berkembangnya .NET MAUI dan .NET 6, dengan kontrol macOS dan Windows bergabung dengan Android dan iOS pada musim panas 2021. Anda seharusnya dapat mengirimkan aplikasi terpadu pada rilis November 2021 yang dimaksudkan, dengan kandidat rilis yang dijadwalkan pada September 2021.

Microsoft merencanakan perubahan lain pada Xamarin dalam jangka waktu .NET 6, memindahkan pustaka Xamarin lainnya ke Sistem, dan mengganti nama Xamarin.iOS dan Xamarin.Android menjadi .NET untuk iOS dan .NET untuk Android. Ini langkah yang logis, jika sedikit menyedihkan bagi kita yang telah mengikuti perkembangan Xamarin sejak masa-masa awal Mono.

Mungkin cara berpikir yang lebih positif adalah, dengan perpindahan ke lintas platform .NET Core sebagai fondasi dari semua hal .NET, Microsoft tidak terlalu menyerap Xamarin karena Xamarin menjadi jantung dari masa depan open source .NET . Itu adalah warisan yang bagus untuk proyek Mono.