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.
|