Nuove funzionalità in MVC 6

Il pattern Model View Controller è uno dei design pattern più diffusi che consente di creare applicazioni più facili da testare e mantenere. Il framework Model View Controller (comunemente noto come MVC) facilita la testabilità e il riutilizzo del codice. Il framework ASP.Net MVC si basa sul runtime ASP.Net e segue il modello di progettazione MVC. In questo post esaminerò il modello di progettazione di Model View Controller e presenterò anche una panoramica delle nuove funzionalità in ASP.Net MVC 6.

Il modello di progettazione Model View Controller, come suggerisce il nome, comprende tre componenti principali. Questi includono quanto segue:

  1. Modello: questo è il livello che rappresenta i dati dell'applicazione
  2. Visualizza: rappresenta la presentazione o il livello dell'interfaccia utente
  3. Controller: questo livello contiene in genere la logica di business dell'applicazione

Il modello di progettazione Model View Controller consente di isolare i problemi e semplifica il test e la manutenzione del codice dell'applicazione.

L'ultima versione di questo framework è MVC 6. Con MVC 6 la dipendenza da System.Web.dll è stata eliminata: dovrai includere lo spazio dei nomi Microsoft.AspNet.Mvc a differenza di System.Web.Mvc che facevi nelle versioni precedenti del framework ASP.Net MVC. La dipendenza da System.Web è stata rimossa poiché era molto costosa: MVC 6 fornisce un framework molto più snello, tempi di avvio più rapidi e consumo di risorse ridotto.

Il framework MVC 6 è progettato per il cloud ed è incorporato come parte del runtime ASP.Net 5 ottimizzato per il cloud che a sua volta sarebbe disponibile come parte di Visual Studio 2015. Il vantaggio di avere un framework ottimizzato per il cloud è che puoi avere diversi le versioni di CLR risiedono fianco a fianco per diversi siti Web in esecuzione nel cloud. Con ASP.Net 5, i framework MVC e Web API sono stati unificati in un unico modello di programmazione. Quindi, MVC, l'API Web e il runtime ASP.Net sono ora tutti uniti in un modello di programmazione unificato. MVC 6 è indipendente dall'host: oltre ad avere la capacità di essere ospitato su IIS, può anche essere ospitato autonomamente. MVC 6 fornisce anche il supporto per l'astrazione OWIN e include API Web e pagine Web per eliminare la sovrapposizione tra questi tre framework.

L'inserimento delle dipendenze (noto anche come inversione del controllo) è un modello di progettazione software utilizzato per implementare oggetti liberamente accoppiati, testabili e riutilizzabili nell'applicazione. Puoi sfruttare l'interfaccia IServiceProvider per aggiungere il tuo contenitore di inserimento delle dipendenze personalizzato. Questa interfaccia fornisce un livello di astrazione sull'attuale implementazione del contenitore di inserimento delle dipendenze. Tieni presente che hai un contenitore di inserimento delle dipendenze predefinito ma con funzionalità limitate. Puoi usare questo contenitore di inserimento delle dipendenze predefinito se hai bisogno di funzionalità limitate. Se hai bisogno di funzionalità aggiuntive, puoi creare il tuo contenitore di inserimento delle dipendenze e utilizzare l'interfaccia IServiceProvider per aggiungere il contenitore di inserimento delle dipendenze personalizzato che hai creato.

A differenza delle sue controparti precedenti, MVC 6 supporta un sistema di configurazione basato sull'ambiente: distribuire le applicazioni MVC 6 nel cloud è ora semplice. Quando crei un nuovo progetto MVC 6 in Visual Studio, il nuovo set di file di configurazione da osservare include quanto segue:

  1. Config.json: normalmente contiene la configurazione dell'applicazione
  2. Project.json: questo file contiene le informazioni sulla dipendenza del progetto
  3. Startup.cs: questo file contiene la classe Startup che a sua volta contiene un metodo Configure
  4. Global.json: questo file contiene informazioni sui riferimenti al progetto

Dopo aver creato un progetto MVC 6 in Visual Studio, il file Startup.cs ha il seguente aspetto:

using Microsoft.Owin;

utilizzando Owin;

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

spazio dei nomi

{

    avvio della classe parziale pubblica

    {

        Configurazione public void (app IAppBuilder)

        {

        }

    }

}

Il frammento di codice seguente illustra l'aspetto di un tipico metodo Config della classe Startup.

public void Configure (app IApplicationBuilder)      

    {   

       var configuration = new Configuration (). AddJsonFile ("config.json"). AddEnvironmentVariables ();

    }

Notare il parametro IApplicationBuilder (questo parametro viene passato dall'host all'avvio dell'applicazione) nel metodo Configure. Viene creata un'istanza della classe Configuration e vengono passate le origini di configurazione. È possibile disporre di un numero qualsiasi di origini di configurazione: ciascuna origine di configurazione è associata a un provider di valori di configurazione. Questo approccio facilita lo spostamento della tua applicazione nel cloud, se necessario, senza problemi.

È inoltre possibile utilizzare il metodo ConfigureServices per aggiungere servizi di Entity Framework al contenitore dei servizi. Il frammento di codice seguente mostra l'aspetto di un tipico metodo ConfigureServices.

public void ConfigureServices (servizi IServiceCollection)

        {

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

          services.AddMvc ();

          // Altro codice

        }

Puoi anche specificare le informazioni sul percorso utilizzando il metodo di estensione UseMvc come mostrato nello snippet di codice di seguito.

            {

                route.MapRoute (

                    nome: "predefinito",

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

                    valori predefiniti: new {controller = "", action = "Index"});

Notare che AddEntityFramework () e AddMvc () sono metodi di estensione definiti nell'interfaccia IServiceCollection.

Scriverò altri articoli su MVC 6 nei miei futuri post sul blog qui. Quindi, rimanete sintonizzati!