Programmering

Beste fremgangsmåter i ASP.Net MVC

Dette er et annet innlegg på artikelserien om beste praksis. I denne presenterer jeg de beste metodene som bør følges når du arbeider med ASP.Net MVC-rammeverket.

Hva handler MVC-designmønsteret om?

Først og fremst, la oss ta en rask tur til det grunnleggende. Hva handler MVC (Model View Controller) designmønster om? Hvorfor trengs det, uansett? Vel, brukergrensesnittet inneholder ofte mye rotete kode først og fremst på grunn av den kompliserte logikken den trenger å håndtere. Presentasjonsmønstrene er designet primært med et mål i tankene: å redusere den komplekse koden i presentasjonslaget og gjøre koden i brukergrensesnittet ren og håndterbar.

MVC-rammeverket hjelper deg med å bygge applikasjoner som er lettere å teste og vedlikeholde. Den består av tre hovedkomponenter, nemlig modellen (representerer applikasjonens data og forretningslogikk), visningen (dette representerer presentasjonslaget) og kontrolleren (dette representerer vanligvis forretningslogikken til applikasjonen din). MVC-mønsteret lar deg isolere bekymringene og gjør applikasjonens kode enklere å teste og vedlikeholde.

Kontrolleren

Du bør slette demokodefilene - AccountController.cs-filen, da du uansett ikke trenger det. AccountController er opprettet som standard og er ikke nødvendig - bare slett den! Du bør også redusere koblingen mellom kontrollerne og andre avhengigheter som datatilgangskomponenter, unntak og loggblokker osv. Du skal være så slank som mulig og inneholde mye mindre kode. Ideelt sett bør du bare delegere kontrollflyten til en forretningslogikkomponent i kontrollerklassen din. Kontrolleren i et ASP.Net MVC-program skal isoleres fra datatilgangslaget - kontrolleren er ansvarlig for å gjengi riktig visning ved kjøretid basert på visse handlinger.

Bundling og minifisering av skript- og CSS-filer

Du bør gruppere ressurser applikasjonen din trenger for å bruke som CSS-filer, i en nedlastbar ressurs. Denne prosessen er også kjent som bundling. Du bør også minifisere skriptene og CSS-filene du vil bruke til å fjerne unødvendige tegn, kommentarer og tegn i mellomrom.

Følgende kodebit illustrerer hvordan du kan lage et buntobjekt for CSS-applikasjonen din trenger å bruke.

offentlig statisk ugyldig RegisterBundles (

BundleCollection-pakker)

{

bunter.Add (ny StyleBundle ("~ / Content / Styles")

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

"~ / Innhold / Stiler / .css"));

}

Følgende kode viser hvordan du kan pakke skriptfilene du trenger å bruke i applikasjonen.

.Inkludere(

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

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

);

Legg merke til hvordan ScriptBundle-klassen brukes til å samle skriptinnholdet. Tilsvarende brukes StyleBundle-klassen (som vist i det tidligere eksemplet) for å pakke inn css-innholdet vi diskuterte tidligere.

Du bør også slå av kontrollen av ruter med mindre det er absolutt nødvendig for å eliminere unødvendige behandlingsomkostninger.

Visninger

Du bør bruke sterkt typte visninger der det er mulig - jeg vil anbefale å sende POCO-er til visningene i ASP.Net MVC-applikasjonen. Du bør utføre all behandling i kontrollerne og ikke visningene - visningene skal være magre og ikke inneholde noen forretningslogikkode. Du bør bruke minimalt med TagHelpers i dine HTML-hjelpere, og du bør huske å bruke HtmlHelpers bare når du trenger at betingede beslutninger skal tas om dataene gjennom visningene. Hvis det er behov for en betinget uttalelse etter ditt syn, bør du flytte den til en HtmlHelper. HtmlHelpers skal aldri inneholde kode som påkaller datatilgangslaget, dvs. du bør avstå fra å skrive datatilgangslogikk inne i HtmlHelpers. Du bør ikke legge JavaScript-kode i visningen din - skille dem i forskjellige skriptfiler.

Cache dataene dine

For å forbedre ytelsen og responsen til applikasjonen din, kan du dra nytte av hurtigbufring. Caching er en teknikk som gjør det mulig å lagre relativt foreldede data i minnet for å redusere nettverkets båndbredde. Følgende kodebit viser hvordan du kan bruke hurtigbufring i kontrollerne.

public class Controller: Controller

{

[OutputCache (varighet = 3600,

VaryByParam = "ingen")]

offentlig ActionResult-indeks ()

    {

    }

}

Du bør også cache sider som ofte er tilgjengelige, som inneholder delte data og ikke trenger autorisering. Følgende kodebit illustrerer hvordan du kan gjøre dette.

[OutputCache (varighet = 3600)]

offentlig ActionResult-indeks ()

{

return View ("Indeks", myDataObject);

}

MVC-designmønsteret hjelper med å håndheve en ren separasjon av bekymringer mellom modellene, visningene og kontrollerne i applikasjonen din. Dette hjelper koden din til å bli enkelt testet og vedlikeholdt. Jeg har diskutert noen viktige punkter som du kan vurdere når du arbeider med ASP.Net MVC for å bygge applikasjoner som er høyt ytende, lettere å teste, vedlikeholde og skalere. Jeg vil diskutere mer på ASP.Net MVC i de kommende innleggene her. Så følg med!

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