Sdílet prostřednictvím


Spuštění aplikace

Návod

Tento obsah je výňatek z elektronické knihy Blazor pro vývojáře webových formulářů ASP NET pro Azure, který je k dispozici na webu .NET Docs nebo jako bezplatný soubor PDF ke stažení, který si můžete přečíst offline.

Blazor-for-ASP-NET-Web-Forms-Developers eBook cover thumbnail.

Aplikace napsané pro ASP.NET obvykle mají global.asax.cs soubor, který definuje událost, která určuje Application_Start , které služby jsou nakonfigurovány a zpřístupněny pro vykreslování HTML i zpracování .NET. Tato kapitola se zabývá tím, jak jsou věci u ASP.NET Core a Blazor Serveru mírně odlišné.

Application_Start a webové formuláře

Výchozí metoda webových formulářů Application_Start se v průběhu let zvětšila, aby zvládla mnoho úloh konfigurace. Nový projekt webových formulářů s výchozí šablonou v sadě Visual Studio obsahuje následující logiku konfigurace:

  • RouteConfig – Směrování adresy URL aplikace
  • BundleConfig – Css a javascriptové sdružování a minifikace

Každý z těchto jednotlivých souborů se nachází ve App_Start složce a spouští se pouze jednou na začátku naší aplikace. RouteConfig ve výchozí šabloně projektu přidá FriendlyUrlSettings pro webové formuláře, aby adresy URL aplikací mohly vynechat příponu souboru .ASPX. Výchozí šablona také obsahuje pokyn, který poskytuje stavové kódy pro trvalé přesměrování HTTP (HTTP 301) pro .ASPX stránky na přátelskou adresu URL s názvem souboru, který vynechává příponu.

S ASP.NET Core a Blazor jsou tyto metody buď zjednodušené a sloučené do Startup třídy, nebo jsou eliminovány ve prospěch běžných webových technologií.

Blazor Server – spouštěcí struktura

Aplikace Blazor Serveru se nacházejí nad verzí ASP.NET Core 3.0 nebo novější. ASP.NET webové aplikace Core se konfigurují v Program.cs nebo prostřednictvím dvojice metod ve Startup.cs třídě. Níže je uveden ukázkový soubor Program.cs :

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();

Požadované služby aplikace se přidají do WebApplicationBuilder kolekce instance Services . To je způsob konfigurace různých služeb architektury ASP.NET Core s integrovaným kontejnerem injektáže závislostí architektury. Různé builder.Services.Add* metody přidávají služby, které umožňují mimo jiné funkce, jako je ověřování, razor pages, směrování kontroleru MVC, SignalR a Interakce Serveru Blazor. Tato metoda nebyla ve webových formulářích nutná, protože analýza a zpracování souborů ASPX, ASCX, ASHX a ASMX byly definovány odkazem na ASP.NET v konfiguračním souboru web.config. Další informace o injektáži závislostí v ASP.NET Core najdete v online dokumentaci.

Po sestavení app pomocí builder nakonfigurují zbylé volání app jeho HTTP kanál. Díky těmto voláním deklarujeme middleware shora dolů, který bude zpracovávat všechny požadavky odeslané do naší aplikace. Většina těchto funkcí ve výchozí konfiguraci byla rozptýlena v konfiguračních souborech webových formulářů a jsou nyní na jednom místě pro usnadnění referencí.

Už není konfigurace vlastní chybové stránky umístěná v web.config souboru, ale nyní je nakonfigurována tak, aby se vždy zobrazovala, pokud prostředí aplikace není označeno Development. Kromě toho jsou teď aplikace ASP.NET Core nakonfigurované tak, aby ve výchozím nastavení obsluhovaly zabezpečené stránky s protokolem TLS při UseHttpsRedirection volání metody.

Dále se provede neočekávané volání metody konfigurace UseStaticFiles. V ASP.NET Core musí být podpora požadavků na statické soubory (například JavaScript, CSS a soubory obrázků) explicitně povolená a ve výchozím nastavení se dají veřejně adresovat jenom soubory ve složce wwwroot aplikace.

Další řádek je první, který replikuje jednu z možností konfigurace z webových formulářů: UseRouting. Tato metoda přidá do potrubí ASP.NET Core směrovač a dá se nakonfigurovat buď zde, nebo v jednotlivých souborech, do kterých může provádět směrování. Další informace o konfiguraci směrování najdete v části Směrování.

Konečná app.Map* volání v této části definují koncové body, na které ASP.NET Core naslouchá. Tyto cesty jsou přístupná umístění z webu, ke kterým můžete na webovém serveru přistupovat a přijímat obsah zpracovávaný rozhraním .NET, který je vám vrácen. První položka MapBlazorHub nakonfiguruje centrum SignalR pro použití při poskytování trvalého připojení k serveru, kde se zpracovává stav a vykreslování komponent Blazor. Volání MapFallbackToPage metody označuje webové umístění stránky, která spouští aplikaci Blazor, a také konfiguruje aplikaci tak, aby zpracovávala požadavky na přímé propojení ze strany klienta. Tuto funkci uvidíte v práci, pokud otevřete prohlížeč a přejdete přímo na trasu, kterou v aplikaci zpracovává Blazor, například /counter ve výchozí šabloně projektu. Požadavek zpracovává záložní stránka _Host.cshtml, která pak spustí směrovač Blazor a vykreslí stránku čítače.

Úplně poslední řádek spustí aplikaci, tedy něco, co nebylo ve webových formulářích potřeba (protože závisí na tom, že je spuštěná služba IIS).

Aktualizace procesu BundleConfig

Technologie pro sdružování prostředků, jako jsou šablony stylů CSS a soubory JavaScriptu, se výrazně změnily a další technologie poskytují rychle se vyvíjející nástroje a techniky pro správu těchto prostředků. K tomuto účelu doporučujeme použít nástroje příkazového řádku Node.js, jako jsou Grunt, Gulp nebo WebPack, k zabalení vašich statických prostředků.

Nástroje příkazového řádku Grunt, Gulp a WebPack a jejich přidružené konfigurace lze přidat do vaší aplikace a ASP.NET Core tyto soubory během procesu sestavení aplikace tiše ignorují. Volání ke spuštění úkolů lze přidat přidáním Target do souboru projektu s podobnou syntaxí, která aktivuje gulp skript a cíl min v rámci tohoto skriptu:

<Target Name="MyPreCompileTarget" BeforeTargets="Build">
  <Exec Command="gulp min" />
</Target>

Další podrobnosti o obou strategiích správy souborů CSS a JavaScriptu najdete v dokumentaci k Balíčkování a minifikaci statických prostředků v ASP.NET Core.