Programmering

Nye funksjoner i MVC 6

Model View Controller-mønsteret er et av de mest populære designmønstrene som hjelper deg med å bygge applikasjoner som er lettere å teste og vedlikeholde. Model View Controller (kjent som MVC) fremmer lettere testbarhet og gjenbruk av kode. ASP.Net MVC-rammeverket er bygget på toppen av ASP.Net-kjøretiden og følger MVC-designmønsteret. I dette innlegget vil jeg undersøke Model View Controller designmønsteret og også presentere en oversikt over de nye funksjonene i ASP.Net MVC 6.

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

  1. Modell - dette er laget som representerer applikasjonens data
  2. Vis - dette representerer presentasjonen eller brukergrensesnittlaget
  3. Kontroller - dette laget inneholder vanligvis forretningslogikken til applikasjonen din

Model View Controller designmønsteret lar deg isolere bekymringene og gjør applikasjonens kode lettere å teste og vedlikeholde.

Den siste versjonen av dette rammeverket er MVC 6. Med MVC 6 er avhengigheten av System.Web.dll eliminert - du må inkludere navnet Microsoft.AspNet.Mvc i motsetning til System.Web.Mvc du gjorde i de forrige versjonene. av ASP.Net MVC-rammeverket. Avhengigheten av System.Web er fjernet siden det var veldig dyrt - MVC 6 gir deg et mye slankere rammeverk, raskere oppstartstid og redusert ressursforbruk.

MVC 6-rammeverket er designet for skyen og er innlemmet som en del av skyoptimalisert ASP.Net 5-kjøretid som igjen vil være tilgjengelig som en del av Visual Studio 2015. Fordelen med å ha et skyoptimalisert rammeverk er at du kan ha forskjellige versjoner av CLR ligger side om side for forskjellige nettsteder som kjører i skyen. Med ASP.Net 5 har MVC og Web API-rammene blitt samlet i en enkelt programmeringsmodell. Så, MVC, Web API og ASP.Net kjøretid er nå alle slått sammen til en enhetlig programmeringsmodell. MVC 6 er vert agnostiker - bortsett fra å ha muligheten til å være vert på IIS, kan den også være selvstyrt. MVC 6 gir også støtte for OWIN-abstraksjon og inkluderer Web API og websider for å eliminere overlappingen mellom disse tre rammene.

Avhengighetsinjeksjon (også kjent som Inversion of Control) er et mønster for programvaredesign som brukes til å implementere løst koblede, testbare og gjenbrukbare objekter i applikasjonen. Du kan utnytte IServiceProvider-grensesnittet for å legge til den tilpassede injeksjonsbeholderen for avhengighet. Dette grensesnittet gir et abstraksjonsnivå over den faktiske implementeringen av beholderavhengig injeksjonsbeholder. Merk at du har en standardavhengighetsinjiseringsbeholder, men med begrenset funksjonalitet. Du kan bruke denne standardavhengighetsinjeksjonsbeholderen hvis du trenger begrenset funksjonalitet. Hvis du trenger ekstra funksjonalitet, kan du bygge din egen avhengighetsinjiseringsbeholder og bruke IServiceProvider-grensesnittet for å legge til den tilpassede avhengighetsinjeksjonsbeholderen du har opprettet.

I motsetning til tidligere kolleger støtter MVC 6 et miljøbasert konfigurasjonssystem - det er nå enkelt å distribuere MVC 6-applikasjoner i skyen. Når du oppretter et nytt MVC 6-prosjekt i Visual Studio, inkluderer det nye settet med konfigurasjonsfiler du vil observere følgende:

  1. Config.json - dette inneholder vanligvis programkonfigurasjonen
  2. Project.json - denne filen inneholder informasjon om avhengighet av prosjektet
  3. Startup.cs - denne filen inneholder oppstartsklassen som igjen inneholder en konfigurasjonsmetode
  4. Global.json - denne filen inneholder informasjon om prosjektreferansene

Etter at du har opprettet et MVC 6-prosjekt i Visual Studio, ser Startup.cs-filen slik ut:

bruker Microsoft.Owin;

bruker Owin;

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

navneområdet

{

offentlig delklasse Oppstart

    {

public void Configuration (IAppBuilder app)

        {

        }

    }

}

Følgende kodebit illustrerer hvordan en typisk Config-metode i Startup-klassen ser ut.

public void Configure (IApplicationBuilder app)

    {   

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

    }

Legg merke til parameteren IApplicationBuilder (denne parameteren sendes av verten når applikasjonen startes) i konfigurasjonsmetoden. En forekomst av Configuration-klasse opprettes og konfigurasjonskildene sendes. Du kan ha et hvilket som helst antall konfigurasjonskilder - hver konfigurasjonskilde er tilknyttet en konfigurasjonsverdileverandør. Denne tilnærmingen gjør det enklere å flytte applikasjonen til skyen om nødvendig, sømløst.

Du kan også bruke ConfigureServices-metoden for å legge til Entity Framework-tjenester i tjenestebeholderen. Følgende kodebit viser hvordan en typisk ConfigureServices-metode vil se ut.

offentlig ugyldighet ConfigureServices (IServiceCollection-tjenester)

        {

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

services.AddMvc ();

// Annen kode

        }

Du kan også spesifisere ruteinformasjonen ved hjelp av UseMvc-utvidelsesmetoden som vist i kodebiten nedenfor.

            {

ruter.MapRoute (

navn: "standard",

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

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

Merk at AddEntityFramework () og AddMvc () er utvidelsesmetoder som er definert i IServiceCollection-grensesnittet.

Jeg vil skrive flere artikler om MVC 6 i mine fremtidige blogginnlegg her. Så følg med!

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