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, Blazor untuk Pengembang Formulir Web ASP NET untuk Azure, tersedia di .NET Docs atau sebagai PDF gratis yang dapat diunduh yang dapat dibaca secara offline.
Aplikasi yang ditulis untuk ASP.NET biasanya memiliki global.asax.cs
file yang menentukan Application_Start
peristiwa yang mengontrol layanan mana yang dikonfigurasi dan tersedia untuk penyajian HTML dan pemrosesan .NET. Bab ini melihat bagaimana hal-hal sedikit berbeda dengan ASP.NET Core dan Blazor Server.
Application_Start dan Formulir Web
Metode formulir Application_Start
web default telah berkembang dalam tujuan selama bertahun-tahun untuk menangani banyak tugas konfigurasi. Proyek formulir web baru dengan templat default di Visual Studio 2022 sekarang berisi logika konfigurasi berikut:
-
RouteConfig
- Perutean URL Aplikasi -
BundleConfig
- Bundling dan minifikasi CSS dan JavaScript
Masing-masing file individu ini berada di App_Start
folder dan hanya berjalan sekali di awal aplikasi kami.
RouteConfig
dalam templat proyek default ditambahkan ke FriendlyUrlSettings
di formulir web untuk memungkinkan URL aplikasi menghilangkan ekstensi file .ASPX
. Templat default juga berisi arahan yang menyediakan kode status pengalihan HTTP permanen (HTTP 301) untuk .ASPX
halaman ke URL yang ramah dengan nama file yang menghilangkan ekstensi.
Dengan ASP.NET Core dan Blazor, metode ini disederhanakan dan dikonsolidasikan ke dalam Startup
kelas atau dihilangkan demi teknologi web umum.
Struktur Startup Blazor Server
Aplikasi Blazor Server berada di atas ASP.NET Core 3.0 atau versi yang lebih baru. aplikasi web ASP.NET Core dikonfigurasi dalam Program.cs, atau melalui sepasang metode di Startup.cs
kelas . Contoh file Program.cs ditunjukkan di bawah ini:
using BlazorApp1.Data;
using Microsoft.AspNetCore.Components;
using Microsoft.AspNetCore.Components.Web;
var builder = WebApplication.CreateBuilder(args);
// Add services to the container.
builder.Services.AddRazorPages();
builder.Services.AddServerSideBlazor();
builder.Services.AddSingleton<WeatherForecastService>();
var app = builder.Build();
// Configure the HTTP request pipeline.
if (!app.Environment.IsDevelopment())
{
app.UseExceptionHandler("/Error");
// The default HSTS value is 30 days. You may want to change this for production scenarios, see https://aka.ms/aspnetcore-hsts.
app.UseHsts();
}
app.UseHttpsRedirection();
app.UseStaticFiles();
app.UseRouting();
app.MapBlazorHub();
app.MapFallbackToPage("/_Host");
app.Run();
Layanan yang diperlukan dari aplikasi ditambahkan ke koleksi dari instans WebApplicationBuilder
Services
. Ini adalah bagaimana berbagai layanan kerangka kerja ASP.NET Core dikonfigurasi dengan kontainer injeksi dependensi bawaan kerangka kerja. Berbagai builder.Services.Add*
metode menambahkan layanan yang memungkinkan fitur seperti autentikasi, halaman Razor, perutean pengontrol MVC, SignalR, dan interaksi Blazor Server di antara banyak lainnya. Metode ini tidak diperlukan dalam formulir web, karena penguraian dan penanganan file ASPX, ASCX, ASHX, dan ASMX didefinisikan dengan merujuk ASP.NET dalam file konfigurasi web.config. Informasi selengkapnya tentang injeksi dependensi di ASP.NET Core tersedia dalam dokumentasi online.
Setelah app
dibangun oleh builder
, panggilan selanjutnya pada app
akan mengonfigurasi alur HTTP-nya. Dengan panggilan ini, kami menyatakan dari atas ke bawah Middleware yang akan menangani setiap permintaan yang dikirim ke aplikasi kami. Sebagian besar fitur ini dalam konfigurasi default tersebar di seluruh file konfigurasi formulir web dan sekarang berada di satu tempat untuk kemudahan referensi.
Konfigurasi halaman kesalahan kustom tidak lagi ditempatkan dalam file web.config
, tetapi sekarang dikonfigurasi untuk selalu muncul jika lingkungan aplikasi tidak diberi label Development
. Selain itu, aplikasi ASP.NET Core sekarang dikonfigurasi untuk melayani halaman aman dengan TLS secara default dengan UseHttpsRedirection
panggilan metode.
Selanjutnya, panggilan metode konfigurasi tak terduga dilakukan ke UseStaticFiles
. Di ASP.NET Core, dukungan untuk permintaan untuk file statis (seperti JavaScript, CSS, dan file gambar) harus diaktifkan secara eksplisit, dan hanya file di folder wwwroot aplikasi yang dapat diatasi secara publik secara default.
Baris berikutnya adalah yang pertama yang mereplikasi salah satu opsi konfigurasi dari formulir web: UseRouting
. Metode ini menambahkan router ASP.NET Core ke alur dan dapat dikonfigurasi di sini atau dalam file individual yang dapat dipertimbangkan peruteannya. Informasi selengkapnya tentang konfigurasi perutean dapat ditemukan di bagian Perutean.
Panggilan terakhir app.Map*
di bagian ini menentukan endpoint yang didengarkan oleh ASP.NET Core. Rute ini adalah lokasi web yang dapat diakses yang dapat Anda akses di server web dan menerima beberapa konten yang ditangani oleh .NET dan dikembalikan kepada Anda. Entri pertama, MapBlazorHub
mengonfigurasi hub SignalR untuk digunakan dalam menyediakan koneksi real time dan persisten ke server tempat status dan penyajian komponen Blazor ditangani. Pemanggilan metode MapFallbackToPage
menunjukkan lokasi halaman yang dapat diakses melalui web yang memulai aplikasi Blazor dan juga mengonfigurasi aplikasi untuk menangani permintaan deep-linking dari sisi klien. Anda akan melihat fitur ini berfungsi jika Anda membuka browser dan menavigasi langsung ke rute yang ditangani Blazor di aplikasi Anda, seperti /counter
di templat proyek default. Permintaan ditangani oleh halaman fallback _Host.cshtml , yang kemudian menjalankan router Blazor dan merender halaman penghitung.
Baris terakhir memulai aplikasi, sesuatu yang tidak diperlukan dalam formulir web (karena mengandalkan IIS untuk dijalankan).
Meningkatkan Proses BundleConfig
Teknologi untuk menggabungkan aset seperti lembar gaya CSS dan file JavaScript telah berubah secara signifikan, dengan teknologi lain yang menyediakan alat dan teknik yang berkembang dengan cepat untuk mengelola sumber daya ini. Untuk tujuan ini, sebaiknya gunakan alat baris perintah Node seperti Grunt / Gulp / WebPack untuk mengemas aset statis Anda.
Alat baris perintah Grunt, Gulp, dan WebPack dan konfigurasi terkaitnya dapat ditambahkan ke aplikasi Anda dan ASP.NET Core akan mengabaikan file tersebut secara diam-diam selama proses build aplikasi. Anda dapat menambahkan panggilan untuk menjalankan tugas mereka dengan menambahkan Target
di dalam file proyek Anda dengan sintaks yang mirip dengan yang berikut ini yang akan memicu skrip gulp dan target di dalam skrip tersebut min
:
<Target Name="MyPreCompileTarget" BeforeTargets="Build">
<Exec Command="gulp min" />
</Target>
Detail selengkapnya tentang kedua strategi untuk mengelola file CSS dan JavaScript Anda tersedia di Bundel dan minifikasi aset statis dalam dokumentasi ASP.NET Core .