Menjelaskan arsitektur .NET MAUI

Selesai

Pola umum yang digunakan untuk pengembangan aplikasi lintas platform adalah untuk memfaktorkan logika bisnis dari antarmuka pengguna, lalu mengembangkan antarmuka pengguna dan logika UI yang terpisah untuk setiap platform. Meskipun logika bisnis tetap tidak berubah untuk setiap jenis perangkat, kode yang mendorong aplikasi dan menyajikan data dapat bervariasi. Varians ini karena kemampuan, API, dan fitur yang berbeda yang disediakan perangkat. Membangun aplikasi multiplatform dengan cara ini melibatkan berurusan dengan tidak hanya Software Development Kits (SDK) terpisah, tetapi juga berbagai bahasa dan toolset.

Tujuan dari .NET MAUI (Antarmuka Pengguna Aplikasi Multi-platform) adalah untuk menyederhanakan pengembangan aplikasi multiplatform. Dengan menggunakan .NET MAUI, Anda membuat aplikasi multiplatform menggunakan satu proyek, tetapi Anda dapat menambahkan kode sumber dan sumber daya khusus platform jika perlu. Tujuan utama .NET MAUI adalah untuk memungkinkan Anda mengimplementasikan logika aplikasi dan tata letak UI Anda sebanyak mungkin dalam satu basis kode.

Dalam unit ini, Anda mempelajari tentang arsitektur .NET MAUI dan alat yang diperlukan untuk membangun aplikasi .NET MAUI.

Apa itu tumpukan teknologi .NET MAUI?

.NET menyediakan serangkaian kerangka kerja khusus platform untuk membuat aplikasi: .NET untuk Android, .NET untuk iOS (dan iPadOS), .NET untuk Mac, dan WinUI 3 (menggunakan SDK Aplikasi Windows). Kerangka kerja ini semuanya memiliki akses ke Base Class Library (BCL) .NET 6 yang sama. Pustaka ini menyediakan fungsionalitas untuk membuat dan mengelola sumber daya, dan untuk secara umum mengabstraksi detail perangkat yang mendasar jauh dari kode Anda. BCL bergantung pada runtime bahasa umum .NET untuk menyediakan lingkungan eksekusi untuk kode Anda. Mono, implementasi sumber terbuka dari runtime .NET, mengimplementasikan lingkungan Android, iOS (dan iPadOS), dan macOS. Di Windows, Win32 melakukan peran yang sama, kecuali dioptimalkan untuk platform Windows.

Meskipun BCL memungkinkan aplikasi yang berjalan pada berbagai jenis perangkat untuk berbagi logika bisnis umum, berbagai platform memiliki cara yang berbeda untuk menentukan antarmuka pengguna aplikasi. Platform ini menyediakan berbagai model untuk menentukan bagaimana elemen antarmuka pengguna berkomunikasi dan saling beroperasi. Anda dapat membuat UI untuk setiap platform secara terpisah dengan menggunakan kerangka kerja khusus platform yang sesuai (.NET untuk Android, .NET untuk iOS, .NET untuk Mac, atau WinUI 3). Tetapi pendekatan ini mengharuskan Anda untuk mempertahankan basis kode untuk setiap keluarga perangkat individu. .NET MAUI menyediakan satu kerangka kerja untuk membuat UI untuk aplikasi seluler dan desktop. Anda membuat UI menggunakan kerangka kerja ini (ditunjukkan oleh Panah 1 dalam diagram berikut), dan .NET MAUI mengurus konversinya ke platform yang sesuai (Panah 2).

Mungkin ada kalanya Anda perlu menerapkan fitur khusus platform. Dalam situasi ini, Anda dapat memanggil metode dalam kerangka kerja khusus platform, seperti yang disorot oleh Arrow 3 dalam diagram berikut.

Diagram tumpukan teknologi .NET MAUI dan cara mengimplementasikan fitur khusus platform.

Bagaimana cara kerja .NET MAUI?

.NET MAUI mengabstraksi implementasi elemen UI dari deskripsi logisnya. Anda dapat menjelaskan UI menggunakan XAML (Extensible Application Markup Language), bahasa netral platform berdasarkan XML. Misalnya, fragmen XAML berikut menunjukkan deskripsi kontrol tombol:

<Button Text="Click me"
        SemanticProperties.Hint="Counts the number of times you click"
        Clicked="OnCounterClicked"
        HorizontalOptions="Center" />

Contoh ini menentukan label untuk tombol ("Klik saya"), dan menentukan bahwa metode bernama OnCounterClicked harus dijalankan saat pengguna memilih tombol . Properti lain dapat mengubah tata letak tombol dan teks; dalam contoh ini, teks berada di tengah tombol. Properti semantik menyediakan dukungan untuk aksesibilitas bagi pengguna dengan gangguan visual.

.NET MAUI selalu menghasilkan kode asli untuk perangkat target, sehingga Anda mendapatkan kinerja yang optimal. .NET MAUI menggunakan handler khusus untuk setiap platform dan elemen UI untuk melakukan operasi. Misalnya, jika Anda menargetkan iOS untuk aplikasi, handler .NET MAUI memetakan kode ini ke iOS UIButton. Jika berjalan di Android, Anda akan mendapatkan Android AppCompatButton. Handler ini diakses secara tidak langsung melalui antarmuka khusus kontrol yang disediakan oleh .NET MAUI, seperti IButton untuk tombol.

Diagram bagaimana .NET MAUI memetakan kontrol XAML ke kontrol asli. Ini menunjukkan kontrol .NET MAUI mengimplementasikan antarmuka yang juga diterapkan oleh setiap handler asli.

Catatan

Jika ingin, Anda juga dapat membuat antarmuka pengguna secara dinamis menggunakan kode C#. Pendekatan ini memungkinkan Anda mengubah tata letak sesuai dengan lingkungan. Misalnya, Anda mungkin tidak ingin kontrol tertentu muncul jika pengguna tidak memiliki tingkat otorisasi yang sesuai.

.NET MAUI mempermudah akses kontrol umum seperti tombol. Kontrol umum lainnya—seperti bidang entri teks, label, dan pemilih tanggal—semampunya. Namun, kontrol individu tidak cukup untuk membuat platform yang baik untuk membuat aplikasi yang kaya. .NET MAUI juga menyediakan:

  • Mesin tata letak yang rumit untuk mendesain halaman.
  • Beberapa jenis halaman untuk membuat jenis navigasi yang kaya, seperti laci.
  • Dukungan untuk pengikatan data, untuk pola pengembangan yang lebih elegan dan dapat dipertahankan.
  • Kemampuan untuk membuat penanganan kustom untuk meningkatkan cara elemen antarmuka pengguna disajikan.
  • Akses ke API asli secara langsung dan abstraksi dari banyak kebutuhan umum aplikasi seluler & desktop yang terpisah dari UI. Pustaka penting memungkinkan aplikasi untuk mengakses hal-hal seperti GPS, akselerometer, dan status baterai dan jaringan. Ada puluhan sensor dan layanan yang umum untuk pengembangan seluler juga tersedia melalui pustaka ini.

Uji pengetahuan

1.

Lingkungan mana yang menyediakan dukungan runtime bahasa umum untuk aplikasi WinUI 3?

2.

Bahasa pemrogram markup apa yang dapat Anda gunakan untuk menata letak antarmuka pengguna aplikasi .NET MAUI?

Periksa jawaban Anda