1 / 17

MVC Crash Course – b2b Foundation

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

chace
Download Presentation

MVC Crash Course – b2b Foundation

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. MVC Crash Course – b2b Foundation Erik Brandin, 12 januari 2010

  2. 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

  3. 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

  4. 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

  5. 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

  6. Kodexempel Controller Action

  7. 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

  8. 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

  9. Exempel på en enkel vy

  10. Partiella vyer (ascx) • Motsvarar usercontrols 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

  11. Konceptet med Masterpagestödjs av ASP.NET MVC Samma modellobjekt som skickas till vyn skickas till master page MasterPage, Vyer och Partiella vyer

  12. Hittills har vi visat hur ASP.NET MVC fungerar Vi har gjort anpassningar av detta i MVC Vad är B2B Foundation

  13. 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 • DependencyInjection via AutoFac ramverket Är uppgraderingsbart Möjlighet till olika grafiska teman med samma kodbas Viss Javaskript funktionalitet med jQuery Vad är b2B Foundation

  14. 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

  15. ”Allt är interface” för att alla delar ska vara utbytbara Affärslager i B2B Foundation

  16. Html-helpers är hjälpfunktioner som genererar html-kod • Bör endast användas för att generera enkla html taggar • I principendastförpresentationslogik 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

  17. 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)

More Related