Bagikan melalui


Pola Aplikasi Perusahaan menggunakan Xamarin.Forms eBook

Panduan arsitektur untuk mengembangkan aplikasi perusahaan yang dapat beradaptasi, dapat dipertahankan, dan dapat diuji Xamarin.Forms

Enterprise Application Patterns using Xamarin.Forms eBook

Catatan

eBook ini diterbitkan pada musim semi 2017, dan belum diperbarui sejak saat itu. Ada banyak dalam buku yang tetap berharga, tetapi beberapa bahan sudah kedaluarsa.

eBook ini memberikan panduan tentang cara mengimplementasikan pola Model-View-ViewModel (MVVM), injeksi dependensi, navigasi, validasi, dan manajemen konfigurasi, sambil mempertahankan konektivitas yang longgar. Selain itu, ada juga panduan tentang melakukan autentikasi dan otorisasi dengan IdentityServer, mengakses data dari layanan mikro kontainer, dan pengujian unit.

Kata pengantar

Bab ini menjelaskan tujuan dan ruang lingkup panduan, dan siapa tujuannya.

Pengantar

Pengembang aplikasi perusahaan menghadapi beberapa tantangan yang dapat mengubah arsitektur aplikasi selama pengembangan. Oleh karena itu, penting untuk membuat aplikasi sehingga dapat dimodifikasi atau diperpanjang dari waktu ke waktu. Merancang untuk kemampuan beradaptasi tersebut bisa sulit, tetapi biasanya melibatkan pemartisian aplikasi menjadi komponen yang digabungkan secara terpisah yang dapat dengan mudah diintegrasikan bersama ke dalam aplikasi.

MVVM

Pola Model-View-ViewModel (MVVM) membantu memisahkan logika bisnis dan presentasi aplikasi dengan bersih dari antarmuka pengguna (UI). Mempertahankan pemisahan yang bersih antara logika aplikasi dan UI membantu mengatasi banyak masalah pengembangan dan dapat membuat aplikasi lebih mudah diuji, dirawat, dan berkembang. Ini juga dapat sangat meningkatkan peluang penggunaan kembali kode dan memungkinkan pengembang dan desainer UI untuk lebih mudah berkolaborasi saat mengembangkan bagian masing-masing aplikasi.

Injeksi Dependensi

Injeksi dependensi memungkinkan pemisahan jenis beton dari kode yang bergantung pada jenis ini. Biasanya menggunakan kontainer yang menyimpan daftar pendaftaran dan pemetaan antara antarmuka dan jenis abstrak, dan jenis beton yang mengimplementasikan atau memperluas jenis ini.

Kontainer injeksi dependensi mengurangi konektor antar objek dengan menyediakan fasilitas untuk membuat instans kelas dan mengelola masa pakainya berdasarkan konfigurasi kontainer. Selama pembuatan objek, kontainer menyuntikkan dependensi apa pun yang diperlukan objek ke dalamnya. Jika dependensi tersebut belum dibuat, kontainer akan membuat dan menyelesaikan dependensinya terlebih dahulu.

Berkomunikasi Antara Komponen yang Digabungkan Secara Longgar

Kelas mengimplementasikan Xamarin.FormsMessagingCenter pola terbitkan-berlangganan, memungkinkan komunikasi berbasis pesan antar komponen yang tidak nyaman untuk ditautkan berdasarkan referensi objek dan jenis. Mekanisme ini memungkinkan penerbit dan pelanggan untuk berkomunikasi tanpa memiliki referensi satu sama lain, membantu mengurangi dependensi antar komponen, sekaligus memungkinkan komponen dikembangkan dan diuji secara independen.

Xamarin.Forms termasuk dukungan untuk navigasi halaman, yang biasanya dihasilkan dari interaksi pengguna dengan UI, atau dari aplikasi itu sendiri, sebagai akibat dari perubahan status berbasis logika internal. Namun, navigasi bisa rumit untuk diterapkan di aplikasi yang menggunakan pola MVVM.

