View
38
Download
0
Category
Preview:
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
MVC CRASH COURSE – B2B FOUNDATIONErik 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
– ASP.NET kan användas i en MVC applikation
VAD ÄR MVC
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
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
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
KODEXEMPEL CONTROLLER ACTION
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
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
EXEMPEL PÅ EN ENKEL VY
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
Konceptet med Masterpage stödjs av ASP.NET MVC
Samma modellobjekt som skickas till vyn skickas till master page
MASTERPAGE, VYER OCH PARTIELLA VYER
Hittills har vi visat hur ASP.NET MVC fungerar
Vi har gjort anpassningar av detta i MVC
VAD ÄR 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
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
”Allt är interface” för att alla delar ska vara utbytbara
AFFÄRSLAGER I 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
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)
Recommended