22 Flashcards

(7 cards)

1
Q

Popište principy ASP.NET MVC/Core,

A
  • ASP.NET MVC/Core = Frameworky od společnosti Microsoft založené na architektonickém vzoru Model-View-Controller, který rozděluje odpovědnosti aplikace právě do těchto tří částí.
  • Model = Jedná se o množinu tříd, které popisují business logiku aplikace a definují způsob práce s daty. Definují tedy pravidla, jak mohou být data měněna, jak s něma lze manipulovat a zpracovávat je. O plnění modelu daty se starají controllery s využitím dalších vrstev (services). Model udržuje také stav systému. Je běžné mít modely v separátní assembly nebo knihovně pro zjednodušení sdílení. Pod model spadá i ViewModel, který umožňuje sloučit více modelů do jedné třídy a tu pak zobrazit ve view.
  • View = View je zobrazení, do kterého posíláme Model z Controlleru a na základě modelu dynamicky renderujeme uživatelské rozhraní, je to tedy to, co uživatel vidí a s čím interaguje (formuláře, tlačítka). View tedy zobrazuje data, která získá od Controlleru, může obsahovat klientskou logiku. View je často realizováno jako kombinace HTML a JavaScript, popř. TypeScript kódu. V ASP.NET realizované ve formě .cshtml souborů využívající šablonovací engine Razor, který využívá kombinaci HTML a C# kódu. Mohou být: Strongly Typed (View je přidělený model, engine dokáže pracovat s informacemi v modelu),
    Partial View (view sdílené mezi více stránkami – komponenta), Master/Layout page (sdílený Layout napříč všemi stránkami).
  • Controller = Příjímá vstup od uživatele (příchozí dotazy, HTTP požadavky), slouží jako vstupní brána pro dotazy přicházející z frontendu, manipuluje s modelem a spouští obslužnou logiku. Volí také vhodné view pro výstup. Jedná se tedy o prostředníka mezi view a modelem/viewmodelem (získává model naplněný daty a předává ho do view). Dochází zde také k validaci dat. Veřejné metody Controlleru se nazívají akční metody a obvykle jsou mapovány 1:1 s prvky v UI. Výchozí HTTP metodou pro každou akční metodu je GET, jinak je nutné specifikovat.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

co je to area

A
  • Area = Umožňují důkladnější oddělení aplikační logiky do menších celků, vhodné hlavně u velkých komplexních projektů (např. rozdělení oblastí dle typu uživatele na Admin/User). Umožňují vytváření vlastních Controllerů, Views a modelů v rámci daných oblastí. Prakticky se jedná o rozdělení souborů do složek dle oblastí, Controllery v rámci jednotlivých oblastí musí být označeny atributem [Area]. V routingu musí být vždy specifikovaná area, ve které se má hledat Controller a jeho Action.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Co je to repository

A
  • Repository = Vrstva obvykle používaná jako rozhraní mezi .NET kódem a relační databází. V závislosti na použité technologii přístupu k databázi (Dapper, EF) implementuje vhodný způsob zajištění CRUD operací nad využívanými tabulkami a jejich přemapování do objektů. Funkce obsažené v rámci repositories jsou většinou volané prostřednictvím vyšších tříd – Services. Jelikož se jedná o abstrakci práce s daty, tak je aplikace více flexibilní (je možné využít více databázových uložišť). Při použití s ORM jako je např. EF se považuje až za anti-pattern, jelikož EF generiku i určitou uroven abstrakce obsahuje.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Co je to dependency injection

A
  • Repository = Vrstva obvykle používaná jako rozhraní mezi .NET kódem a relační databází. V závislosti na použité technologii přístupu k databázi (Dapper, EF) implementuje vhodný způsob zajištění CRUD operací nad využívanými tabulkami a jejich přemapování do objektů. Funkce obsažené v rámci repositories jsou většinou volané prostřednictvím vyšších tříd – Services. Jelikož se jedná o abstrakci práce s daty, tak je aplikace více flexibilní (je možné využít více databázových uložišť). Při použití s ORM jako je např. EF se považuje až za anti-pattern, jelikož EF generiku i určitou uroven abstrakce obsahuje.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Co je to unit of work

A
  • Unit of work = Umožňuje sloučení všech transakcí v rámci repository (update, delete, insert) do jedné transakce, takže pro všechny modifikace se provede jen jedno potvrzení uložení do databáze (SaveChanges() metoda). Pokud selže alespoň jedna transakce v rámci Unit of work, tak dojde k vrácení změn všech obsažených transakcí (rollback), jinak by mohlo dojít k nekonzistentnímu obsahu databáze. Tedy všechny transakce v rámci unit of work vždy projdou nebo selžou. Snižuje duplicitu kódu a dotazů, zvyšuje se úroveň abstrakce a odděluje doménovou a aplikační logiku, lze jednoduše provádět unit testy. Reálná implementace je pak skrz interface vytvořený pro Unit of work, který v sobě obsahuje repozitáře, které operují s daty. V controlleru se bude pracovat s jen interface Unit of work.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Co jsou to šablony

A
  • Šablony = ASP.NET umožňuje tvořit šablony za pomoci šablonovacího enginu Razor. View je realizováno jako .cshtml soubor, což je kombinace Razor syntaxe a HTML značkovacího jazyka. Modelem (ViewModelem) zobrazení, ze kterého můžeme zobrazovat data je standardně objekt či kolekce poslaná do View z Controlleru. Když chceme v .cshtml souboru zahájit blok kódu v syntaxi Razoru, docílíme toho prostřednictvím znaku ‘@’. V šablonách Razor lze používat C# kód.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Jaka je strukutra mvc

A
  • wwwroot = Složka obsahující styly CSS, obrázky, JavaScript knihovny a další statické soubory
  • Controllers = Složba obsahující třídy s Controllery
  • Models = Složka obsahující modelové třídy
  • Views = Složka obsahující šablony uživatelského rozhraní (views)
  • Appsettings = konfigurační soubor aplikace, možno vkládat a poté získávat vlastní konfigurační hodnoty
  • Program = Základní třída, ve které se spouští celá serverová část aplikace (popř. i klientská)
  • Startup = Třída, ve které dochází ke konfiguraci serverové části aplikace (registrace services atd.)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly