Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Petunjuk / Saran
Konten ini adalah kutipan dari eBook, Architect Modern Web Applications dengan ASP.NET Core dan Azure, tersedia di .NET Docs atau sebagai PDF gratis yang dapat diunduh yang dapat dibaca secara offline.
"Hukum Atwood: Aplikasi apa pun yang dapat ditulis dalam JavaScript, pada akhirnya akan ditulis dalam JavaScript."
- Jeff Atwood
Ada dua pendekatan umum untuk membangun aplikasi web saat ini: aplikasi web tradisional yang melakukan sebagian besar logika aplikasi di server, dan aplikasi satu halaman (SPAs) yang melakukan sebagian besar logika antarmuka pengguna di browser web, berkomunikasi dengan server web terutama menggunakan API web. Pendekatan hibrid juga dimungkinkan, yang paling sederhana menjadi host satu atau beberapa subapplikasi seperti SPA yang kaya dalam aplikasi web tradisional yang lebih besar.
Gunakan aplikasi web tradisional saat:
Persyaratan sisi klien aplikasi Anda sederhana atau bahkan baca-saja.
Aplikasi Anda perlu berfungsi di browser tanpa dukungan JavaScript.
Aplikasi Anda menghadap publik dan mendapat manfaat dari penemuan dan rujukan mesin pencari.
Gunakan SPA saat:
Aplikasi Anda harus mengekspos antarmuka pengguna yang kaya dengan banyak fitur.
Tim Anda terbiasa dengan JavaScript, TypeScript, atau BlazorWebAssembly pengembangan.
Aplikasi Anda harus sudah mengekspos API untuk klien lain (internal atau publik).
Selain itu, kerangka kerja SPA memerlukan keahlian arsitektur dan keamanan yang lebih besar. Mereka mengalami churn yang lebih besar karena pembaruan yang sering dan kerangka kerja klien baru daripada aplikasi web tradisional. Mengonfigurasi proses build dan penyebaran otomatis dan menggunakan opsi penyebaran seperti kontainer mungkin lebih sulit dengan aplikasi SPA daripada aplikasi web tradisional.
Peningkatan pengalaman pengguna yang dimungkinkan oleh pendekatan SPA harus ditimbang terhadap pertimbangan ini.
Blazor
ASP.NET Core mencakup model untuk membangun antarmuka pengguna yang kaya, interaktif, dan dapat disusun yang disebut Blazor. Blazor sisi server memungkinkan pengembang untuk membangun UI dengan C# dan Razor di server dan agar UI terhubung secara interaktif ke browser secara real time menggunakan koneksi SignalR persisten. Blazor WebAssembly memperkenalkan opsi lain untuk aplikasi Blazor, memungkinkan aplikasi tersebut berjalan di browser menggunakan WebAssembly. Karena ini adalah kode .NET nyata yang berjalan di WebAssembly, Anda dapat menggunakan kembali kode dan pustaka dari bagian sisi server aplikasi Anda.
Blazor menyediakan opsi ketiga baru untuk dipertimbangkan saat mengevaluasi apakah akan membangun aplikasi web murni yang dirender server atau SPA. Anda dapat membangun perilaku sisi klien yang kaya dan seperti SPA menggunakan Blazor, tanpa perlu pengembangan JavaScript yang signifikan. Blazor aplikasi dapat memanggil API untuk meminta data atau melakukan operasi sisi server. Mereka dapat beroperasi dengan JavaScript jika perlu untuk memanfaatkan pustaka dan kerangka kerja JavaScript.
Pertimbangkan untuk membangun aplikasi web Anda dengan Blazor kapan:
Aplikasi Anda harus mengekspos antarmuka pengguna yang kaya
Tim Anda lebih nyaman dengan pengembangan .NET daripada pengembangan JavaScript atau TypeScript
Jika Anda memiliki aplikasi formulir web yang sudah ada, Anda mempertimbangkan untuk bermigrasi ke .NET Core atau .NET terbaru, Anda mungkin ingin meninjau e-book gratis, Blazor bagi Pengembang Formulir Web untuk melihat apakah masuk akal untuk mempertimbangkan untuk memigrasikannya ke Blazor.
Untuk informasi selengkapnya tentang Blazor, lihat Mulai menggunakan Blazor.
Kapan memilih aplikasi web tradisional
Bagian berikut adalah penjelasan yang lebih rinci tentang alasan yang dinyatakan sebelumnya untuk memilih aplikasi web tradisional.
Aplikasi Anda memiliki persyaratan di sisi klien yang sederhana, kemungkinan hanya baca
Banyak aplikasi web terutama digunakan dengan cara baca-saja oleh sebagian besar pengguna mereka. Aplikasi baca-saja (atau baca-sebagian besar) cenderung jauh lebih sederhana daripada aplikasi yang memelihara dan memanipulasi banyak status. Misalnya, mesin pencari mungkin terdiri dari satu titik entri dengan kotak teks dan halaman kedua untuk menampilkan hasil pencarian. Pengguna anonim dapat dengan mudah membuat permintaan, dan ada sedikit kebutuhan untuk logika sisi klien. Demikian juga, blog atau aplikasi sistem manajemen konten yang ditujukan untuk publik biasanya terutama terdiri dari konten dengan sedikit interaksi dari sisi klien. Aplikasi tersebut mudah dibangun sebagai aplikasi web berbasis server tradisional, yang melakukan logika di server web dan merender HTML untuk ditampilkan di browser. Fakta bahwa setiap halaman unik situs memiliki URL sendiri yang dapat di-bookmark dan diindeks oleh mesin pencari (secara default, tanpa harus menambahkan fungsionalitas ini sebagai fitur terpisah dari aplikasi) juga merupakan manfaat yang jelas dalam skenario tersebut.
Aplikasi Anda perlu berfungsi di browser tanpa dukungan JavaScript
Aplikasi web yang perlu berfungsi di browser dengan dukungan JavaScript terbatas atau tidak ada yang harus ditulis menggunakan alur kerja aplikasi web tradisional (atau setidaknya dapat kembali ke perilaku tersebut). SPAs memerlukan JavaScript sisi klien agar berfungsi; jika tidak tersedia, SPAs bukanlah pilihan yang baik.
Tim Anda tidak terbiasa dengan teknik pengembangan JavaScript atau TypeScript
Jika tim Anda tidak terbiasa dengan JavaScript atau TypeScript, tetapi terbiasa dengan pengembangan aplikasi web sisi server, maka mereka mungkin akan dapat mengirimkan aplikasi web tradisional lebih cepat daripada SPA. Kecuali belajar untuk memprogram SPAs adalah tujuan, atau pengalaman pengguna yang diberikan oleh SPA diperlukan, aplikasi web tradisional adalah pilihan yang lebih produktif bagi tim yang sudah terbiasa membangunnya.
Kapan memilih SPAs
Bagian berikut adalah penjelasan yang lebih rinci tentang kapan harus memilih gaya pengembangan Aplikasi Satu Halaman untuk aplikasi web Anda.
Aplikasi Anda harus mengekspos antarmuka pengguna yang kaya dengan banyak fitur
SPAs dapat mendukung fungsionalitas sisi klien yang kaya yang tidak memerlukan pemuatan ulang halaman saat pengguna mengambil tindakan atau menavigasi di antara area aplikasi. SPAs dapat memuat lebih cepat, mengambil data di latar belakang, dan tindakan pengguna individual lebih responsif karena pemuatan ulang halaman penuh jarang terjadi. SPAs dapat mendukung pembaruan bertahap, menyimpan formulir atau dokumen yang sebagian lengkap tanpa pengguna harus mengklik tombol untuk mengirimkan formulir. SPAs dapat mendukung fitur-fitur interaktif di sisi klien, seperti fungsi seret dan lepas, dengan lebih mudah daripada aplikasi tradisional. SPAs dapat dirancang untuk berjalan dalam mode terputus, membuat pembaruan untuk model sisi klien yang akhirnya disinkronkan kembali ke server setelah koneksi dibuat kembali. Pilih aplikasi bergaya SPA jika persyaratan aplikasi Anda menyertakan fungsionalitas kaya yang melampaui apa yang ditawarkan formulir HTML biasa.
Sering kali, SPAs perlu mengimplementasikan fitur yang dibangun ke dalam aplikasi web tradisional, seperti menampilkan URL yang bermakna di bilah alamat yang mencerminkan operasi saat ini (dan memungkinkan pengguna untuk menandai atau tautan mendalam ke URL ini untuk kembali ke url ini). SPAs juga harus memungkinkan pengguna untuk menggunakan tombol kembali dan maju pada browser dengan hasil yang tidak akan mengejutkan mereka.
Tim Anda terbiasa dengan pengembangan JavaScript dan/atau TypeScript
Menulis SPAs memerlukan keakraban dengan JavaScript dan/atau TypeScript dan teknik dan pustaka pemrograman sisi klien. Tim Anda harus kompeten dalam menulis JavaScript modern menggunakan kerangka kerja SPA seperti Angular.
Referensi – Kerangka Kerja SPA
- Sudut: https://angular.io
- React: https://reactjs.org/
- Vue.js: https://vuejs.org/
Aplikasi Anda harus sudah mengekspos API untuk klien lain (internal atau publik)
Jika Anda sudah mendukung API web untuk digunakan oleh klien lain, mungkin perlu lebih sedikit upaya untuk membuat implementasi SPA yang memanfaatkan API ini daripada mereproduksi logika dalam bentuk sisi server. SPAs memanfaatkan API web secara ekstensif untuk mengkueri dan memperbarui data saat pengguna berinteraksi dengan aplikasi.
Kapan harus memilih Blazor
Bagian berikut adalah penjelasan yang lebih rinci tentang kapan harus memilih Blazor untuk aplikasi web Anda.
Aplikasi Anda harus mengekspos antarmuka pengguna yang kaya
Seperti SPAs berbasis JavaScript, Blazor aplikasi dapat mendukung perilaku klien yang kaya tanpa memuat ulang halaman. Aplikasi ini lebih responsif terhadap pengguna, hanya mengambil data (atau HTML) yang diperlukan untuk merespons interaksi pengguna tertentu. Dirancang dengan benar, aplikasi sisi Blazor server dapat dikonfigurasi untuk berjalan sebagai aplikasi sisi Blazor klien dengan perubahan minimal setelah fitur ini didukung.
Tim Anda lebih nyaman dengan pengembangan .NET daripada pengembangan JavaScript atau TypeScript
Banyak pengembang lebih produktif dengan .NET dan Razor daripada dengan bahasa sisi klien seperti JavaScript atau TypeScript. Karena sisi server aplikasi sudah dikembangkan dengan .NET, menggunakan Blazor memastikan setiap pengembang .NET di tim dapat memahami dan berpotensi membangun perilaku ujung depan aplikasi.
Tabel keputusan
Tabel keputusan berikut merangkum beberapa faktor dasar yang perlu dipertimbangkan saat memilih antara aplikasi web tradisional, SPA, atau Blazor aplikasi.
Faktor | Aplikasi Web Tradisional | Aplikasi Halaman Tunggal | Blazor App |
---|---|---|---|
Kewajiban Tim untuk Memahami JavaScript/TypeScript | Minimal | Diperlukan | Minimal |
Mendukung Browser tanpa Scripting | Dukungan | Tidak Didukung | Dukungan |
Perilaku Aplikasi Minimum Client-Side | Sangat Cocok | Berlebihan | Dapat Dilaksanakan |
Persyaratan Antarmuka Pengguna yang Kaya dan Kompleks | Terbatas | Sangat Cocok | Sangat Cocok |
Pertimbangan lain
Web Apps tradisional cenderung lebih sederhana dan memiliki kriteria Search Engine Optimization (SEO) yang lebih baik daripada aplikasi SPA. Bot mesin pencari dapat dengan mudah menggunakan konten dari aplikasi tradisional, sementara dukungan untuk pengindeksan SPAs mungkin kurang atau terbatas. Jika aplikasi Anda mendapat manfaat dari penemuan publik oleh mesin pencari, ini sering kali menjadi pertimbangan penting.
Selain itu, kecuali Anda telah membuat alat manajemen untuk konten SPA Anda, mungkin mengharuskan pengembang untuk membuat perubahan. Web Apps tradisional sering kali lebih mudah bagi non-pengembang untuk diubah, karena sebagian besar kontennya hanya HTML dan mungkin tidak memerlukan proses build untuk pratinjau atau bahkan penyebaran. Jika non-pengembang di organisasi Anda cenderung perlu mempertahankan konten aplikasi, aplikasi web tradisional mungkin menjadi pilihan yang lebih baik.
SPAs bersinar ketika aplikasi memiliki bentuk interaktif yang kompleks atau fitur interaksi pengguna lainnya. Untuk aplikasi kompleks yang memerlukan autentikasi untuk digunakan, dan dengan demikian tidak dapat diakses oleh laba-laba mesin pencari publik, SPAs adalah opsi yang bagus dalam banyak kasus.