Pengembangan aplikasi .NET yang tahan masa depan dengan Uno Platform

Jika Anda menghabiskan waktu mendengarkan dan berbicara dengan pengembang Windows, Anda akan tahu bahwa ada banyak kebingungan dan frustrasi tentang arah platform, terutama di sekitar .NET dan UWP (Universal Windows Platform). Microsoft mencoba menarik garis di bawah perbedaan antara UWP dan Windows SDK yang lebih lama, sambil mencoba membawa semua orang ke masa depan .NET 5 dengan pengumuman Build 2020 dari Project Reunion, tetapi masih membutuhkan waktu untuk menghadirkan platform terpadu.

Banyak dari itu telah turun ke bagaimana pembaruan platform Windows telah dikirimkan di masa lalu: digabungkan dengan rilis sistem operasi. Project Reunion dibangun di atas pekerjaan dengan komponen antarmuka pengguna WinUI, memisahkan mereka dari sistem operasi yang mendasarinya dan memungkinkan platform pengembang untuk berkembang jauh lebih cepat dari sebelumnya.

Membangun pendekatan open source pada platform memberikan lebih banyak peluang untuk menghadirkan model pengembangan .NET (dan kode Anda) ke sebanyak mungkin platform. Salah satu contoh bagaimana ini akan bekerja adalah implementasi WinUI Platform Uno, yang baru-baru ini meluncurkan rilis utama ketiganya.

Memperkenalkan Uno Platform 3.0

Jika Anda belum pernah melihat Uno Platform sebelumnya, mungkin paling mudah untuk menganggapnya sebagai alternatif dari Xamarin yang memungkinkan Anda membuat kode .NET yang berjalan di iOS, Android, macOS, dan Web. Saya telah menulis tentang Uno sebelumnya sebagai cara untuk menyampaikan antarmuka pengguna yang sudah dikenal melalui Web menggunakan WinUI dengan WebAssembly dan kerangka kerja pengembangan Blazor Microsoft.

Uno Platform 3.0 sedang dikembangkan untuk mendukung WinUI 3.0 bersama dengan WinUI 2.0. Dengan cara ini Anda dapat mencampur dan mencocokkan kontrol baru dan saat ini, pendekatan yang akan bekerja dengan baik bersamaan dengan peluncuran bertahap dari WinUI 3.0 dan API Reuni Proyek tingkat sistem.

Ada banyak hal yang disukai di Uno, terutama karena sedikit atau bahkan tidak ada kurva belajar. Kode dapat dibuat di IDE favorit Anda dan menggunakan alat dan kerangka kerja yang ada, menyediakan lapisan UI umum untuk semua versi kode Anda. Anda hanya perlu menulis C # dan XAML Anda sekali, dengan kode WinUI berjalan langsung di Windows, dan melalui Uno di platform lain, membangun di atas alat asli Xamarin untuk iOS, macOS, dan Android, dan menggunakan implementasi Mono-WASM di Web.

Menggunakan Uno untuk menghadirkan aplikasi .NET ke macOS

Di bawah tenda, implementasi macOS Uno dibangun di atas kesamaan antara AppKit macOS dan UIKit iOS. Ini memungkinkan tim pengembangan untuk memposting implementasi kontrol iOS mereka yang sudah ada. Meskipun berhasil, beberapa kontrol masih memiliki masalah, jadi ada baiknya bereksperimen sebelum menerapkan kode apa pun ke pengguna Anda. Meski begitu, ini adalah cara efektif untuk menghadirkan aplikasi .NET yang ada dari Windows ke macOS. Dengan membangun pustaka inti macOS, Uno semoga dapat memungkinkan kode Anda berjalan pada silikon Apple berbasis ARM yang baru saja diumumkan.

Dukungan Mac di Uno relatif baru, diluncurkan pada Mei 2020, dengan implementasi ulang aplikasi Windows Calculator di macOS dan diterbitkan melalui toko macOS Apple. Membangun rilis macOS dari kode Anda yang ada memerlukan penggunaan sekumpulan templat Uno baru dan alat baris perintah Windows .NET. Setelah Anda menginstal templat baru untuk Uno 2.3 atau 3.0, Anda dapat membuat perancah aplikasi untuk aplikasi macOS dengan nama yang sama dengan proyek yang ingin Anda targetkan.

