Sdílet prostřednictvím


Spuštění aplikace

Tip

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 se u ASP.NET Core a Blazor Serveru mírně liší.

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 2022 teď 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 webové formuláře pro webové formuláře, aby adresy URL aplikací vynechaly příponu .ASPX souboru. Výchozí šablona obsahuje také direktivu, která poskytuje trvalé stavové kódy HTTP redirect (HTTP 301) pro .ASPX stránky na popisnou adresu URL s názvem souboru, který vynechá 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í builderpomocí app nástroje ,zbytek volání ke app konfiguraci jeho kanálu HTTP. 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 UseStaticFilesneočekávané volání metody konfigurace . 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 kanálu ASP.NET základní směrovač a dá se nakonfigurovat buď zde, nebo v jednotlivých souborech, do které může zvážit 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 trasy jsou webová přístupná umístění, ke kterým můžete přistupovat na webovém serveru a přijímat nějaký obsah zpracovávaný rozhraním .NET a vrátit se vám. 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 se zpracuje záložní stránkou _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).

Upgrade 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 k zabalení statických prostředků použít nástroj příkazového řádku Node, jako je Grunt / Gulp / WebPack.

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í jejich úkolů můžete přidat tak, že do souboru projektu přidáte Target syntaxi podobnou syntaxi, která by aktivovala skript gulp a min cíl uvnitř 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íčku a minifikaci statických prostředků v dokumentaci k ASP.NET Core .