UTBILDNING FÖR SIBA I WEB FOUNDATION Erik Brandin, 16 februari 2010.

Slides:



Advertisements
Liknande presentationer
BAS-M Hur du på ett enkelt sätt administrerar din båtklubbs register.
Advertisements

Configured Edititon för Unicenter 3.0 Sättet att snabbt komma igång med Unicenter.
Talföljder formler och summor
Tomas Sandström, Adtollo
Manual till Citybreak Information System (CBIS) för att fylla i uppgifter till Points of Interest (POI) på meetings.visitsweden.com.
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Förändringar i Ediel från april 2010 och vad som kan bli aktuellt i oktober Av Jan Owe.
Intagningssystemets databas Ögonblicksbild Kopia av intagningsdatabasen Uppdateras 3 ggr per dag 07:15 – 12:15 – 15:15 Roller Skola, kommun Periodiseras.
Formulär Tänkte nu gå igenom vad ett formulär är och hur man kan skapa dem i Access.
API skillnader EPiServer 7 - CMS6R2 Uppgradering från CMS6R2
Syo PRAO ver. 3.0 Välkommen till presentationen av Syo PRAO Vi kommer att gå igenom de flesta funktionerna i Syo PRAO.
Meny •Hem: Visar denna sida. Kan användas för allmän info •ProNavigo visar Modellen, mallar, checklistor •Projektlänkar: visar en undermeny med lämpliga.
Mina Aktiviteter Integration med befintliga webbplatser.
Relationsdatabasdesign
Hur går det till att rapportera in betyg idag?
Migrera befintliga system till Windows Azure
Föreläsning 7, Kapitel 7 Designa klasser Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
void hittaMax(int tal[], int antal, int *pmax) { int i; ??=tal[0]; for(i=1;i??) ??=tal[i]; } int main() { int v[]={1,2,3,4,2}; int.
Access med Sebastian och Robert
HTML - grunder. Program •Html kan skrivas i anteckningar, eller vilket annat textbehandlingsprogram som helst. Mitt tips: Notepad ++ Notepad ++ •Grafiska.
Programmering B PHP Lektion 1
Azure Web sites IRL Robert Folkesson Active
Snabbare/enklare utveckling med Webfoundation (RAD) • Förslag som med framgång redan har smygits in i en del kund projekt, testats och givit snabbare utveckling.
1 Välkommen till dagens e-möte –Säkerställ ljud via Meeting > Audio Setup Wizard –Slå av din mikrofon –Stäng av din kamera –Använd funktionen ”Raise hand”
”Ett sätt att distribuera Business Objects via webben”
Sweden SharePoint User Group WictorWilén
Klassarv och inkapsling
HEAD – HUVUDET I huvudet hittar du information om dokumentets titel, sökord, referenser till stildokument och annan information som normalt inte visas.
Programmeringteknik Webbdelen. HTML H yper T ext M arkup L anguage Märker upp sidans innehåll så att webbläsaren kan avgöra hur innehållet ska visas.
OOP Objekt-orienterad programmering
Andreas Carlsson Barvefjord och Carlsson Datakraft AB Svarkråkev Värnamo Tel: Epost: Databasteknik 2.
Ajax Dynamiska webbsystem. AJAX och web 2.0 Web 2.0 är egentligen bara ett ”buzzword” för en modern webbsajt. Innehållet skulle till exempel vara: Rich.
Metoder i java Det finns två typer av metoder i java
Arv.
Programmering II C#, ID1304.
Webbteknik lektion 2 Det handlar om stilmallar Per K, 2012.
Microsoft Dynamics CRM 3.0
Databaser i B2KUNO Johan Eklund. Hur går jag vidare? Avancerade tillämpningar:  Analysera data  Generera information Utveckla följande färdigheter:
Programmering B PHP Lektion 2
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 3
Från design till dynamisk webbplats | 2 Palle Zingmark  Webbkonsult på Hallvarsson & Halvarsson  Specialist på gränssnittsutveckling  Senior.
ASP.NET MVC4 + NoSQL = Major Awesomness. IoC Container.
VIS Verksamhetens Informationssystem ”Rätt information till rätt användare vid rätt tillfälle”
Internet Styrdatorer och kablar Uppkopplade användare Servrar 182.QRZN.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
1 Joomla © 2009 Stefan Andersson 1. 2 MÅL 2 3 Begrepp Aktör: en användare som interagerar med webbplatsen. I diagrammet till höger finns två aktörer:
En intruduktion till INVID CMS.
Utveckling med ramverket .net
Exempelbaserade specifikationer med SpecFlow
Utveckling med ramverket .net
Välkommen till Sommarkollo Windows Presentation Foundation och Expression Blend Robert FolkessonJohan Lindfors
XHTML & CSS Introduktion Erik Nahkala
WIPCORE PRESENTATIONSMALL  TEXT: Förutom de element som redan är stylade (t.ex. versala rubriker) finns det ett par andra riktlinjer. –Ord du vill markera.
W EBBUTVECKLING, HT 2013 En webbplats Källa: pragmatisk.se.
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
Microsoft Visual Studio och.NET Framework, idag och imorgon! Robert Folkesson
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
KONSTEN ATT SKRIVA BRA ÅTERANVÄNDBAR KOD Pierre Setteskog, Pontus Munck
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Oavsett om du tror att du kan, eller om du tror att du inte kan, har du helt rätt. ” -
Jonny Karlsson PROCESSPROGRAMMERING Föreläsning 8 ( )‏ Innehåll:  Introduktion till Java EE (Enterprise Edition)  Enterprise Java Beans.
NÄTVERKSPROTOKOLL Föreläsning INNEHÅLL - DHCP (Dynamic Host Configuration Protocol)‏
Föreläsning 4 Klasser Och Objekt.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ”Google is your friend”
1 Mjukvaru-utveckling av interaktiva system God utveckling av interaktiva system kräver abstrakt funktionell beskrivning noggrann utvecklingsmetod Slutanvändare.
1 Ingenjörsmetodik IT & ME 2007 Föreläsare Dr. Gunnar Malm.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Programmeringteknik Webbdelen 2. webbprogrammering Server Den dator som websidan ligger på Klient Dator som tittar på webbsidan med en webbläsare (t ex.
1177.se och Hitta och jämför vård Sammanställning av förändringar
 Object-Relational mapping  (aka O/RM, ORM, and O/R mapping)  Mappning av objekt och dess relationer till/från en relationsdatabas.
Presentationens avskrift:

UTBILDNING FÖR SIBA I WEB FOUNDATION Erik Brandin, 16 februari 2010

 Vilka förväntningar har ni på dagen? FÖRVÄNTNINGAR

 En första inblick i Web Foundation  Förstå vad Web Foundation är  Veta hur Web Foundation kan anpassas  Övningar SYFTE MED DAGEN

 Demo av Web Foundation – (15min)  Presentation av MVC – (60min)  Demo av eNOVA CMS (och tillägg gjorda i Web Foundation) (15min)  Lab #1 - Anpassning av vy (30 min)  Koppling mellan sidtyper – controller/action och vyer i CMS/WF (15min)  Lab #2 – Skapa ny vy (60 min)  Arkitektur Web Foundation (60 min)  Lab #3 – Utökning av befintlig funktion i Web foundation (60min) –Utökning av vydata (modellen) –Ny interaktionslogik –Ny affärslogik  Wrap up (15 min) AGENDA

 Demo av Web Foundation DEMO

 Kommande timmen kommer vi att stifta bekantskap med Microsoft MVC  Förståelse för ASP.NET MVC krävs för att få ut maximalt av Web Foundation  Web Foundation inför en hel del förändringar i standardbeteendet i ASP.NET MVC PRESENTATION AV ASP.NET MVC

 MVC är ett arkitekturellt designmönster  Beskrevs första gången 1979  Finns i många implementationer –Ruby on Rails, Spring och Struts, Monorail med flera –  Microsoft ASP.NET MVC är en av dessa implementationer –Första releasen 2009!  Microsoft MVC är ett lager ovanpå ASP.NET –ASP.NET kan användas i en MVC applikation MVC I ÖVERSIKT 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 GRUNDPELARE I MVC

 Separerar logik från design  Testbart  ASP.NET MVC är utbyggbart och utbytbart  Enkelt att påföra ny design –”Saknar” ASP.NETs beroende mellan HTML och affärslogik MVC I ÖVERSIKT VARFÖR BEHÖVS MVC

 Nu går vi in på detaljer i Microsoft ASP.NET MVC ASP.NET MVC

 Det finns en default route i MVC –{controller}/{action}/{id}  Exempel ”  Metoden som kommer att anropas är: ProductController.Show(string id)  Vyn som visas: /Views/Product/Show.aspx  I eNOVA CMS är detta inte hela sanningen… ROUTE TABELL VILKEN KOD KÖRS DÅ WEBBLÄSAREN BEGÄR EN SIDA?

 Controllers är den del av MVC som ansvarar för att… –…ta emot request från klienten (webbläsaren) –…validerar requestet –…hämtar data och ser till att vidarebefordra till rätt vy  Controller ärver 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  Återigen är detta inte hela sanningen i eNOVA CMS… CONTROLLERS OCH ACTIONS ANSVARSOMRÅDE FÖR CONTROLLERS OCH ACTIONS

KODEXEMPEL ENKEL CONTROLLER ACTION FRÅN SECTIONCONTROLLER  Följande kod svarar på anrop till /Section/List/xxx

 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 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 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  Controllern skicka all data som krävs för presentationen till vyn  Kodblock läggs in i vyn med –Ser vid första anblick ut som klassisk ASP – är kortform för –Notera användningen av semikolon  Kod i vyn ska vara enkel presentationslogik –Ingen affärslogik bör ligga i vyn –Javascript är (ibland) presentationslogik och kan bli komplex  Ingen begränsning på html som kan genereras VIEW VYNS ANSVAR I MVC ÄR ENDAST PRESENTATION

 En typad vy ärver från System.Web.Mvc.ViewPage –T är en generisk klass som är åtkomlig från vyn genom propertyn Model  En otypad vy ärver från System.Web.Mvc.ViewPage –Propertyn ViewData är en dictionary som otypad data –ViewData finns även för typade vyer TYPAD VS OTYPAD VY EN TYPAD VY HAR EN SÄRKILT UTPEKAD MODELLKLASS

EXEMPEL PÅ EN ENKEL VY I ENOVA CMS

 Partiella vyer (ascx) –Motsvarar user controls i ASP.NET –Kan vara starkt typade precis som vyer  En partiell renderas oftast från en ”vanlig vy” –Då den anropas från en annan vy skickas ofta en delmängd av modellobjektet med, exempelvis en produkt i en produktlista  Kan även ”anropas” från en controller –Görs oftast vid AJAX-anrop där resulterande html är en delmängd av presentationen PARTIELLA VYER LIKA MED USER CONTROL

 Masterpage stödjs av ASP.NET MVC  Samma modellobjekt som skickas till vyn skickas till master page –Alla våra ViewData implementerar interfacet IMasterPageViewData –IMasterPageViewData innehåller data för meny, breadcrumb, varukorg etc. MASTERPAGE MASTERPAGE, VYER OCH PARTIELLA VYER

 Hittills har vi visat hur ASP.NET MVC fungerar  Vi har gjort anpassningar av detta i MVC B2B FOUNDATION VAD ÄR B2B FOUNDATION

 B2B Foundation baseras på ASP.NET MVC  Innehåller basfunktionalitet som de flesta B2B applikationer behöver  Är komponentiserat och utbytbart i de flesta avseenden delar –Controller, vydata, affärslogik (service-lager) –Dependency Injection via AutoFac-ramverket  Viss javascript funktionalitet med jQuery B2B FOUNDATION 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  Affärslogik kan kundanpassas –Utöka eller byta ut basfunktionalitet  Vydata (=Model) kan kundanpassas  Controller/Action/Vyer väljs i backoffice –Controller/Action väljs under ”Händelse” –Vyer väljs under ”Vy” –Varje CMS-sida eller produktsida kan konfigureras till att använda någon av de vyer projektet har implementerat –Denna anpassning sker i Enova CMS  Routes byggs upp per sida för bättre sökmotoroptimering ANPASSNINGAR AV ASP.NET MVC ENOVA CMS OCH B2B FOUNDATION HAR GJORT VISSA INGREPP I MVC

 Html-helpers är hjälpfunktioner som genererar html-kod –Bör endast användas för att generera enkla html taggar –Innehåller endast för presentationslogik  En mängd html helpers finns inbyggt –Html.BeginForm –Html.Image –Html.Input –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.ProductImage HTML HELPERS HTML HELPERS GENERERAR HTML-KOD

 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 eftersom en controller factory måste anropas HTML HELPERS HTML HELPERS ANVÄNDS FÖR ATT ANROPA PARTIELLA VYER

 Demo av eNOVA CMS DEMO

 Anpassning av en befintlig vy LAB #1

 En sidtyp i eNOVA CMS är en klass som ärver EnovaCmsPage  Denna ska inte ha några språkberoende attribute –Språkberoende ligger på sajt-nivå istället  Inbyggd versionshantering i revisionsdatabasen  I övrigt precis som vilken eNOVA-klass som helst KOPPLING MELLAN SIDTYP, ACTION OCH VY SIDTYP

 Vilka valbara händelser och vyer anges i webbkoden  Men valen dyker upp i backoffice  Ingen webbkod ligger i core-filerna (med eNOVA-klasser)  Händelser och vyer synkroniseras över från web applikationen till backoffice vid uppstart SYNKRONISERING AV HÄNDELSER OCH VYER

 eNOVA-klasser exponeras inte direkt i vyn –Vi behöver en vydataklass för detta (=modell)  En arvsstruktur i eNOVA-klasser bör (=skall) matchas av samma arvsstruktur i vydatatyp  Det är en 1-1 koppling mellan sidtyp och vydatatyp  Vydataklassen är en databärande klass som markeras med attributete CmsPageTypeDefinitionAttribute KOPPLING MELLAN SIDTYP, ACTION OCH VY CMS VIEW DATA TYPE

 Vydatatypen används för att ange vilken controller/action och vy som kan väljas i backoffice  En vydatatyp bör ha actions i endast en controller  En valbar action markeras med två attribut: –ActionDefinitionAttribute för att ge ett friendly name (en per språk) –ViewDataDefinitionAttribute för koppling till sidtypen HUR ANGER MAN EN VALBAR HÄNDELSE (ACTION)

 En sidtyp kan ha valfritt antal vyer –Valet av vy är frikopplat från val av action… –…men mappen för vyn tas från controllern  En valbar vy markeras med attributen: –ViewDefinitionAttribute för friendly name –AssociatedToCmsViewDataAttribute för koppling till sidtypen  En code behind krävs för synkronisering av vyn.  Exempel på code behind: HUR MAN ANGER EN VALBAR VY

 Vyerna i Web Foundation är typade  Dock är de inte typade på cms-vydatatypen  Händelsen bestämmer vilken vydatatyp som skickas till vyn  Alla vydatatyper i Web Foundation implementerar IMasterPageViewData  IMasterPageViewData har en property CmsData och det är denna som innehåller data från CMS-sidan  Mer om detta senare. OT: VYERNA TYPAS INTE PÅ CMS VYDATA

 Skapa en ny vy i Sandbox-projektet  Starta web applikationen för att synkronisera över vyn till backoffice  Lägg in vyn på en befintlig sida  Anpassa vyn LAB #2

 Ta utgångspunkt i lagerskissen.  Beskriv de olika lagren och dess ansvarsområden  Beskriv autofac  Gå tillbaka och ge exempel på hur vart och ett av lagren kan anpassas. Visa med kodexempel –controller via named service –Factory som container scoped –ViewData som factory scoped –ViewData som expression –Service som container scoped –Beroenden till service och factory i konstruktor –Beroenden till ViewData i IContainerProvider –Ge exempel på utökad funktion – StaticLeftMenuMasterPageViewDataFactory.  Skillnaden mellan CMS-vydata och WebFoundation vydata  Beräknad till 1h ARKITEKTUR I WEB FOUNDATION

 Utöka funktionaliteten i sidan ”Kontakta oss”.  Cms sidtyp: Wipcore.Webfoundation.Core.ContactUsPage  Cms vydataklass: Wipcore.WebFoundation.Viewdata.CmsContactUsViewData  WF vydataklass: LAB #3