DM1302DK - 3. semesterUgeplan for Softwarearkitektur og Distribuerede Programmer
|
Sidst ændret: 2014.10.21
Uge 39 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Tirsdag | 08:30 -
14:00 Bemærk sluttidspunkt |
Fremlæggelse og feedback på projekt
1 (auktionshus) - SDP-del Plan for fremlæggelse mm |
|
Onsdag | 08:30 - | Intro til webservice - herunder berører vi også lige begreberne: RPC, RMI, Remoting, CORBA, MS gamle webservice (asmx) - Protokoller/formater - WCF 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 |
Distributed object communication (Wikipedia)
(NYT link) 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
(tidligere forløb) |
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" |
|
10:20 - | Vi skal herefter prøve at lave en
simpel WcfService (webservice) Video fra undervisningen (tidligere forløb) 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 | Opgaveløsning uden støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt Ø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 |
|
Torsdag | 08:30 - |
Selvstudie / studiekreds - Bjørk er
til årsmøde i DMLF WCF service hvor der udveksles objekter Mønstre: - Remote Facade / Proxy - Data Transfer Object |
http://martinfowler.com/eaaCatalog/remoteFacade.html http://msdn.microsoft.com/en-us/library/ff649585.aspx |
Øvelser:
Prøv at hente data fra følgende WcfService (webservice) der kan returnere objekter - PersonWcfService.svc
1) Du kan starte med at prøve at hente data med
WcfTestClient.exe programmet og kan vise data direkte. |
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" |
||
Opgave WCF-Valuta
opgave a+b 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. |
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 uden
støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt (WCF service opgaver fra onsdag og torsdag) |
Afleveringsopgaver denne uge: ingen |
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 40 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Tirsdag | 08:30 - | WCF service hvor der udveksles
objekter Mønstre: - Remote Facade / Proxy - Data Transfer Object |
http://martinfowler.com/eaaCatalog/remoteFacade.html http://msdn.microsoft.com/en-us/library/ff649585.aspx |
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 |
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 |
||
Klientsiden: (udskudt
til torsdag) Vi vil også se på hvordan vi kan foretage asynkrone kald fra klienterne, så en brugergrænseflade ikke låses. Det kan tage tid at udføre en webservice og her er det hensigtsmæssigt at selve kaldet incl. overførsel af data, kan afvikles i en baggrundstråd, det klares let med asynkrone kald. |
Slides:
Pp_WCF_Async_Client.ppt Kode fra undervisningen sidste forløb: |
||
12:30- 14:00 | Opgaveløsning uden støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt
Opgave WCF-Valuta |
||
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 |
|
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 |
||
11:30- |
Aftalt på dagen og nu
med i planen: Gennemgang af løsning med WCF der anvender session (asp.net variant) for at huske data for klienten på serversiden Video fra undervisningen C# SDP14E uge40On WCF om at huske data for klient på server (ASP.NET session) |
|
|
12:30- 14:00 | Opgaveløsning uden støtte fra underviser - Opgave WCF-Valuta - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt Prøv evt. også at lægge webservicen ud på webhotel (se fronter og book gruppenavn hos bjbu) |
||
Torsdag | 08:30 - | WCF Service fortsat Opsamling fra onsdag |
|
Klientsiden: (fra
tirsdag) Vi vil også se på hvordan vi kan foretage asynkrone kald fra klienterne, så en brugergrænseflade ikke låses. Det kan tage tid at udføre en webservice og her er det hensigtsmæssigt at selve kaldet incl. overførsel af data, kan afvikles i en baggrundstråd, det klares let med asynkrone kald. Vi ser også lige på databinding og ListBox |
Slides:
Pp_WCF_Async_Client.ppt Kode fra undervisningen sidste forløb: |
||
Evt. lidt mere op hvordan man kan
få "løbende" opdatering af GUI uden at låse denne med brug af
BackgroundWorker. (ikke
krav til eksamen) |
Asynkron/baggrunds
behandling med BackgroundWorker (.NET 4.0) · MSDN: BackgroundWorker Class · MSDN: How to: Use a Background Worker · Stackoverflow: asynchronous operation/tasks in WP7/Silverlight eksempel - der dog er løst i
Windows Phone - det vigtige er dog det samme på PC |
||
Opgaveløsning - valutaopgave
med vejledning - Opgave WCF-Valuta 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 Hvis du går i stå eller har brug for en gennemgang af løsningen kan du finde den her: Løsning af valutaopgaven Husk dog selv at løse opgaven uden blot at "skrive af" |
||
12:30- 14:00 | Opgaveløsning uden støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt Prøv evt. også at lægge webservicen ud på webhotel (se fronter og book gruppenavn hos bjbu) |
Afleveringsopgaver denne uge: Valuta opgave (eller tilsvarende, hvis du har har haft din egen idé) - du behøver i afleveringen ikke at have persistens, men kan holde alt i memory. |
Uge 41 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Tirsdag | 08:30 - | 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 - samme fra http://webdemo.bjoerks.net 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
|
Slides kort om JavaScript - fra tidligere javascript-kursus Eksempler og en mulig opgave
Javascript specifik læsestof fra diverse sider: |
||
Video fra undervisningen (tidligere forløb) Intro til ASP.NET webpages (gui) med Visual Studio (tidligere forløb)
Der SKAL tages udgangspunkt i et tomt webprojekt og simple WebForms - gerne med med mindre skærmbilleder, der også er brugbare på en mobil, selvom man ikke har et fantastisk godt syn.
|
AspBeg(**) side 1-11 (lidt intro om web og dynamiske sider) Slides om ASP.NET web sites, webkontroller m.m. (herunder åbning af ISS for extern adgang) Intro til ASP.NET webpages (gui) med Visual Studio - Solution svarende til video
-
SDP2011E - WebSolution_20111108.wmv |
||
12:30- 14:00 |
Opgaveløsning uden støtte fra underviser Vi kan måske godt finde på at lave den traditionelle
regnemaskine med 2 input, et output og nogle knapper, men ren
gui - ingen model/facade.... |
AspBeg(**) side 1-11 (lidt intro om web og dynamiske sider) Slides om ASP.NET web sites, webkontroller m.m. (herunder åbning af ISS for extern adgang) Intro til ASP.NET webpages (gui) med Visual Studio - Solution svarende til video
|
|
Onsdag | 08:30 - |
Det er tanken at jeg denne dag kort trækker det centrale op, der også er
eksamensrelevant og at man herefter kan kaste sig over et mindre projekt
/ foreløbige eksperimenter / undersøgelser af virkemåde.
Du skal fokusere på simple WebForm (gerne billeder der også er passende
for telefon) og ikke fx. MasterPages, MVC og andet kompleks. Her kan video inddrages for at få uddybet emnet.
Video fra undervisningen (tidligere forløb) 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 |
Validering (klient versus server side) Indbyggede kontroller (kod ASP.NET og C# og få resultat som javacript i html til afvikling på klient) Basal navigation mellem sider (Transfer <-> Redirect)
Brug af
Menu kontrollen
-
se hvor kode afvilkes - se vis kilde->inde i browser |
|||
Tips vedr. webform og telefoner / tablets: Pp_Web_MobileFullScreen.ppt |
|
||
12:30- 14:00 | Opgaveløsning uden støtte fra underviser - diskuter og sammenlign, samt hjælp hinanden, men sørg for også selv at kode individuelt Opgave: Afprøv forskellige Web-elementer - fx. regnemasine eller andet simpelt uden egentlig model Du skal afprøve at du kan "huske" nogle mellem kaldende fra klient og server - at der kan holdes en state-fullness kommunikation Det vigtige er her at få lidt styr på at sikre data han huskes under selve programafviklingen uden brug af filer/database, herunder det specielle med Postback. Det vil endvidere også være fint at kunne navigere mellem sider. |
Noget man ikke får brug
for til eksamen i SDP: |
|
Torsdag | 08:30 - | Kort lidt eksempler med
brug af javascrip på ASPX sider. evt. supplement med kald af webmetode på page fra klient (javascript) |
Pp_JavaScriptCodeBehindOgPageMethods.ppt Fra undervisningen mandag : JavaScriptValideringSolution_20140331.zip Eksempel med hentning af data ved javascript der kalder PageMethod for data: JavaScriptCallPageWebmethodSolution.zip |
evt. lidt om login og sikkerhed på
website - der er indbyggede sikkerhedsmekanismer på ISS for en webapplication som kan sikre adgangskontrol |
|||
12:30- 14:00 | Opgaveløsning uden
støtte fra underviser Webform til din valuta wcf-service eller anden selvdefineret opgave Sørg for flere skærmbilleder med navigation mellem |
Uge 42 - Efterårsferie |
Uge 43 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Tirsdag | 08:30 - | Besøg fra virksomheden Leisner om mulige projekter (wcf/web - projekt 2) | |
Opsamling på WCF (webservice) og
WebForm (web-GUI) - kort om navigation mellem flere side - evt. gennemgang af løsning (dele af) på valutaopgave |
Pp_AspNet_Navigation.pptx Eksempel på webform med states (cookies, viewstate, session, application) BrowseWebSiteMapper.txt |
||
Om transaktioner i databaser - Stored procedure - herunder også lidt om distribuering med stored procedure - ultrakort om Transaction klassen og |
Om Server Transaction Eksempler på Stored Procedures - sidste sider med transaction http://msdn.microsoft.com/en-us/library/system.data.idbtransaction(v=vs.110).aspx Udvalgte slides fra "C# to the point" om ADO connections herunder transaction |
||
11:00 - 12:00 | Besøg fra virksomheden FynBus om
mulige projekter (wcf/web - projekt 2) |
||
12:30- 14:00 | Opgaveløsning uden
støtte fra underviser Webform til din valuta wcf-service eller anden selvdefineret opgave Sørg for flere skærmbilleder med navigation mellem |
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: |
|
Ekstra fra interesserede
(som ikke er bagud og bør løse opgaver) - vi kan se på et par eksempler på domain model med database som er en anden variant end i har anvendt |
Eksempel på Arkitektur Eksempel på model implementeret på 2 måder: serialisering & med database, hvor der er cache og optimistic offlinelock Vs_BladhusSolution_1_WebFormUI_Ver2.zip |
||
Onsdag | 08:30 - | Opsamling på WCF (webservice) og
WebForm (web-GUI) - evt. løsning af dele af valutaopgave på klassen |
|
Kort om styling af websider med
Themes, Skins og CSS Med styling kan du ændre GUI kontrollernes udseende uden at skulle ændre properties på den enkelte kontrol. Udseende at en side kan med Themes ændres let for en eller alle sider og gøres dynamisk afhængig af bruger, tidspunkt ........ |
http://msdn.microsoft.com/en-us/library/vstudio/ms247256(v=vs.100).aspx
Pp_VsASP_Themes_Nokn.ppt - themes sat i web.config! |
||
10:20- 12:00 | Opgaveløsning uden
støtte fra underviser Webform til din valuta wcf-service eller anden selvdefineret opgave Sørg for flere skærmbilleder med navigation mellem |
||
12:30- 14:00 | Opgaveløsning uden
støtte fra underviser Webform til din valuta wcf-service eller anden selvdefineret opgave Sørg for flere skærmbilleder med navigation mellem |
||
Torsdag | 08:30 - | Opsamling på WCF (webservice) og
WebForm (web-GUI) - evt. løsning af dele af valutaopgave på klassen |
|
Evt. lidt mere om sikkerhed på ISS - website |
Pp_VsASP_Sikkerhed_Nokn.ppt Videoer fra tidligere web-fag:
|
||
Ekstra fra interesserede
(som ikke er bagud og bør løse opgaver) - vi kan se på hvordan man får lavet sine WCF service op så de kan bruges til REST kald med json som dataformat frem for soap |
http://webservicedemo.datamatiker-skolen.dk/ vi tager
udgangspunkt i source herfra
|
||
12:30- 14:00 | Opgaveløsning uden
støtte fra underviser Webform til din valuta wcf-service eller anden selvdefineret opgave Sørg for flere skærmbilleder med navigation mellem |
Uge 44 | |||
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Tirsdag | 08:30 - 12:00 | Projektarbejde - web-projekt (vejledning - bjbu) | |
12:00- | Projektarbejde | ||
Onsdag | 08:30 - 12:00 | Projektarbejde - web-projekt (vejledning - bjbu) | |
12:00- | Projektarbejde | ||
Torsdag | 08:30 - 12:00 | Projektarbejde - web-projekt (Ingen vejledning af bjbu denne torsdag men vil være tilgængelig fredagen morgen og eftermiddag) | |
12:00- | Projektarbejde |
Dag | Tidspunkt | Emne | Litteratur / Opgaver |
Tirsdag | 08:30 - 12:00 | Projektarbejde - web-projekt (Ingen vejledning af bjbu denne torsdag men vil være tilgængelig mandag denne uge) | |
12:00- | Projektarbejde | ||
Onsdag | 08:30 - 12:00 | Projektarbejde - web-projekt (vejledning - bjbu) | |
12:00- | Projektarbejde | ||
Torsdag | 08:30 - 12:00 | Projektarbejde - web-projekt (vejledning - bjbu) | |
12:00- | Projektarbejde |