Jednoduché šablony pro generování UI v ASP.NET Core

Další z mých mezisvátkových open source projektů je sada šablon pro dynamické generování UI v ASP.NET Razor Pages a MVC Core. Jedná se o ideového nástupce mého NuGet balíčku Altairis.Mvc.EditorTemplates, který jsem vytvořil pro ASP.NET MVC 5.

Píšete-li aplikace v ASP.NET MVC nebo Razor Pages, téměř s jistotou používáte dynamické generování uživatelského rozhraní. Buďto na úrovni jednotlivých polí (@Html.EditorFor(m => m.Field) nebo asp-for="Model.Field") nebo na úrovni celého modelu (@Html.EditorForModel()). V takovém případě ASP.NET standardně pro generování HTML použije své vestavěné šablony, které jsou připraveny na použití UI frameworku Bootstrap a obsahují tedy patřičné HTML a CSS třídy.

Já Bootstrap nepoužívám a nemám rád. Dávám přednost sémantickému, čistému HTML. Proto jsem hledal jednodušší šablony, které by bootstrapové konstrukce neobsahovaly. ASP.NET použité šablony umožňuje modifikovat. Stačí nahrát soubory s názvem odpovídajícím logickému typu pole do ~/Views/Shared/EditorTemplates/název_typu.cshtml (pro MVC) nebo do ~/Pages/EditorTemplates/název_typu.cshtml pro Razor Pages.

Vytvořil jsem tedy sadu šablon pro minimální implementaci. Obsahují opravdu jenom ten minimální markup, který obsahuje pouze minimální formátování. Pro staré MVC (5.0) je k dispozici jako NuGet balíček Altairis.Mvc.EditorTemplates.

Instalace šablon

Pro Core verzi jsem zvolil poněkud jiný způsob distribuce. U šablon se totiž předpokládá, že je budete hojně modifikovat dle potřeb svých a podle typu aplikace. Tj. jednou se nakopírují, ale nejspíše je nebudete nikdy aktualizovat. NuGet balíčky jsou tedy pro tento případ dosti nevhodné.

Inspiroval jsem se proto u projektu IdentityServer, který šablony pro svůj quickstart instaluje pomocí PowerShellu (na Windows) nebo Bashe (na Linuxu a Mac OS). Pro instalaci tedy stačí z příkazové řádky spustit kód, který z GitHubu stáhne soubory a nakopíruje je na patřičná místa.

Samozřejmě vše můžete udělat i ručně. V zásadě jde pouze o stažení souborů ze složky EditorTemplates a jejich nakopírování do správného adresáře. Nicméně instalační skript dokáže celou záležitost značně zjednodušit.

Zdrojové kódy projektu i návod k jeho instalaci najdete na GitHubu.

  • Altairis
  • Nemesis
  • Microsoft MVP
  • IIS
  • ASP.NET