Programmering

Nye funktioner i MVC 6

Model View Controller-mønsteret er et af de mest populære designmønstre, der hjælper dig med at opbygge applikationer, der er lettere at teste og vedligeholde. Model View Controller (almindeligvis kendt som MVC) fremmer lettere testbarhed og genbrug af kode. ASP.Net MVC-rammen er bygget oven på ASP.Net-runtime og følger MVC-designmønsteret. I dette indlæg vil jeg undersøge Model View Controller design mønster og også præsentere en oversigt over de nye funktioner i ASP.Net MVC 6.

Model View Controller designmønsteret, som navnet antyder, består af tre hovedkomponenter. Disse inkluderer følgende:

  1. Model - dette er det lag, der repræsenterer applikationens data
  2. Vis - dette repræsenterer præsentationen eller brugergrænsefladelaget
  3. Controller - dette lag indeholder typisk virksomhedens logik i din applikation

Model View Controller designmønsteret giver dig mulighed for at isolere bekymringerne og gør din applikations kode lettere at teste og vedligeholde.

Den seneste version af denne ramme er MVC 6. Med MVC 6 er afhængigheden af ​​System.Web.dll blevet elimineret - du bliver nødt til at inkludere Microsoft.AspNet.Mvc navneområdet i modsætning til System.Web.Mvc, du gjorde i de tidligere versioner af ASP.Net MVC-rammen. Afhængigheden af ​​System.Web er fjernet, da det var meget dyrt - MVC 6 giver dig en meget slankere ramme, hurtigere opstartstid og reduceret ressourceforbrug.

MVC 6-rammen er designet til skyen og er indarbejdet som en del af den skyoptimerede ASP.Net 5-runtime, som igen ville være tilgængelig som en del af Visual Studio 2015. Fordelen ved at have en skyoptimeret ramme er, at du kan have forskellige versioner af CLR findes side om side for forskellige websteder, der kører i skyen. Med ASP.Net 5 er MVC og Web API-rammerne samlet i en enkelt programmeringsmodel. Så MVC, Web API og ASP.Net runtime er nu alle sammen til en samlet programmeringsmodel. MVC 6 er vært agnostiker - bortset fra at have evnen til at være vært på IIS, kan den også være selvhostet. MVC 6 yder også support til OWIN-abstraktion og inkluderer Web API og websider for at eliminere overlapningen mellem disse tre rammer.

Afhængighedsinjektion (også kendt som Inversion of Control) er et softwaredesignmønster, der bruges til at implementere løst koblede, testbare og genanvendelige objekter i din applikation. Du kan udnytte IServiceProvider-grænsefladen til at tilføje din brugerdefinerede afhængighedsinjektionsbeholder. Denne grænseflade giver et abstraktionsniveau over den aktuelle implementering af beholderinjektionsbeholder. Bemærk, at du har en standardafhængighedsinjektionsbeholder, men med begrænset funktionalitet. Du kan bruge denne standardindsprøjtningsbeholder til afhængighed, hvis du har brug for begrænset funktionalitet. Hvis du har brug for tilføjet funktionalitet, kan du oprette din egen afhængighedsinjektionsbeholder og bruge IServiceProvider-grænsefladen til at tilføje den tilpassede afhængighedsinjektionsbeholder, du har oprettet.

I modsætning til sine tidligere kolleger understøtter MVC 6 et miljøbaseret konfigurationssystem - implementering af MVC 6-applikationer i skyen er nu enkel. Når du opretter et nyt MVC 6-projekt i Visual Studio, inkluderer det nye sæt konfigurationsfiler, du vil observere, følgende:

  1. Config.json - dette vil typisk indeholde applikationskonfigurationen
  2. Project.json - denne fil indeholder projektafhængighedsoplysninger
  3. Startup.cs - denne fil indeholder opstartklassen, der igen indeholder en konfigurationsmetode
  4. Global.json - denne fil indeholder oplysninger om projektreferencer

Når du har oprettet et MVC 6-projekt i Visual Studio, ser filen Startup.cs sådan ud:

ved hjælp af Microsoft.Owin;

ved hjælp af Owin;

[forsamling: OwinStartupAttribute (typeof (.Startup))]

navneområde

{

offentlig delvis klasse opstart

    {

offentlig ugyldig konfiguration (IAppBuilder app)

        {

        }

    }

}

Følgende kodestykke illustrerer, hvordan en typisk Config-metode i Startup-klassen ser ud.

public void Configure (IApplicationBuilder app)

    {   

var konfiguration = ny konfiguration (). AddJsonFile ("config.json"). AddEnvironmentVariables ();

    }

Bemærk IApplicationBuilder-parameteren (denne parameter sendes af værten, når applikationen startes) i konfigurationsmetoden. En instans af konfigurationsklassen oprettes, og konfigurationskilderne overføres. Du kan have et vilkårligt antal konfigurationskilder - hver konfigurationskilde er tilknyttet en udbyder af konfigurationsværdi. Denne tilgang letter flytning af din applikation til skyen, hvis det er nødvendigt, problemfrit.

Du kan også bruge metoden ConfigureServices til at tilføje Entity Framework-tjenester til servicescontaineren. Følgende kodestykke viser, hvordan en typisk ConfigureServices-metode vil se ud.

offentlig ugyldighed ConfigureServices (IServiceCollection-tjenester)

        {

services.AddEntityFramework (). AddSqlServer (). AddDbContext ();

services.AddMvc ();

// Anden kode

        }

Du kan også angive ruteoplysninger ved hjælp af UseMvc-udvidelsesmetoden som vist i kodestykket nedenfor.

            {

ruter.MapRoute (

navn: "standard",

skabelon: "{controller} / {action} / {id}",

standardindstillinger: ny {controller = "", action = "Indeks"});

Bemærk, at AddEntityFramework () og AddMvc () er udvidelsesmetoder defineret i IServiceCollection-grænsefladen.

Jeg vil skrive flere artikler om MVC 6 i mine fremtidige blogindlæg her. Så hold dig opdateret!

$config[zx-auto] not found$config[zx-overlay] not found