Programování

Nové funkce v MVC 6

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í:

  1. Model - toto je vrstva, která představuje data aplikace
  2. Zobrazit - představuje prezentaci nebo vrstvu uživatelského rozhraní
  3. Ř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í:

  1. Config.json - obvykle by obsahoval konfiguraci aplikace
  2. Project.json - tento soubor obsahuje informace o závislosti na projektu
  3. Startup.cs - tento soubor obsahuje třídu Startup, která obsahuje metodu Configure
  4. 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!