Zdrojové kódy pro vývojáře.
Přeskočit odkazy pro navigaci Top 10 přispěvatelů
UživatelČlánky
codeshare45
sochor1
stoupa1
tomas.oplt15
Článek: Návrhový vzor MVC ( Model View Controller )
Špatný Super
Autor:
Vytvořeno:
Popularita:

Architektura MVC

Model: Reprezentuje datovou vrstvu resp.datové objekty se kterými bude aplikace pracovat. Vrsva se nazývá doménový model a jednotlivé objekty se nazývají doménové objekty. Aplikace s těmito objekty manipuluje nejčastěji pomocí Entity Framework nebo Nhibernate. Doménové objekty jsou často obrazem tabulek umístěných v databázi. Model obsahuje taktéž business logiku a business pravidla pro data se kterými aplikace manipuluje.

public class Person 
{
public string LastName { get; set; }
public string FirstName { get; set; }
public string Phone { get; set; }
}

View: Vizální reprezentace Modelu. Generuje výsledný HTML kód prohlížeči. Výsledný kód se generuje dynamicky a při generování HTML kódu je možné použít jazyk C#. ViewModel: Tady malinko odbočím. Často je nutné na výsledné stránce zobrazit informace z vícero tabulek. Problém je ale v tom, že do View se může předat pouze jedna silně typová proměnná. Takže pokud by jsme chtěli ve View zobrazit údaje z tabulky Person + další informace například o účtu, předání instance třídy Person by nestačilo. Řešením je tedy tvorba ViewModelu – třídy, která obsahuje všechny informace nutné pro zobrazení výsledné HTML stránky. Je třeba vytvořit speciální třídu PersonDetail, která obsahuje všechny informace. Ve View je pak možné odkazovat se na třídu PersonDetail pomocí direktivy @model PersonDetail. Příklad ViewModel třídy:

public class PersonDetail 
{
public Person PersonDetail { get; set; }
public List Accounts { get; set; }
public string Information { get; set; }
}

Controller: Třída přes kterou uživatel komunikuje s aplikací. Tato třída zajišťuje komunikaci mezi Modelem a View. Controller zpracuje vstup od uživatele, případně aktualizuje model a nakonec vrátí uživazeli odpovídající View.

K čemu MVC vlastně je. Kdy použít ASP .NET a kdy použít ASP MVC

Je třeba zdůraznit, že ASP MVC není a nikdy nebude nástupcem a nebo novou vylepšenou verzí ASP .NET. Jedná se o dva samostatné frameworky a každý z nich má své pro a proti. Oba frameworky používají stejné třídy pro autentizaci, role apod.

Klady MVC

ASP MVC je dobré použít v případech kdy potřebujete 100% kontrolu nad výsledným HTML kódem. Máte hluboké znalosti HTML+CSS+jQuery a dokážete si své HTML stránky vytvářet bez návrháře. V technologii ASP MVC nelze používat datové komponenty DataGridView. Mezi hlavními argumenty pro technologii ASP MVC se pořád dokola omílá že je důsledně oddělený HTML kód, data a aplikační logika (Separate of Concerns - SoC). Pamatujte si, že pokaždé když vymyslíte něco nového je třeba tomu dát nějaký zajímavý název. Ono to není tak dlouho kdy ASP .NET nahradila technologii ASP a hlavní argument byl, že psát jakýkoliv kód do HTML je úplná blbost a jedná se o spaghetti kód. V tu chvíli si všichni uvědomili, že všechno co dosud dělali bylo špatně začali hromadně přecházet na technologii ASP .NET No neuplynulo ani deset let, vytvořili jsme ASP MVC, spaghetti kód nikomu nevadí a je to vlastně přednost. Takže ať si na to udělá každý názor sám. Pokud někdo chce oddělovat aplikační logiku tak nezáleží na platformě, ale na programátorovi který je buď prase a podle toho vypadá taky kód a nebo důsledně odděluje business logiku aplikace od formulářů. Tady si dovolím ještě udělat jednu odbočku. ASP .NET bylo často kritizováno pro delší křivku učení oproti PHP. PHP zkrátka dovolovalo programátorovi psát přímo do HTML kódu příkazy jazyka (spaghetti) To znamenalo, že začátečník v PHP byl schopný vytvořit funkční stránku za zlomek času než ASP .NET programátor, který se musel naučit co je to ViewState, Session, Application, Life Page Cycle apod. ASP .NET MVC je částečně odpověď na tento problém. Unit testing – MVC podporuje unit testy. Velikost výsledné HTML stránky – výsledný HTML kód je menší než u klasické ASP .NET aplikace. Pěkné vypadající URL odkazy. Práce s bezstavovým HTTP protokolem je jaksi nativní oproti ASP .NET kde se emuluje stav aplikace pomocí ViewState.

Zápory MVC

Neexistuje příliš mnoho knihoven grafických ovládacích prvků.
Neexistuje ViewState takže je náročnější uchovávat jakoukoli stavovou informaci.
Perfektní znalost HTML+CSS+Javascript.

Klady ASP .NET

Klasický RAD (rapid application develpment) Během chvilky dokážete navrhnout webovou stránku včetně ukládání dat do databáze. K tomu potřebujete pár řádek kódu. Pokud je vám jedno jak výsledný HTML kód vypadá hurá do toho.
Mnoho ovládacích prvků (grafy, gridy) od různých dodavatelů.
Zavedená technologie, mnoho zdrojů na internetu, mnoho příkladů a hotových řešení které stačí pouze okopírovat.

Zápory ASP .NET

Velikost výsledného HTML V řeči MVC se spouští nejprve View. Teprve potom se spouští Controller.

View engine

Syntaxe zápisu HTML kódu jsou v současné době dvě. Původní syntaxe se nazývala Web Forms View Engine. S příchodem MVC3 se objevil nový engine Razor, který má syntaxi údajeně přehlednější což je asi pravda. Je na každém, jaký engine si vybere. Nicméně většina ukázek je vytvořená práve v Razor View Engine.

  Na stránku 
screen  Nový příspěvek
Název  Uživatel  Datum 
 MVC  /avel 1785 dny 
Poslední návštěva: 15:18:15, 1. ledna 2013 První  Předchozí  1 Záznamů  Další  Poslední  

Autor článku
Jméno
Pracovní pozice
Informace
Foto

   

Počet návštěvníků:5
 
  Kontakt