17
MVC CRASH COURSE – B2B FOUNDATION Erik Brandin, 12 januari 2010

MVC Crash Course – b2b Foundation

  • Upload
    chace

  • View
    38

  • Download
    0

Embed Size (px)

DESCRIPTION

MVC Crash Course – b2b Foundation. Erik Brandin, 12 januari 2010. MVC är ett arkitekturellt designmönster Beskrevs första gången 1979 Finns i många implementationer Microsoft MVC är en av dessa implementationer Microsoft MVC är ett lager ovanpå ASP.NET - PowerPoint PPT Presentation

Citation preview

Page 1: MVC Crash Course – b2b Foundation

MVC CRASH COURSE – B2B FOUNDATIONErik Brandin, 12 januari 2010

Page 2: MVC Crash Course – b2b Foundation

MVC är ett arkitekturellt designmönster Beskrevs första gången 1979 Finns i många implementationer Microsoft MVC är en av dessa implementationer Microsoft MVC är ett lager ovanpå ASP.NET

– ASP.NET kan användas i en MVC applikation

VAD ÄR MVC

Page 3: MVC Crash Course – b2b Foundation

Controller– Hanterar kommunikationen med användaren

Model– Innehåller all data som behövs för att visa sidan

View– Användargränssnitt

MVC I ÖVERSIKT

Page 4: MVC Crash Course – b2b Foundation

Separerar logik från design Testbart ASP.NET MVC är utbyggbart Enkelt att påföra ny design

– ”Saknar” ASP.NETs beroende mellan HTML och kod

VARFÖR BEHÖVS MVC

Page 5: MVC Crash Course – b2b Foundation

Controllers är den del av MVC som ansvarar för att…– …ta emot request från klientet– …validerar requestet– …hämtar data och ser till att vidarebefordra till rätt vy

Controller måste ärva från basklassen System.Web.Mvc.Controller– Har ett namn som slutar på Controller

Actions är de metoder på controllern som kan ta emot ett anrop från klienten

Action-metoden är alla publika metoder i en controller som returnerar ett ActionResult

CONTROLLERS OCH ACTIONS

Page 6: MVC Crash Course – b2b Foundation

KODEXEMPEL CONTROLLER ACTION

Page 7: MVC Crash Course – b2b Foundation

i Visual StudioData som skickas från controllern kan vara en databärande klass– Detta ger typade dataobjekt i vyerna vilket ger intellisense-stöd i VS– Enklare för vy-utvecklare– Skapat många databärande klasser med repetitiv kod

Men även Microsoft MVC har en generisk ViewData– I praktiken en dictionary med otypad data (string-object)– Enkel att skapa ny data– Försvårar för vyutvecklare då man inte får hjälp av Visual Studio

Typad och otypad data kan blandas

Vi har valt att så långt som möjligt endast använda typade modellobjekt

MODEL ÄR DATA SOM SKICKAS FRÅN CONTROLLERN

Page 8: MVC Crash Course – b2b Foundation

Vyn bär ansvaret att skapa användargränssnittet

Vyer är MVC en klass som ärver från System.Web.Mvc.ViewPage

Kodblock läggs in i vyn med <% //kod läggs här %>– Ser vid första anblick ut som klassisk ASP

Kod i vyn ska vara enkel presentationslogik– Ingen affärslogik bör ligga i vyn

Ingen begränsning på html som kan genereras

VYNS ANSVAR I MVC

Page 9: MVC Crash Course – b2b Foundation

EXEMPEL PÅ EN ENKEL VY

Page 10: MVC Crash Course – b2b Foundation

Partiella vyer (ascx)– Motsvarar user controls i ASP.NET– Kan vara starkt typade precis som vyer

Kan anropas både från en controller och från en annan vy– Anropas från controller vid AJAX-anrop– Då den anropas från en annan vy skickas ofta en delmängd av

modellobjektet med, exempelvis en produkt i en produktlista

MASTERPAGE, VYER OCH PARTIELLA VYER

Page 11: MVC Crash Course – b2b Foundation

Konceptet med Masterpage stödjs av ASP.NET MVC

Samma modellobjekt som skickas till vyn skickas till master page

MASTERPAGE, VYER OCH PARTIELLA VYER

Page 12: MVC Crash Course – b2b Foundation

Hittills har vi visat hur ASP.NET MVC fungerar

Vi har gjort anpassningar av detta i MVC

VAD ÄR B2B FOUNDATION

Page 13: MVC Crash Course – b2b Foundation

B2B Foundataion baseras på ASP.NET MVC Innehåller basfunktionalitet som de flesta B2B applikationer

behöver Är utbyggbart Är komponentiserat och utbytbart i de flesta avseenden

delar– Dependency Injection via AutoFac ramverket

Är uppgraderingsbart

Möjlighet till olika grafiska teman med samma kodbas

Viss Javaskript funktionalitet med jQuery

VAD ÄR B2B FOUNDATION

Page 14: MVC Crash Course – b2b Foundation

Controller kan bytas ut dynamiskt– Att byta ut en controller sker i kod eller konfiguration och sker normalt

endast vid installation– Denna anpassning sker i B2B Foundation

Vyer väljs i backoffice– Varje CMS-sida eller produktsida kan konfigureras till att använda

någon av de konfigurerade vyerna– Denna anpassning sker i Enova CMS

ANPASSNINGAR AV ASP.NET

Page 15: MVC Crash Course – b2b Foundation

”Allt är interface” för att alla delar ska vara utbytbara

AFFÄRSLAGER I B2B FOUNDATION

Page 16: MVC Crash Course – b2b Foundation

Html-helpers är hjälpfunktioner som genererar html-kod– Bör endast användas för att generera enkla html taggar– I princip endast för presentationslogik

En mängd html helpers finns inbyggt– Html.Image– Html.Hidden– Html.ListBox– Html.ActionLink

Kan skapa egna html helpers efter behov, exempelvis– Html.SystemText– Html.BuildUrl (i praktiken samma som Html.ActionLink men där data

för att generera länken hämtas från ENOVA)

HTML HELPERS

Page 17: MVC Crash Course – b2b Foundation

Html.RenderPartial– Används för att bryta ut repetitiv html-kod– Anropar en partiell vy

Html.RenderAction– Anropar en specifik action på en controller och infogar resultatet i html

dokumentet– Smidigt sätt att skapa nytt innehåll direkt i vyn– Egentligen inte MVC, utan MVP– Något sämre prestanda än RenderPartial

HTML HELPERS (FORTSÄTTNING)