MVC CRASH COURSE B 2 B FOUNDATION Erik
MVC CRASH COURSE – B 2 B FOUNDATION Erik Brandin, 12 januari 2010
VAD ÄR MVC § § § 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
MVC I ÖVERSIKT § Controller – Hanterar kommunikationen med användaren § Model – Innehåller all data som behövs för att visa sidan § View – Användargränssnitt
VARFÖR BEHÖVS MVC § § 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
CONTROLLERS OCH ACTIONS § 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 Action. Result
KODEXEMPEL CONTROLLER ACTION
MODEL ÄR DATA SOM SKICKAS FRÅN CONTROLLERN § i Visual Studio. Data 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 View. Data – 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
VYNS ANSVAR I MVC § Vyn bär ansvaret att skapa användargränssnittet § Vyer är MVC en klass som ärver från System. Web. Mvc. View. Page § 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
EXEMPEL PÅ EN ENKEL VY
MASTERPAGE, VYER OCH PARTIELLA VYER § 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
VAD ÄR B 2 B FOUNDATION § Hittills har vi visat hur ASP. NET MVC fungerar § Vi har gjort anpassningar av detta i MVC
VAD ÄR B 2 B FOUNDATION § § B 2 B Foundataion baseras på ASP. NET MVC Innehåller basfunktionalitet som de flesta B 2 B applikationer behöver Är utbyggbart Är komponentiserat och utbytbart i de flesta avseenden delar – Dependency Injection via Auto. Fac ramverket § Är uppgraderingsbart § Möjlighet till olika grafiska teman med samma kodbas § Viss Javaskript funktionalitet med j. Query
ANPASSNINGAR AV ASP. NET § 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 B 2 B 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
AFFÄRSLAGER I B 2 B FOUNDATION § ”Allt är interface” för att alla delar ska vara utbytbara
HTML HELPERS § 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. List. Box Html. Action. Link § Kan skapa egna html helpers efter behov, exempelvis – Html. System. Text – Html. Build. Url (i praktiken samma som Html. Action. Link men där data för att generera länken hämtas från ENOVA)
HTML HELPERS (FORTSÄTTNING) § Html. Render. Partial – Används för att bryta ut repetitiv html-kod – Anropar en partiell vy § Html. Render. Action – 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 Render. Partial
- Slides: 17