Bab ini menyajikan NavigationService kelas, yang digunakan untuk melakukan navigasi tampilan model-pertama dari model tampilan. Menempatkan logika navigasi dalam kelas model tampilan berarti bahwa logika dapat dilakukan melalui pengujian otomatis. Selain itu, model tampilan kemudian dapat menerapkan logika untuk mengontrol navigasi untuk memastikan bahwa aturan bisnis tertentu diberlakukan.

Validasi

Aplikasi apa pun yang menerima input dari pengguna harus memastikan bahwa input valid. Tanpa validasi, pengguna dapat menyediakan data yang menyebabkan aplikasi gagal. Validasi memberlakukan aturan bisnis, dan mencegah penyerang menyuntikkan data berbahaya.

Dalam konteks pola Model-View-ViewModel (MVVM), model tampilan atau model sering diperlukan untuk melakukan validasi data dan memberi sinyal kesalahan validasi apa pun ke tampilan sehingga pengguna dapat memperbaikinya.

Manajemen Konfigurasi

Pengaturan memungkinkan pemisahan data yang mengonfigurasi perilaku aplikasi dari kode, memungkinkan perilaku diubah tanpa membangun kembali aplikasi. Pengaturan aplikasi adalah data yang dibuat dan dikelola aplikasi, dan pengaturan pengguna adalah pengaturan aplikasi yang dapat disesuaikan yang memengaruhi perilaku aplikasi dan tidak memerlukan penyesuaian ulang yang sering.

Layanan Mikro Dalam Kontainer

Layanan mikro menawarkan pendekatan untuk pengembangan dan penyebaran aplikasi yang cocok dengan persyaratan kelincahan, skala, dan keandalan aplikasi cloud modern. Salah satu keuntungan utama layanan mikro adalah bahwa layanan mikro dapat diskalakan secara independen, yang berarti bahwa area fungsional tertentu dapat diskalakan yang membutuhkan lebih banyak daya pemrosesan atau bandwidth jaringan untuk mendukung permintaan, tanpa perlu menskalakan area aplikasi yang tidak mengalami peningkatan permintaan.

Autentikasi dan Otorisasi

Ada banyak pendekatan untuk mengintegrasikan autentikasi dan otorisasi ke dalam Xamarin.Forms aplikasi yang berkomunikasi dengan aplikasi web MVC ASP.NET. Di sini, autentikasi dan otorisasi dilakukan dengan layanan mikro identitas kontainer yang menggunakan IdentityServer 4. IdentityServer adalah Koneksi OpenID sumber terbuka dan kerangka kerja OAuth 2.0 untuk ASP.NET Core yang terintegrasi dengan ASP.NET Core Identity untuk melakukan autentikasi token pembawa.

Mengakses Data Jarak Jauh

Banyak solusi berbasis web modern memanfaatkan layanan web, yang dihosting oleh server web, untuk menyediakan fungsionalitas untuk aplikasi klien jarak jauh. Operasi yang diekspos layanan web merupakan API web, dan aplikasi klien harus dapat menggunakan API web tanpa mengetahui bagaimana data atau operasi yang diimplementasikan API.

Pengujian Unit

Menguji model dan melihat model dari aplikasi MVVM identik dengan menguji kelas lain, dan alat dan teknik yang sama dapat digunakan. Namun, ada beberapa pola yang khas untuk memodelkan dan melihat kelas model, yang dapat memperoleh manfaat dari teknik pengujian unit tertentu.

Situs Komunitas

Proyek ini memiliki situs komunitas, tempat Anda dapat memposting pertanyaan, dan memberikan umpan balik. Situs komunitas terletak di GitHub. Atau, umpan balik tentang eBook dapat dikirim melalui email ke dotnet-architecture-ebooks-feedback@service.microsoft.com.