Peramban Unicode
Aplikasi web Blazor C# untuk menelusuri database karakter Unicode.
Aplikasi dihosting di sana: https://unicode-browser.azurewebsites.net/home
Fitur
- Dekomposisi teks dalam poin kode Unicode.
- Lihat informasi rinci tentang titik kode.
- Telusuri titik kode di Blok Unicode tertentu.
- Cari karakter apa pun berdasarkan nama.
- Tampilkan informasi tambahan (dalam format penurunan harga) pada halaman yang didedikasikan untuk blok Unicode.
Cobalah
Berikut beberapa URL yang dapat Anda coba, untuk melihat aplikasi beraksi:
- https://unicode-browser.azurewebsites.net/blocks/Miscellaneous%20Symbols%20and%20Pictographs
- https://unicode-browser.azurewebsites.net/codepoints/1F365
- https://unicode-browser.azurewebsites.net/search?q=Tree
- https://unicode-browser.azurewebsites.net/decomposition?text=????????
- https://unicode-browser.azurewebsites.net/blocks/Tangut
- https://unicode-browser.azurewebsites.net/blocks/Tags
Teknologi utama yang digunakan
- ASP.NET Core 3.0 (.NET Core 3.0.0-pratinjau8.19405.7)
- jaket
- Markdig 0.17.1
- Bootstrap 4.1
- Font Luar Biasa 5.0.10
- jQuery 3.3.1 (Karena Bootstrap JS sepertinya masih memerlukannya)
Tautan dokumentasi
Dokumentasi Blazor tersedia di docs.microsoft.com.
Latar Belakang
Sebagian besar aplikasi ini awalnya ditulis pada awal tahun 2016, menggunakan versi pratinjau ASP.NET Core, TypeScript, dan Aurelia. Pada saat itu, ini adalah kesempatan untuk mempelajari kerangka kerja baru tersebut, dan hasilnya berhasil dengan baik.
Kode sumber versi saat ini sebagian besar merupakan adaptasi langsung dari prototipe awal. Faktanya, sebagian besar kode server hanya di-porting ke ASP.NET Core 2.1 dengan sedikit modifikasi.
Namun, bagian klien adalah tempat yang "menyenangkan", karena hanya bagian HTML yang dapat digunakan kembali. (Dan masih memerlukan migrasi ke Bootstrap 4 / Fontawesome 5) Sekali lagi, ini adalah kesempatan yang bagus untuk menguji dan mempelajari cara menggunakan Blazor, serta mengikuti perkembangan teknologi lainnya.
mengerti
Blazor adalah teknologi yang sangat baru, masih dalam tahap pratinjau awal, dan terkadang sulit untuk ditangani.
Oleh karena itu, saya mendapati diri saya tersandung pada hal-hal yang menurut saya sepele, dan saya merasa harus menulis banyak kode boilerplate agar hal-hal ini berfungsi.
misalnya
* Saya cukup kecewa karena saya tidak dapat membagi kelas Model antara Server dan Klien, karena Blazor saat ini menggunakan SimpleJson, yang sangat terbatas. ? (Dan sayangnya, Newtonsoft.Json tampaknya tidak berfungsi cukup baik untuk saat ini. ?)
- Pengikatan ke parameter string kueri harus dilakukan secara manual
- Halaman terkadang perlu mendengarkan perubahan lokasi secara manual (misalnya perubahan URL pada halaman yang sama)
- Tidak ada pengelolaan negara yang out of the box. (misalnya Apa yang terjadi ketika Anda bolak-balik dalam sejarah) => Saya menyelesaikannya dengan tidak memerlukan manajemen negara sama sekali, dan selalu mengandalkan rute atau string kueri untuk itu.
- Siklus hidup komponen tampaknya tidak terlalu bisa diperluas: akan sulit untuk menambahkan perilaku kompleks di kelas dasar (misalnya menampilkan spinner sebelum konten dimuat)
Segalanya telah membaik di 3.0 (parameter rute sekarang diterjemahkan?) tetapi menurut saya sebagian besar poin masih tetap benar.
Beberapa hal baru untuk .NET Core 3.0:
- System.Text.Json adalah serializer JSON (default) baru untuk Blazor. Namun, bagian tepinya sangat kasar. Tidak tersedianya deserialisasi jenis yang tidak dapat diubah di luar kotak sungguh menyusahkan. ? => Saya menerapkan JsonConverter untuk mengelola kasus khusus ini. Dengan mengandalkan pembuatan kode dinamis, seseorang dapat membuat tipe yang akan diterima oleh API baru untuk dideserialisasi, lalu membuat instance tipe yang tidak dapat diubah.
- Di Pratinjau 8, proyek klien Blazor masih harus menargetkan .NET Standard 2.0 dan bukan .NET Standard 2.1.