Procedure consigliate in ASP.Net MVC

Questo è un altro post sulla serie di articoli sulle migliori pratiche. In questo, presenterò le migliori pratiche che dovrebbero essere seguite mentre si lavora con il framework ASP.Net MVC.

In cosa consiste il design pattern MVC?

Prima di tutto, facciamo un rapido tour delle basi. In cosa consiste il design pattern MVC (Model View Controller)? Perché è necessario, comunque? Bene, l'interfaccia utente contiene spesso molto codice disordinato principalmente a causa della logica complicata che deve gestire. I modelli di presentazione sono progettati principalmente con un obiettivo in mente: ridurre il codice complesso nel livello di presentazione e rendere il codice nell'interfaccia utente pulito e gestibile.

Il framework MVC ti aiuta a creare applicazioni più facili da testare e mantenere. Comprende tre componenti principali, vale a dire, il Modello (rappresenta i dati dell'applicazione e la logica di business), la View (rappresenta il livello di presentazione) e il Controller (che in genere rappresenta la logica di business dell'applicazione). Il modello di progettazione MVC consente di isolare i problemi e rende il codice dell'applicazione più facile da testare e mantenere.

Il controller

Dovresti eliminare i file del codice demo - il file AccountController.cs poiché non ne avresti comunque bisogno. AccountController viene creato per impostazione predefinita e non è necessario: eliminalo semplicemente! Dovresti anche ridurre l'accoppiamento tra i tuoi controller e altre dipendenze come componenti di accesso ai dati, eccezioni e blocchi di registrazione, ecc. I controller dovrebbero essere il più snelli possibile e contenere molto meno codice. Idealmente, dovresti semplicemente delegare il flusso di controllo a qualche componente della logica di business all'interno della tua classe controller. Il controller in un'applicazione ASP.Net MVC deve essere isolato dal livello di accesso ai dati: il controller è responsabile di eseguire il rendering della vista appropriata in fase di esecuzione in base a determinate azioni.

Raggruppamento e minimizzazione dello script e dei file CSS

È necessario raggruppare le risorse che l'applicazione deve utilizzare come file CSS in un'unica risorsa scaricabile. Questo processo è noto anche come raggruppamento. Dovresti anche minimizzare gli script ei file CSS che useresti per rimuovere i caratteri, i commenti e gli spazi vuoti non necessari.

Il seguente frammento di codice illustra come creare un oggetto bundle per il CSS che la tua applicazione deve usare.

public static void RegisterBundles (

                       BundleCollection bundle)

{

   bundles.Add (nuovo StyleBundle ("~ / Content / Styles")

       .Include ("~ / Content / Styles / bootstrap.css",

                "~ / Content / Styles / .css"));

}

Il codice seguente mostra come raggruppare i file di script che è necessario utilizzare nell'applicazione.

  .Includere(

     "~ / Content / Scripts / -1.0.0.js",

     "~ / Content / Scripts / knockout-3.0.0.js")

);

Nota come viene utilizzata la classe ScriptBundle per raggruppare il contenuto dello script. Allo stesso modo, la classe StyleBundle (come mostrato nell'esempio precedente) viene utilizzata per raggruppare il contenuto CSS di cui abbiamo discusso in precedenza.

Dovresti anche disattivare il controllo delle rotte a meno che non sia assolutamente necessario per eliminare i sovraccarichi di elaborazione non necessari coinvolti.

Visualizzazioni

Dovresti usare viste fortemente tipizzate ove possibile: consiglierei di inviare POCO alle viste nella tua applicazione ASP.Net MVC. È necessario eseguire tutte le elaborazioni nei controller e non nelle visualizzazioni: le visualizzazioni devono essere snelle e non devono contenere alcun codice di logica aziendale. Dovresti usare una quantità minima di TagHelpers nei tuoi helper Html e dovresti ricordarti di usare HtmlHelpers solo quando hai bisogno di decisioni condizionali da prendere sui dati attraverso le viste. Se è necessaria un'istruzione condizionale nella visualizzazione, è necessario spostarla in un HtmlHelper. HtmlHelpers non dovrebbe mai contenere codice che richiama il livello di accesso ai dati, vale a dire, dovresti evitare di scrivere logica di accesso ai dati all'interno di HtmlHelpers. Non dovresti inserire codice JavaScript nella tua vista: separali in file di script distinti.

Memorizza i tuoi dati nella cache

Per migliorare le prestazioni e la reattività della tua applicazione, puoi sfruttare il caching. La memorizzazione nella cache è una tecnica che consente di archiviare dati relativamente obsoleti nella memoria in modo da ridurre il consumo di larghezza di banda della rete. Il frammento di codice seguente mostra come utilizzare la memorizzazione nella cache nei controller.

controller di classe pubblica: controller

{

    [OutputCache (durata = 3600,

VaryByParam = "none")]

    Indice ActionResult pubblico ()

    {

    }

}

È inoltre necessario memorizzare nella cache le pagine a cui si accede di frequente che contengono dati condivisi e non è necessario essere autorizzati. Il frammento di codice seguente illustra come eseguire questa operazione.

[OutputCache (Duration = 3600)]

Indice ActionResult pubblico ()

{

  return View ("Index", myDataObject);

}

Il modello di progettazione MVC aiuta a garantire una netta separazione delle preoccupazioni tra i modelli, le viste e i controller all'interno dell'applicazione. Questo aiuta il tuo codice a essere facilmente testato e mantenuto. Ho discusso alcuni punti importanti che puoi considerare quando lavori con ASP.Net MVC per creare applicazioni ad alte prestazioni, più facili da testare, mantenere e scalare. Discuterò di più su ASP.Net MVC nei prossimi post qui. Quindi, rimanete sintonizzati!