Guideline: Konvence pri vývoji v ASP.NET MVC
Relationships
Main Description

Framework ASP.NET MVC zastává koncept „Convention over Configuration“, tedy dává přednost dodržování konvencí před udržováním mnoha konfiguračních souborů. Dodržením dané struktury a názvových konvencí se programátor zbavuje nutnosti konfigurace a explicitního nastavování a může se tak plně soustředit na vývoj aplikace.

Po vytvoření projektu ve vývojovém prostředí Visual Studio dle jedné z předdefinovaných šablon se zároveň zakládá základní struktura složek a souborů (Tabulka 1). Struktura neslouží pouze k zajištění přehlednosti v projektu, vyplývá totiž z definovaných pravidel. Každý vývojář by měl tato pravidla dobře pochopit a dodržovat pro pohodlí vlastní implementace a snazší sdílení kódu mezi více vývojáři, ale i pro pochopení vlastního kódu v budoucnu (Galloway et al., 2014).


Tabulka 1: Základní adresáře a jejich význam v rámci projektu

Adresář

Účel

/App_Data

Datové soubory, jako jsou XML soubory či souborově založené databáze.

/App_Start

Konfigurační soubory pro směrování, bundling atd.

/Content

Statický obsah jako jsou CSS, obrázky a vše ostatní (kromě skriptů).

/Controllers

Třídy reprezentující Ovladače, spravující URL požadavky.

/fonts

Fonty využívané v aplikaci.

/Models

Třídy (Modely), které reprezentují a manipulují s daty a business objekty.

/Scripts

JavaScript knihovny a skripty (.js), jQuery a AJAX knihovny jsou v této složce již ve výchozím projektu.

/Views

Pohledy neboli UI šablony, zodpovědné za renderování výstupu. Obvykle jsou umisťovány dále do podsložek, které odpovídají příslušným ovladačům.

/Views/Shared

Layout a pohledy, které nepatří jen jednomu Ovladači.

Kromě zmíněné adresářové struktury existuje v projektu také několik klíčových konfiguračních souborů, vypsaných v následující tabulce. Zvláštností je existence dvou stejně pojmenovaných konfiguračních souborů Web.config, tím lze zajistit specifickou konfiguraci v rámci adresářové hierarchie pro specifické třídy aplikace (MSDN, 2016) .

Tabulka 2: Základní soubory a jejich význam v rámci projektu

Soubor

Účel

/Web.config

Hlavní konfigurační soubor aplikace.

/Views/Web.config

Konfigurace pro správně fungování Pohledů a zamezení jejich přímého přístupu na serveru.

/Global.asax

Globální třída využívaná k registraci filtrů či směrování při startu aplikace.

Aby automatická konfigurace fungovala, je třeba kromě zachování správně struktury v rámci projektu používat i správná pojmenování:

  • název ovladače musí končit řetězcem „Controller“ (např. „AccountController“),
  • pohledy by měly být vytvářeny do složky „/Views/NázevOvladače“ nebo „/Views/Shared“,
  • výchozí pohled pro akce by měl být pojmenovaný stejně jako příslušná metoda (např. akci „Index“ by měl náležet pohled „Index.cshtml“),
  • layout by měl být pojmenovat s podtržítkem na začátku názvu (např. „cshtml“ a měl by být umístěn ve složce „/Views/Shared“,
  • vstupní pole v HTML formuláři by měla mít stejný název jako atribut modelu, kterému odpovídá – může být zajištěno použitím HTML helperů.

Dodržení zmíněných konvencí minimalizuje množství nutných konfigurací k běhu aplikace. Není např. nutné specifikovat, který k jakému ovladači patří daný pohled, či kde se nachází. Většinu zmíněných konvencí lze ve výjimečných případech porušit a vše ručně specifikovat v souboru Web.config. Důvodem může být např. rozdělení velké aplikace do několika lépe spravovatelných celků. V naprosté většině aplikací je však silně doporučeno se konvencemi řídit.