UI Web Bersama
Penting
Proyek ini adalah rilis eksperimental. Kami harap Anda mencoba Experimental Mobile Blazor Bindings dan memberikan umpan balik di https://github.com/xamarin/MobileBlazorBindings.
Sekarang setelah Anda membangun aplikasi hibrid Pengikatan Blazor Seluler yang menggabungkan UI web (HTML dengan CSS), panduan ini akan menunjukkan kepada Anda cara berbagi UI web dengan Blazor Web App sehingga Anda dapat menyediakan UI aplikasi yang sama di web.
Di Blazor ini dilakukan dengan menempatkan UI bersama dalam proyek Razor Class Library, atau RCL untuk singkatnya. Ini memungkinkan pengemasan UI web dan kode sebagai entitas yang dapat digunakan kembali yang dapat direferensikan oleh beberapa proyek dalam solusi atau dibagikan lebih luas dengan mendistribusikannya sebagai paket NuGet. Paket RCL dapat dirujuk oleh aplikasi Pengikatan Blazor Seluler dan aplikasi Web Blazor sehingga mereka berbagi UI yang sama persis.
Dalam panduan ini Anda akan membuat UI Email Display yang dapat digunakan kembali di RCL dan menggunakannya di aplikasi hibrid Pengikatan Blazor Seluler dan di aplikasi Web Blazor.
Catatan
Halaman ini adalah kelanjutan dari panduan Membangun aplikasi hibrid pertama Anda . Kami sarankan Anda menyelesaikan panduan tersebut sebelum melanjutkan.
Menambahkan Razor Class Library (RCL)
Untuk menambahkan RCL ke aplikasi Anda:
- Klik kanan pada node Solusi di Penjelajah Solusi dan pilih Tambahkan / Proyek Baru.
- Temukan jenis proyek Pustaka Kelas Razor dan klik Berikutnya.
- Masukkan nama untuk proyek, seperti
EmailDisplayUI
dan klik Buat. - Dalam dialog berikutnya pastikan bahwa pengaturan berikut dipilih:
.NET Core 3.1
, Tanpa Autentikasi, dan tidak ada dukungan untuk halaman dan tampilan, lalu klik Buat.
Proyek baru berisi file Razor sendiri di mana Anda akan menulis UI web dan wwwroot
folder untuk berisi aset statis yang merupakan bagian dari komponen ini.
Menambahkan UI web bersama ke RCL
Klik kanan pada proyek RCL dan pilih Tambahkan / Kelas
Masukkan nama
EmailData.cs
dan klik TambahkanMenambahkan file bernama
Email.cs
ke RCLGanti kontennya dengan kode C# berikut:
namespace EmailDisplayUI { public class EmailData { public string From { get; set; } public string To { get; set; } public string Subject { get; set; } public bool IsImportant { get; set; } public string Body { get; set; } } }
Mengganti nama
Component1.razor
menjadiDisplayEmail.razor
Ganti kontennya dengan markup Razor berikut:
<div class="emailDisplay"> <div class="emailHeader"> <div> <label>From:</label> @Email.From </div> <div> <label>To:</label> @Email.To </div> <div> <label>Priority:</label> @(Email.IsImportant ? "High" : "Normal") </div> <div> <label>Subject:</label> @Email.Subject </div> </div> <div class="emailBody"> @Email.Body </div> </div> @code { [Parameter] public EmailData Email { get; set; } }
Ubah isi menjadi
wwwroot/styles.css
berikut ini:label { font-weight: bold; font-style: italic; } .emailDisplay { background-image: url('background.png'); } .emailHeader { border: 2px solid #808080; padding: 1em; margin: 1em 0; } .emailBody { border: 1px solid #808080; padding: 1em; margin: 1em 0; }
Mereferensikan RCL
Untuk menggunakan RCL, Anda perlu mereferensikannya dari proyek UI utama sehingga UI dapat dirujuk darinya. Anda juga perlu mereferensikannya dari proyek khusus platform sehingga aset statis akan terdeteksi dan disertakan dalam aplikasi tersebut.
Di masing-masing proyek FirstBlazorHybridApp, FirstBlazorHybridApp.Android, FirstBlazorHybridApp.iOS, FirstBlazorHybridApp.macOS, dan FirstBlazorHybridApp.Windows melakukan hal berikut:
- Klik kanan pada proyek dan pilih Tambahkan / Referensi Proyek atau Tambahkan / Referensi
- Pilih
EmailDisplayUI
dan klik OK
Sekarang Anda siap untuk menggunakan antarmuka pengguna Email Display dalam proyek Anda:
Dalam proyek FirstBlazorHybridApp buka
WebUI/_Imports_.razor
file dan tambahkan baris ini ke akhir file:@using EmailDisplayUI
Dalam proyek FirstBlazorHybridApp buka
WebUI/Pages/Index.razor
fileTambahkan konten berikut ke bagian bawah file:
<DisplayEmail Email="email" /> @code { EmailData email = new EmailData { From="sender@example.com", To="recipient@example.com", IsImportant=true, Subject="Learn about Blazor", Body="Tutorials are wonderful!" }; }
Tambahkan referensi ke CSS dari setiap proyek khusus platform dengan menambahkan baris
<link href="_content/EmailDisplayUI/styles.css" rel="stylesheet" />
ke bagian<head>
:- Android:
wwwroot/index.html
- iOS:
Resources/wwwroot/index.html
- macOS:
Resources/wwwroot/index.html
- Windows:
wwwroot/index.html
- Android:
Menjalankan aplikasi untuk menguji UI
Anda sekarang siap untuk menguji UI baru! Klik kanan salah satu proyek Android, iOS, macOS, atau Windows, pilih Tetapkan sebagai Proyek Startup, dan jalankan aplikasi. Anda akan melihat beban UI asli dengan UI web di bawahnya, dan UI web akan menampilkan UI tampilan email yang Anda buat.
Pada Simulator iOS akan terlihat seperti ini:
[ ! [Email menampilkan UI yang berjalan di Simulator iOS[(./media/shared-web-ui/ios-shared-ui-inline.png) [(./media/shared-web-ui/ios-shared-ui-expanded.png#lightbox)
Menambahkan proyek Blazor Web
Sekarang Anda siap untuk menggunakan kembali UI yang Anda buat di aplikasi web!
Klik kanan pada node solusi di Penjelajah Solusi dan pilih Tambahkan / Proyek Baru
Pilih templat Aplikasi Blazor dan klik Berikutnya
Masukkan nama, seperti
FirstBlazorWebApp
dan klik BuatPilih opsi Aplikasi Blazor Server,
.NET Core 3.1
, Tanpa Autentikasi, Ya untuk HTTPS, dan Tidak untuk Docker, dan klik Buat.Klik kanan pada proyek FirstBlazorWebApp dan pilih Tambahkan / Referensi Proyek
EmailDisplayUI
Pilih proyek dan klik OKPages/_Host.cshtml
Buka file dan tambahkan baris<link href="_content/EmailDisplayUI/styles.css" rel="stylesheet" />
ke bagian<head>
_Imports.razor
Buka file dan tambahkan baris ini ke akhir file:@using EmailDisplayUI
Pages/Index.razor
Buka file dan tambahkan konten berikut ke bagian bawah file:<DisplayEmail Email="email" /> @code { EmailData email = new EmailData { From="sender@example.com", To="recipient@example.com", IsImportant=true, Subject="Learn about Blazor", Body="Tutorials are wonderful!" }; }
Untuk menjalankan proyek, klik kanan proyek, pilih Atur sebagai Proyek Startup, dan jalankan. Ini akan memulai aplikasi web ASP.NET Core dan membuka browser web default Anda ke aplikasi.
Ini akan terlihat seperti ini di browser web Anda:
[ ! [Email menampilkan UI yang berjalan di browser web[(./media/shared-web-ui/web-shared-ui-inline.png) [(./media/shared-web-ui/web-shared-ui-expanded.png#lightbox)
Sumber Daya Tambahan:
Untuk mempelajari selengkapnya tentang Pustaka Kelas Razor, lihat sumber daya berikut:
- ASP.NET pustaka kelas komponen Core Razor
- Membuat UI yang dapat digunakan kembali menggunakan proyek pustaka kelas Razor di ASP.NET Core
Ringkasan
Dalam panduan ini Anda membuat aplikasi Blazor Hybrid yang menggunakan Razor Class Library (RCL) untuk sebagian UI-nya (tampilan email). Anda kemudian menggunakan RCL yang sama untuk menghosting UI dalam aplikasi web ASP.NET Core.
Panduan ini menunjukkan contoh UI baca-saja, tetapi teknik yang sama dapat digunakan untuk membuat UI yang sangat kompleks dengan logika aplikasi yang sangat kompleks untuk memenuhi persyaratan aplikasi apa pun. Anda dapat menggunakan pola seperti injeksi dependensi (DI) untuk membuat layanan khusus platform.