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.
Nota
Ini bukan versi terbaru dari artikel ini. Untuk rilis saat ini, lihat versi .NET 9 dari artikel ini.
Peringatan
Versi ASP.NET Core ini tidak lagi didukung. Untuk informasi lebih lanjut, lihat Kebijakan Dukungan .NET dan .NET Core . Untuk rilis saat ini, lihat versi .NET 9 dari artikel ini.
Penting
Informasi ini berkaitan dengan produk pra-rilis yang mungkin akan dimodifikasi secara substansial sebelum dirilis secara komersial. Microsoft tidak memberikan jaminan, tersurat maupun tersirat, sehubungan dengan informasi yang diberikan di sini.
Untuk rilis saat ini, lihat versi .NET 9 dari artikel ini.
Waktu Jalan Penautan Ulang
Untuk informasi tentang cara runtime relinking meminimalkan ukuran unduhan aplikasi, lihat ASP.NET alat build Core Blazor WebAssembly dan kompilasi ahead-of-time (AOT).
Gunakan System.Text.Json
Blazor JS Implementasi interop bergantung pada System.Text.Json, yang merupakan pustaka serialisasi JSON berkinerja tinggi dengan alokasi memori rendah. Penggunaan System.Text.Json seharusnya tidak menghasilkan ukuran payload aplikasi tambahan daripada menambahkan satu atau beberapa pustaka JSON alternatif.
Untuk panduan migrasi, lihat Cara bermigrasi dari Newtonsoft.Json
ke System.Text.Json
.
Pemangkasan Bahasa Perantara (IL)
Bagian ini hanya berlaku untuk skenario sisi Blazor klien.
Pemangkasan rakitan yang Blazor WebAssembly tidak digunakan dari aplikasi mengurangi ukuran aplikasi dengan menghapus kode yang tidak digunakan di biner aplikasi. Untuk informasi selengkapnya, lihat Mengonfigurasi Pemangkas untuk ASP.NET Core Blazor.
Menautkan Blazor WebAssembly aplikasi mengurangi ukuran aplikasi dengan memangkas kode yang tidak digunakan di biner aplikasi. Linker Bahasa Perantara (IL) hanya diaktifkan saat membangun konfigurasi Release
. Untuk mendapatkan manfaat dari ini, terbitkan aplikasi untuk penyebaran menggunakan dotnet publish
perintah dengan opsi -c|--configuration diatur ke Release
:
dotnet publish -c Release
Rakitan beban malas
Bagian ini hanya berlaku untuk skenario sisi Blazor klien.
Muat rakitan saat runtime saat rakitan diperlukan oleh rute. Untuk informasi selengkapnya, lihat rakitan beban malas di ASP.NET Core Blazor WebAssembly.
Kompresi
Bagian ini hanya berlaku untuk Blazor WebAssembly aplikasi.
Blazor WebAssembly Saat aplikasi diterbitkan, output dikompresi secara statis selama penerbitan untuk mengurangi ukuran aplikasi dan menghapus overhead untuk kompresi runtime. Blazor bergantung pada server untuk melakukan negosiasi konten dan melayani file yang dikompresi secara statis.
Setelah aplikasi disebarkan, verifikasi bahwa aplikasi menyajikan file terkompresi. Periksa tab Jaringan di alat pengembang browser dan verifikasi bahwa file disajikan dengan Content-Encoding: br
(kompresi Brotli) atau Content-Encoding: gz
(kompresi Gzip). Jika host tidak melayani file terkompresi, ikuti instruksi di Host dan sebarkan ASP.NET Core Blazor WebAssembly.
Menonaktifkan fitur yang tidak digunakan
Bagian ini hanya berlaku untuk skenario sisi Blazor klien.
Blazor WebAssemblyRuntime mencakup fitur .NET berikut yang dapat dinonaktifkan untuk ukuran payload yang lebih kecil.
Blazor WebAssembly membawa sumber daya globalisasi yang diperlukan untuk menampilkan nilai, seperti tanggal dan mata uang, dalam budaya pengguna. Jika aplikasi tidak memerlukan pelokalan, Anda dapat mengonfigurasi aplikasi untuk mendukung budaya invarian, yang didasarkan pada en-US
budaya. Terapkan <InvariantGlobalization>
properti MSBuild dengan nilai true
dalam file proyek aplikasi (.csproj
):
<PropertyGroup>
<InvariantGlobalization>true</InvariantGlobalization>
</PropertyGroup>
Mengadopsi globalisasi yang tidak berubah hanya mengakibatkan penggunaan nama zona waktu yang tidak dilokalkan. Untuk memangkas kode zona waktu dan data dari aplikasi, terapkan <InvariantTimezone>
properti MSBuild dengan nilai true
dalam file proyek aplikasi (.csproj
):
<PropertyGroup>
<InvariantTimezone>true</InvariantTimezone>
</PropertyGroup>
Nota
<BlazorEnableTimeZoneSupport>
mengambil alih pengaturan sebelumnya <InvariantTimezone>
. Sebaiknya hapus pengaturan <BlazorEnableTimeZoneSupport>
.
File data disertakan untuk membuat informasi zona waktu benar. Jika aplikasi tidak memerlukan fitur ini, pertimbangkan untuk menonaktifkannya dengan mengatur <BlazorEnableTimeZoneSupport>
properti MSBuild ke false
dalam file proyek aplikasi:
<PropertyGroup>
<BlazorEnableTimeZoneSupport>false</BlazorEnableTimeZoneSupport>
</PropertyGroup>
Informasi kolase disertakan untuk membuat API seperti StringComparison.InvariantCultureIgnoreCase berfungsi dengan benar. Jika Anda yakin bahwa aplikasi tidak memerlukan data kolase, pertimbangkan untuk menonaktifkannya dengan mengatur BlazorWebAssemblyPreserveCollationData
properti MSBuild dalam file proyek aplikasi ke false
:
<PropertyGroup>
<BlazorWebAssemblyPreserveCollationData>false</BlazorWebAssemblyPreserveCollationData>
</PropertyGroup>
Sumber daya tambahan
ASP.NET Core