DM131 - 3. semesterUgeplan for Softwarearkitektur og Distribuerede ProgrammerTema: Webservices (WCF) og Web - Gå til uge: 11, 12, 13, 14, 15 |
Sidst ændret: 2014.04.01
Uge 11 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Mandag | 08:30 - | Fremlæggelse og feedback på Auktionshus projekt | |
12:30- 14:00 | |||
Onsdag | 08:30 - | Intro til webservice Forbered dig ved at læse materialet igennem og få fat på begreberne. Hvis du vil have lidt snak om begreberne kan du se
videoer fra tidligere |
C#(*) kap 18.3 (side 884-885) (web-service) .NET app (**) - Side 403-409 kap 7.1 Overview - Side 413-415 kap 7.3 SOAP (intro) - Side 415-417 kap 7.3.1 SOAP formats - Side 429-430 kap 7.4.4 Life Cycle of a Web Services (session) - Side 430-433 kap 7.5 WSDL - Side 433-434 kap 7.6 UDDI / DISCO Supplerende materiale fra Wikipedia Om WebServices Om XML Schema Om SOAP protokollen Om WSDL
Slides til undervisningen: |
- 10:00 | Vi skal afprøve nogle
webservices (wcf og de ældre asmx) - med WcfTestClient.exe - med Windows klient program Video fra undervisningen |
Pp_WCF_Basic_Client.ppt Webservices til afprøvning - brug for klient: - http://webservicedemo.datamatiker-skolen.dk/ - http://wcfdemo.datamatiker-skolen.dk/ - http://www.ezzylearning.com/services/ Nyttig "link": WcfTestClient er et program der ud fra WSDL beskrivelserne kan gør det muligt at afprøve en WCF-service uden at programmere. Det kan normalt findes her: "C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\WcfTestClient.exe" En video med en klient der bruger ældre .NET - men måske kan give hints (ikke aktuel mere da der er video fra dagen nu) |
|
10:20 - | Vi skal herefter prøve at lave en
simpel WcfService (webservice) Video fra undervisningen C# SDP14F uge11On WCF intro opret simpel service og klient der bruger den Tilhørende solution: 201403120912_ServerSolutionMedConsoleKlient.zip |
Pp_WCF_Basic_Server.ppt |
|
12:30 - 14:00 |
Øvelser: 1) Lav et tomt web projekt og opret en wcf service med navnet CirkelSevice, der har følgende tilgængelige metoder ---- BeregnDiameter - der tager en radius som input og returnerer diameteren ---- BeregnOmkreds - der tager en radius som input og returnerer omkredsen ---- Lav et lille windows program, som anvender din CirkelService 2) Lav et par små windows programer der anvender nogle af det webservice der er på det 3 sites |
Hvis der er nogen der gerne vil afprøve bruge af deres egen Internet
Information Server er her et par tips: - Pp_WCF_BrugAf_ISS.ppt Du skal ikke begynde på det, hvis du ikke har rigeligt med overskud - du klarer dig fint med den server afvikles med Visual Studio Hvis du gerne vil prøve at få dine WCF services lagt ud på vores webhotel, så se beskrivelse i fronter under SDP |
|
Fredag | 08:30 - | WCF service hvor der udveksles
objekter Mønstre: - Remote Facade / Proxy - Data Transfer Object Vi vil i denne uge se bort fra at gemme
data på serveren, ligesom vi udelukker persistens. |
http://martinfowler.com/eaaCatalog/remoteFacade.html http://msdn.microsoft.com/en-us/library/ff649585.aspx |
- 12:00 |
Opgave WCF-Valuta Løs opgaven så simpelt som muligt - der er i opgaven ingen opdateringer og man kan derfor også ignorere mulige tråd problemer ved tilgang til fælles resourcer.
Som lovet i mandags vil jeg også gerne prøve at lave en
løsning på auktionshuset for dem der måtter ønske det -
næsten fra bunden, idet jeg nok dog vil kopiere lidt fra en
simple socket (ClientHandler og Server) |
Hvis nogen allerede nu føler behov for at huske data, kan man
enten definere sin WCF service som Single - se tidligere slides
eller tage hul se på et par slides der tages op næste uge - her
er også noget om asynkrone kald: - Pp_WCF_Session.ppt - Pp_WCF_Async_Client.ppt |
|
12:30 - 14:00 | Opgaveløsning med valutaopgave (eller tilsvarende) |
Afleveringsopgaver (obligatoriske) denne uge: |
MsVC#(*) Microsoft Visual C#.NET Programming, af Doyle AspBeg(**) Beginning ASP.NET 1.1 with Visual C#.NET 2003, af Ullman et al. AspProf(***) Professional ASP.NET 1.1, af Homer AspNet(****) ASP.NET, af Schmidt |
Uge 12 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Mandag | 08:30 - | WCF Service fortsat Serversiden (og krav på klientsiden): Vi skal se på hvordan vi kan have data til at "overleve" i memory på vores WCF service: - For den enkelte klient (PerSession / ASP.NET Session) - For hele applikationen - fælles for alle klienter (Single / ASP.NET Application) - pas på!! trådsikring Klientsiden: Fra undervisningen: |
Slides: Pp_WCF_Session.ppt Eksempel på en wcfservice med en bruger-session (ASP.NET) fra tidligere undervisning: Video - Vs_WcfSolution_ASPNET_SESSION_20111125.zip
|
Opgave WCF-Valuta - bemærk opdateret med en delopgave mere for nye valuta'er | |||
12:30 - 14:00 |
Opgaveløsning -
valutaopgave |
||
Onsdag | 08:30 - | WCF Service fortsat - opsamling - trådsikring (thread lock) - offline lock - optimistic / pessimistic |
Relevante mønstre fra Fowler - Om service layer: http://martinfowler.com/eaaCatalog/serviceLayer.html - Om Optimistic Offline Lock: http://martinfowler.com/eaaCatalog/optimisticOfflineLock.html - Om Pessimistisk Offline Lock: http://martinfowler.com/eaaCatalog/pessimisticOfflineLock.html |
- 10:00 |
Evt. hvis vi kan nå det |
Løsning ved brug af database: - Enkelt Console-eksempel på optimistic offline lock (database) - Eksempel på WCF service med databasetilgang: WcfService_SimpelPersonService_MedDatabase_Solution.zip |
|
10:20 - | Opgaveløsning - valutaopgave med vejledning | ||
12:30 - 14:00 |
Opgaveløsning - valutaopgave | ||
Fredag | 08:30 - | WCF Service fortsat Opsamling fra onsdag |
|
- 10:00 | Opgaveløsning - valutaopgave
med vejledning Hvis du har lavet valutaopgaven som "memory" løsning, så prøv at lave tilsvarende service men med en bagvedliggende database |
- Eksempel på WCF service med databasetilgang: WcfService_SimpelPersonService_MedDatabase_Solution.zip |
|
12:30 - 14:00 | Opgaveløsning |
Afleveringsopgaver (obligatoriske) denne uge: Valuta opgave (eller tilsvarende, hvis du har har haft din egen idé) |
Uge 13 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Mandag | 08:30 - |
Det er tanken at jeg denne dag kort trækker det centrale op, der også er direkte eksamensrelevant og at man herefter evt. kan kaste sig over et mindre projekt / foreløbige eksperimenter / undersøgelser af virkemåde.
Om web og
asp.net - gennemgang ud fra slides del 1 WEB-pages (gui) programmering - Introduktion til ASP.NET, Session, ViewState m.m. Debug, Trace af webapplikation
Pladsering og kommunikation af data til brug i dialoger
|
Slides om ASP.NET web sites, webkontroller m.m. (herunder åbning af ISS for extern adgang)
Hvordan "huskes"
data mellem metodekald:
Om events og vedligeholde state Repetition fra 1. studieår
Om navigation, listbox mm:
se uge 9 - 1. år
|
Opgave: Lav en ASP.NET brugergrænseflade med mindst to sider, som anvender dine webservice (Valuta) - prøv evt. at adskille med 2 websites, så dine service køre på et site og din web gui på et andet. Hold dig til simple webforms uden masterpages, men med
Du skal afprøve at du kan "huske" nogle
mellem kaldende fra klient og server - at der kan holdes en state-fullnesskommunikation |
Noget man
ikke får brug for til eksamen i SDP: Hvis nogen også gerne vil afprøve brugen af navigation med SiteMap kan man måske få lidt hjælp her: - http://www.youtube.com/watch?v=gTmOCS53IGs (HD) - http://www.youtube.com/playlist?list=PL35D716BED5C93532&feature=viewall (også HD) Om TreeWiew - C# SDP10E Om brug af TreeView på webside med Visual Studio (af Bjørk Boye Busch) Og her lidt om MasterPage - http://www.youtube.com/playlist?list=PLF6ACDBC6F0E84322&feature=viewall |
||
12:30- 14:00 | Opgaveløsning uden
vejledning |
||
Onsdag | 08:30 - | Opsamling fra sidste gang Opsamling på opgaver |
Supplement til slides om validering (klient versus server side) Indbyggede kontroller (kod ASP.NET og C# og få resultat som javacript i html til afvikling på klient) |
- 10:00 | Opgaveløsning MED vejledning |
Ekstra: man
ikke får brug for til eksamen i SDP: · Video: Om brug af MasterPage i Visual Studio webprojekt · Video del1 · Video del2: Hvordan man laver SiteMap og SiteMap navigation · Video: Om brug af Menu på webside med Visual Studio · Video: Om brug af TreeView på webside med Visual Studio · Video: Om brug af GridView og direkte tilgang til database på webside med Visual Studio
|
|
10:20 - | |||
12:30 - 14:00 |
Opgaveløsning uden vejledning | ||
Fredag | 08:30 - | Opfølgning på WCF og WEB stof til
nu |
Efterspurgt tidligere: Eksempel på brug af template i xaml koden på WPF DataGrid og ListBox, således at man selv kan bestemme hvordan data præsenteres - databinding til element Wpf_DataGrid_ListBox_Template_i_XAML.zip |
- 10:00 | |||
12:30 - 14:00 | Opgaveløsning uden vejledning |
Afleveringsopgaver (obligatoriske) denne uge: Valuta opgave - med WEB-GUI (eller tilsvarende, hvis du har har haft din egen idé) - se mandag denne uge |
Uge 14 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Mandag | 08:30 - | Opfølgning på sidste uge, herunder
opgaver Vi vil desuden se en smule på javascript og lidt mere på html
|
|
Introduktion til HTML (og statiske
websider) - præsentation på klient (browser) I noget materiale skrives at man skal bruge Notepad til at oprette html sider med, men vi anvender i stedet Visual Studio, hvor man både kan arbejde i source og design mode - husk at studere (og gerne skrive lidt i) source mode Pointen er til dette emne at se lidt (og eksperimentere lidt)
på design af brugergrænseflade med HTML og få en vis forståelse
for opbygningen af HTML DOM og hvordan det virker. |
The HTML
DOM (Document Object Model) Eksempler og en mulig opgave Supplerende materiale fra w3school om HTML
|
||
Introduktion til javascript (funktionalitet afvikles på klient)
-
BEMÆRK DETTE EMNE
BEHANDLES KUN PERIFÆRT - herunder måske en smule om idé bag AJAX Denne del er kun for at
give en lille idé om at dokumenter i en browser også kan
indeholde aktiv kode og effekten af dette. Der er vigtigt at vide om hvilken programkode afvilkes på server og hvilken programkode der afvilkes på klienten (i browseren) Javascript programmet med regulære udtryk er interessant, da ASP.NET indeholder validering (skal vi se på senere) der med brug af javascript afvilkes på klienten (i browseren).
Vigtigt: JavaScript som "CodeBehind" og ikke direkte i ASPX fil
Fra undervisningen mandag :
JavaScriptValideringSolution_20140331.zip |
Slides kort om JavaScript - fra tidligere javascript-kursus Eksempler og en mulig opgave
Javascript specifik læsestof fra diverse sider:
|
||
12:30- 14:00 | Opgaveløsning | ||
Onsdag | 08:30 - | Kort opsamling på eksempler med
brug af javascript fra mandag. evt. supplement med kald af webmetode på page fra klient (javascript) Tips vedr. webform og telefoner / tablets: Pp_Web_MobileFullScreen.ppt |
Pp_JavaScriptCodeBehindOgPageMethods.ppt Fra undervisningen mandag : JavaScriptValideringSolution_20140331.zip Eksempel med hentning af data ved javascript der kalder PageMethod for data: JavaScriptCallPageWebmethodSolution.zip |
Opsamling på opgaver Opgaveløsning med vejledning og feedback Flere opgaver: Du kan selv være med til at definere opgaver / projekt - men kan også få hjælp, evt. formulerede opgaver. Det vigtige er at få lavet et par wcf service mere en valutaopgaven, med tilhørende klienter, hertil også nogle løsninger der anvender webforms. |
Eksempel på fastholdelse af session til web-service for klient Bemærk at ved web-klienten er der både en session til web-siden og videre en til web-servicen, som skal sikres. WebSessionServiceKlienterSolution.zip Tilhørende eksempel på simpele WCF Services der anvender ASP.NET Session. WcfSession_Counter_String_WebApplication.zip |
||
- 12:00 | |||
12:30 - 14:00 |
Opgaveløsning med uden vejledning | ||
Fredag | 08:30 - | Opsamling på opgaver Opgaveløsning med vejledning og feedback |
|
- 10:00 | |||
12:30 - 14:00 |
Afleveringsopgaver (obligatoriske) denne uge: Dem du mangler |
Uge 15 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Mandag | 08:30 - | Du skal enten lave et mindre
projekt eller løse opgaver, hvor der indgår dels wcf service og
dels webform brugergrænseflade med validering på klientside. Du kan selv være med til at definere dine opgaver / projekt, men forventes at sikre dig med underviser, at det er passende omfang. Valutaopgaven ligger ud over dette projekt / disse opgaver. |
Flere opgave idéer: Du kan tage udgangspunkt i følgende oplæg Brug også en ASP.NET brugergrænseflade kørende på et andet ASP.NET projekt WcfVare01 - webservice med remote vare WcfVare02 - webservice med remote varekatalog Materiale
der kan bruges som hjælp for opgaver - løsning der ikke er
distribueret: |
12:30- 14:00 | Opgaveløsning uden vejledning | ||
Onsdag | 08:30 - 12:30 |
Opsamling på projekt / opgaver Opgaveløsning med vejledning
|
|
12:30 - 14:00 |
Opgaveløsning uden vejledning | ||
Fredag | 08:30 - | Opsamling på webservice med WCF og Web grænseflade med WebForm | |
- 10:00 | |||
12:30 - 14:00 |
Afleveringsopgaver (obligatoriske) denne uge: Dem du mangler |