Artifact: Ovladač
Tento produkt je jakýsi prostředník, který zajištuje komunikaci mezi uživatelem, Modelem a Pohledem.
Domains: Vývoj
Relationships
Description
Main Description

Ovladače zajištují veškeré reakce na vstup od uživatele a občas dělají změny v Modelu. Jsou tak považovány za jakýsi „tok“ aplikace zpracovávající vstupní data a poskytující data zobrazená v relevantním Pohledu. ASP.NET MVC implementuje tzv. „přední ovladačovou variantu MVC vzoru“, což znamená, že je Ovladač v popředí každé vykonané události kromě směrování, viz 4.4.

Jako v naprosté většině částí webové aplikace psané ve frameworku ASP.NET MVC platí i v případě Ovladačů heslo „Konvence nad konfigurací“. Dodržení konvencí popsaných v rámci Návodů této metodiky podstatně usnadňuje konfiguraci Ovladačů – zajistí spuštění odpovídající akce na základě podnětů od uživatele a zároveň vykreslení odpovídajícího pohledu, aniž by se musel explicitně specifikovat. To ušetří čas a především ulehčí jakékoli změny nejen u velkých webových aplikací. Např. navigace na stránku /User/Details ve výchozí konfiguraci spustí metodu Details v ovladači UserController. Pokud by se názvy nedodržely, bylo by nutné vytvořit explicitní směrovací pravidla.

Kromě názvu ovladače a akce je ještě možné v URL posílat parametry. Ty jsou v URL přidány za název akce, oddělené otazníkem. Např. je tak možné předat akci parametr jméno - /User/List?Name=Jan. V případě parametru ID se hodnota vkládá přímo do URL - /User/Details/2. V dané metodě jsou následně parametry přijaty jako deklarované argumenty a je možné je využít pro vrácení odpovídajícího Pohledu.
Nejčastěji existuje pro každou entitu (uživatel, produkt, objednávka atd.) právě jeden Ovladač.

Tailoring
Impact of not havingChybí základní prvek vývoje - webové aplikace není funkční.
Reasons for not needingProdukt je nutné vytvořit v každé webové aplikaci.
Representation OptionsKaždý ovladač je reprezentován C# třídou. V ní jsou implementovány metody, které se nazývají akce. Jejich úkolem je reagovat na URL požadavky, provádět příslušné akce a vracet odpověď uživateli zpět do prohlížeče.
More Information