Anda kemudian dapat memindahkan proyek tersebut ke folder yang sama dengan file aplikasi lainnya dan menambahkan proyek baru ke solusi Visual Studio yang ada. Kompilasi kode Anda untuk macOS, menggunakan Visual Studio untuk Mac dan konfigurasikan pengaturan simulator iPhone untuk menargetkan perangkat macOS pengembangan Anda.

Karena Anda tidak dapat menggunakan Visual Studio untuk Mac untuk bekerja pada aplikasi Windows WinUI, sebaiknya gunakan Git atau platform kontrol kode sumber serupa untuk solusi lengkap Anda sehingga Anda dapat mengelola perubahan kode untuk macOS dan Windows. Jika Anda mengerjakan versi WebAssembly dari aplikasi Anda, gunakan Visual Studio Code untuk membuatnya dengan ekstensi debugger C # dan JavaScript. Dukungan MacOS tersedia di Uno 2.4 dan 3.0, dengan versi terbaru mendemonstrasikan aplikasi pemutar video lintas platform berbasis WinUI yang tersedia di semua toko aplikasi utama.

Menggunakan WinUI 3.0 di Uno

Jika Anda berencana bekerja dengan WinUI 3.0, Anda harus menggunakan rilis 3.0 Uno terbaru. Sekali lagi, gunakan template .NET Uno Platform untuk mengatur perancah untuk kode Anda. Jika Anda memindahkan kode yang ada ke WinUI 3.0, Anda perlu mengubah namespace yang Anda gunakan, baik untuk kontrol Microsoft dan untuk kode Uno Anda — sesuatu yang cukup mudah dilakukan menggunakan alat pemfaktoran ulang yang dibangun ke dalam Visual Studio.

Salah satu aspek menarik dari Platform Uno adalah dukungan untuk perangkat layar ganda. Dengan mengambil kode yang ada ke Uno dan menambahkan kontrol layar ganda, Anda harus dapat mem-port aplikasi dari Windows ke Surface Duo berbasis Android yang akan datang dengan sedikit perubahan. Dengan Microsoft memprioritaskan aplikasi seluler layar ganda dan berkolaborasi dengan Google untuk meningkatkan dukungan untuk rilis Android yang akan datang, alat seperti Uno akan menjadi rute penting untuk mengambil pengalaman layar besar dan tablet yang ada dari Windows dan membawanya ke perangkat keras Android layar ganda dan layar ganda. .

Platform Uno dan masa depan pengembangan aplikasi .NET

Jelas bahwa Microsoft bertujuan untuk menghilangkan kebingungan tentang cara membangun aplikasi di ekosistem .NET, menggunakan WinUI dan Project Reunion untuk memberikan kejelasan yang sangat dibutuhkan tentang masa depan. Tetapi secepat Microsoft berjanji bahwa mereka akan dikirimkan, mereka masih cenderung terlalu lambat bagi banyak pengembang. Baik Platform Uno dan MAUI Xamarin adalah cara untuk mendapatkan akses ke teknologi ini lebih cepat, di atas kode .NET Anda yang ada.

Dengan menambahkan dukungan macOS dan UI Web ke .NET, Platform Uno tampaknya menjadi pilihan yang lebih baik untuk menargetkan sebanyak mungkin pengguna dengan sedikit perubahan kode; Ini adalah jalan menuju masa depan .NET yang seharusnya menghemat banyak waktu pengembangan dan meminimalkan beban dukungan.

Menggunakan Uno juga harus membuktikan kode .NET Anda yang sudah ada di masa mendatang dengan cara lain. WebAssembly dalam browser dan aplikasi WASI (WebAssembly System Interface) yang berdiri sendiri harus menyederhanakan proses membawa kode Anda ke perangkat keras edge generasi baru, terutama faktor bentuk kecil dan perangkat layar kecil berbasis ARM dan prosesor berdaya rendah lainnya.