Vzor Model View Controller je jedním z nejpopulárnějších návrhových vzorů, který vám pomůže vytvářet aplikace, které se snáze testují a udržují. Rámec Model View Controller (běžně známý jako MVC) podporuje snadnější testovatelnost a opětovné použití kódu. Rámec ASP.Net MVC je postaven na běhovém modulu ASP.Net a řídí se návrhovým vzorem MVC. V tomto příspěvku prozkoumám návrhový vzor řadiče zobrazení modelu a také představím přehled nových funkcí v ASP.Net MVC 6.
Návrhový vzor Model View Controller, jak název napovídá, se skládá ze tří hlavních komponent. Patří mezi ně následující:
- Model - toto je vrstva, která představuje data aplikace
- Zobrazit - představuje prezentaci nebo vrstvu uživatelského rozhraní
- Řadič - tato vrstva obvykle obsahuje obchodní logiku vaší aplikace
Návrhový vzor řadiče zobrazení modelu umožňuje izolovat obavy a usnadňuje testování a údržbu kódu vaší aplikace.
Poslední verze tohoto rámce je MVC 6. S MVC 6 byla odstraněna závislost na System.Web.dll - budete muset zahrnout jmenný prostor Microsoft.AspNet.Mvc na rozdíl od System.Web.Mvc, který jste udělali v předchozích verzích ASP.Net MVC framework. Závislost na System.Web byla odstraněna, protože to bylo velmi drahé - MVC 6 vám poskytuje mnohem štíhlejší rámec, rychlejší dobu spouštění a sníženou spotřebu zdrojů.
Rámec MVC 6 je navržen pro cloud a je začleněn jako součást runtime ASP.Net 5 optimalizovaného pro cloud, který by zase byl k dispozici jako součást Visual Studio 2015. Výhodou mřížky optimalizovaného pro cloud je, že můžete mít různé verze CLR jsou umístěny vedle sebe pro různé weby spuštěné v cloudu. S ASP.Net 5 byly sjednoceny rámce MVC a Web API do jediného programovacího modelu. Takže MVC, webové API a běhové prostředí ASP.Net jsou nyní sloučeny do jednoho modelu jednotného programování. MVC 6 je hostitelem agnostik - kromě možnosti hostování na IIS, může být také hostován sám. MVC 6 také poskytuje podporu pro abstrakci OWIN a zahrnuje webové rozhraní API a webové stránky, aby se vyloučilo překrývání těchto tří rámců.
Vkládání závislostí (známé také jako Inversion of Control) je vzor návrhu softwaru, který se používá k implementaci volně spojených, testovatelných a opakovaně použitelných objektů do vaší aplikace. Rozhraní IServiceProvider můžete využít k přidání vlastního kontejneru pro vkládání závislostí. Toto rozhraní poskytuje úroveň abstrakce nad skutečnou implementací kontejneru vkládání závislostí. Všimněte si, že máte výchozí kontejner pro vkládání závislostí, ale s omezenou funkčností. Tento výchozí kontejner pro vkládání závislostí můžete použít, pokud potřebujete omezenou funkčnost. Pokud potřebujete přidanou funkcionalitu, můžete si vytvořit svůj vlastní kontejner pro injekci závislostí a pomocí rozhraní IServiceProvider přidat vlastní kontejner pro injekci závislostí, který jste vytvořili.
Na rozdíl od svých dřívějších protějšků podporuje MVC 6 systém konfigurace založený na prostředí - nasazení aplikací MVC 6 v cloudu je nyní jednoduché. Když vytvoříte nový projekt MVC 6 v sadě Visual Studio, nová sada konfiguračních souborů, které byste sledovali, zahrnuje následující:
- Config.json - obvykle by obsahoval konfiguraci aplikace
- Project.json - tento soubor obsahuje informace o závislosti na projektu
- Startup.cs - tento soubor obsahuje třídu Startup, která obsahuje metodu Configure
- Global.json - tento soubor obsahuje informace o referencích projektu
Po vytvoření projektu MVC 6 v aplikaci Visual Studio vypadá soubor Startup.cs takto:
pomocí Microsoft.Owin;
pomocí Owina;
[assembly: OwinStartupAttribute (typeof (.Startup))]
jmenný prostor
{
veřejné částečné spuštění třídy
{
public void Configuration (aplikace IAppBuilder)
{
}
}
}
Následující fragment kódu ukazuje, jak vypadá typická metoda Config třídy Startup.
public void Configure (aplikace IApplicationBuilder)
{
var configuration = new Configuration (). AddJsonFile ("config.json"). AddEnvironmentVariables ();
}
Poznamenejte si parametr IApplicationBuilder (tento parametr je předán hostitelem při spuštění aplikace) v metodě Configure. Vytvoří se instance třídy Configuration a předají se konfigurační zdroje. Můžete mít libovolný počet zdrojů konfigurace - každý zdroj konfigurace je spojen s poskytovatelem hodnoty konfigurace. Tento přístup umožňuje bezproblémové přesunutí vaší aplikace do cloudu, pokud to bude nutné.
Můžete také použít metodu ConfigureServices k přidání služeb Entity Framework do kontejneru služeb. Následující fragment kódu ukazuje, jak by vypadala typická metoda ConfigureServices.
public void ConfigureServices (služby IServiceCollection)
{
services.AddEntityFramework (). AddSqlServer (). AddDbContext ();
services.AddMvc ();
// Jiný kód
}
Informace o trase můžete také určit pomocí metody rozšíření UseMvc, jak je ukázáno v fragmentu kódu níže.
{
route.MapRoute (
name: "default",
template: "{controller} / {action} / {id}",
výchozí: new {controller = "", action = "Index"});
Všimněte si, že AddEntityFramework () a AddMvc () jsou metody rozšíření definované v rozhraní IServiceCollection.
Zde budu psát více článků o MVC 6 ve svých budoucích příspěvcích na blogu. Zůstaňte tedy naladěni!