DM11x - 3. semester

Ugeplan for Softwarearkitektur og Distribuerede Programmer

Tema: Web programmer og webservice (WCF)
- Gå til uge: 45, 46, 47, 48, 49, 50, 51,
- Gå til foregående tema uge 39-44

Sidst ændret: 2012.12.09

 

Uge 45
Dag Tidspunkt Emne Litteratur / Opgaver
Tirsdag    Bemærk  - denne dag er der ikke støtte fra underviser, så i kan selv disponere den til det I evt. mangler.
I har også mulighed for at tage hul på torsdagens emner og så nå at fordybe jer lidt mere - jeg har her også lagt video'er ud fra sidste forløb som kan understøtte jeg i at gå i gang på egen hånd.
 
   
Torsdag  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.

 

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 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.
I forbindelse med ASP.NET vil der blive dannet HTML, men også med indlejret javascript.

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

Slides kort om JavaScript - fra tidligere javascript-kursus
Eksempler og en mulig opgave

Eksempel på klientprogram i form i javascript:  program til test af mønstre i tekster - regulære udtryk

Javascript specifik læsestof fra diverse sider:
Variables, Functions, Operators, Conditionals
JavaScript Objects
JavaScript Object Examples
onMouseover: Your first Script

Mere avanceret læsestof for dem der har tid og gerne vil lidt dybere med selve javascript sproget

 

- 14:00 Intro til ASP.NET webpages (gui) med Visual Studio

Der er ikke til denne dag egentlige opgaver - du skal bruge dagen på at afprøve designere lidt og se på komponenter der findes.
Du kan lave forskellige skærmbilleder, men der er ikke meningen der skal funktionalitet på denne dag.

Vi kan måske godt finde på at lave den tradionelle 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)
Demoer på klassen
Solution svarende til video

 
Videoer fra dagens emne sidste forløb (dm10x)

 - SDP2011E - WebSolution_20111108.wmv

 - SDP2011E - WebSolution_Aspx_20111108.wmv
 - SDP2011E - WebSolution_Aspx_20111108.zip (solution til video)
 

Fredag    Bemærk  - denne dag er skema ændret så der er CDS foredrag...... se fronter nyhed  
   
Afleveringsopgaver (obligatoriske) denne uge: ingen aflevering, men masser af øvelser også efter egne ønsker med web-gui som du selv tjekker og som jeg selvfølgelig også kan give feedback på
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 46
Dag Tidspunkt Emne Litteratur / Opgaver
Tirsdag  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.
Her kan video inddrages for at få uddybet emnet.

Om web og asp.net - gennemgang ud fra slides del 1 
Om web og asp.net - gennemgang ud fra slides del 2 

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
- Viewstate
- Session
- Application
- Cookies
- URL-parametre

 

 


Slides om ASP.NET web sites, webkontroller m.m. (herunder åbning af ISS for extern adgang)

Hvordan "huskes" data mellem metodekald:
Eksempel på webform med states (cookies, viewstate, session, application)

Om events og vedligeholde state
AspBeg(**) side 202-206 (Event-Driving & Post Back)
AspProf(***) side 132-134,142-143
AspBeg(**) side 381-430 
 

  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 side->inde i browser
 

 

Demoer på klassen? eller video fra tidligere


 

 

- 14:00 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:
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

 

 
Videoer fra dagen sidste forløb (dm10x)

- Om web og asp.net - gennemgang ud fra slides del 1 
- Om web og asp.net - gennemgang ud fra slides del 2 

 - Om Postback og at holde en state - del 1
 - SDP2011E - WebSolution_20111110_01.zip (solution til video)

- Om Postback og at holde en state - del 2
 - SDP2011E - WebSolution_20111110_02.zip (solution til video)
 

Torsdag  08:30 -  

 

Det er tanken at i fortsat kan kaste sig over et mindre projekt / foreløbige eksperimenter / undersøgelser af virkemåde.
Her kan video inddrages for at få uddybet emnet.
I dag lidt flere kontroller - bemærk eksemplerne med database vil ikke komme i brug til selve eksamen.

ListBox, Grid m.m. herunder direkte kobling til database og det specielle vedr. disse med WEB

Demoer:
Videoer fra dagens emne sidste forløb (dm10x)

 - VarekartotekModel_20111115_V00.zip
 - AspNetListBox01.wmv- Samme på - VarekartotekModel_20111115_V01.zip
 - AspNetListBox02.wmv- Samme på -VarekartotekModel_20111115_V02.zip
 - AspNetListBox03.wmv- Samme på   - VarekartotekModel_20111115_V03.zip
 - AspNetListBox04.wmv - Samme på - VarekartotekModel_20111115_V04.zip
 - AspNetListBox05_Datagrid.wmv - Samme på - VarekartotekModel_20111115_V05.zip

Hvis du har behov for lidt ekstra generelt vedr. opdeling i flere projekter (model, interfaces mm) samt hvordan man kan bruge listbox og Datagrid i en winform applikation kan du få mere om dette her:

 - SDP2011E - 20111111_01_ProjekterNamespaceDLLer.wmv - Samme på
 - SDP2011E - 20111111_02_ListBox_Datagrid_Datasource.wmv- Samme på
 - SDP2011E - VarekartotekModel_20111111.zip  (solution til video)

 
 
- 14:00

Vi kan bruge denne eftermiddag til opsamling /gennemgang af en løsning scanner-opgaven med ruteplanen, hvis der er behov - dette afklares torsdag morgen.

 

Fredag  08:30 -  12:00

 

Bemærk at denne uge er der planlagt SDP hele fredagen (hvor det sidste uge var CDS)

Introduktion til webservice (i dag brug af)

Det er tanken at jeg denne dag meget kort trækker det centrale op og vi tager teorien op igen senere, men jeg har medtaget referencerne til teorien for dem der har behov for denne nu i forhold til læringsstil.

Jeg vil give et par korte eksempler på hvordan man kommer i gang med at bruge eksisterende webservices, næste uge vil vi se på hvordan man laver dem.
Tanken med det vi laver i den kommende tid er at opdele så forretningslogik udføres som webservice (WCF) og brugergrænseflade primært som ASP.NET webforms, men vi skal lige have afprøvet at bruge dem fra andre brugergrænseflader (consol og windows program) der er eksamensrelevante. Jeg regner også med at give en demo med en Silverlight grænseflade i forløbet. 

Til eksamen skal i kunne lave en lille webservice (WCF) og vise den brugt i en brugergrænseflade, der kan være console, windows eller webform (ASP.NET).

 

Demoer på klassen 

Remote Facade og DTO mønstere

 

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

Slides til webservice
Eksempel på brug af webservice Calc

Hvad er webservices - IT & Telestyrelsen

Supplerende materiale fra Wikipedia
Om WebServices
Om XML Schema
Om SOAP protokollen
Om WSDL

ASP.NET Application Services Overview (MSDN)

WcfTestClient er et program der ud fra WSDL beskrivelserne kan gør det muligt at afprøve en webservice uden at programmere. Det kan normalt findes her:
"C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE\WcfTestClient.exe"
 

  Programmerings opgaver (du kan evt. afprøve med flere brugergrænseflader: consol, windows form og ASP.NET form)
Afprøv service til at regne
Hent alle personer i et bestemt postområde
Hent alle personer i med et bestemt navn  (Der kan anvendes % for "joker")
Hent alle postdistrikter med et bestemt bynavn (Der kan anvendes % for "joker") 
http://www.webservicedemo.bjoerks.net/  indeholder services, der kan afprøves tilgang til 
 


Afprøv eksisterende webservices med consol / windows form / WebForm
- du kan fx. få oversat tekst med en webservice du kan finde via linket

Demoer:
Videoer fra dagens emne sidste forløb (dm10x)

WebServiceIntro_20111117.wmv  - Samme på

WebservicePersoner_20111117.wmv  - Samme på

 

Flere webservices:
- http://www.webservicex.net/
Kommersielle:
- http://aws.amazon.com/
- http://www.krakwebservices.dk/
Gå evt. selv på jagt på Google eller Microsoft Live Search efter mere info / tilgængelige Services

  


 
Afleveringsopgaver (obligatoriske) denne uge: ingen aflevering, men masser af øvelser også efter egne ønsker med web-services og web-gui som du selv tjekker og som jeg selvfølgelig også kan give feedback på
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 47
Dag Tidspunkt Emne Litteratur / Opgaver
Tirsdag  08:30 -

WCF Services - demoer af hvordan du selv laver webservices med WCF

Vi skal i dag se på simple services, hvor data blot bliver i memory.
Vi vil komme ind på 3 forskellige måde for instans administration.
- Singleton (et objekt for hele applikationen)
- Per-Session (et objekt pr klient-session)
- Per-Call (et objekt ved hvert kald)

Vi vil kort berøre specielle problemstillinger vedr. flerbruger-problematikker og også lige berøre hvad der skal til for at bruge ASP.NET løsning fx. i forbindelse med webhotel eller del af ASP.NET løsning.
Disse forhold vil vi vende tilbage og uddybe senere.
 

Slides til webservice
Slides til WCF webservice
 

Et par gode generelle link at have med:
http://code.msdn.microsoft.com/  (generelt med tutorials)
http://channel9.msdn.com/ (en del tutorials m.m. - video i fin opløsning) 

- 14:00 Opgave WCF-Valuta

Flere opgave idéer:
Du kan tage udgangspunkt i følgende oplæg, men i stedet for remoting skal du anvende WCF Service på et ASP.NET projekt
Brug også en ASP.NET brugergrænseflade kørende på et andet ASP.NET projekt
R01 - remote vare (MBRO)
R02 - remote varekatalog (MBRO)

Materiale der kan bruges som hjælp for opgaver - løsning der ikke er distribueret:
Solution med vare, der ikke er remote (med test-"klient")
Solution med varekatalog, der ikke er remote (med test-"klient")
Solution med varetransaktion, der ikke er remote (med test-"klient")

  Videoer fra sidste forløb  
vi_Slides_Session_Service_og_Data_contract.wmv  - Samme på

WcfSlides_01.wmv  - Samme på
WcfSlides_02.wmv  - Samme på

Vi_WcfSolution_20111118.wmv  - Samme på
Vs_WcfSolution_20111118.zip

Vi_WcfSolution_20111122.wmv  - Samme på
Vs_WcfSolution_20111122.zip
 

Torsdag  08:30 -   Webservice (WCF) fortsat

Flere mønstre - programmering mod database:
Til selve eksamen vil der ikke forekomme konkrete opgaver hvor der skal inddrage database, men det er i forhold til faget relevant og vil kunne bruges i forbindelse med juleprojektet.
Man skal selvfølgelig også vide noget om begreberne, problemerne og løsnings teknikkerne, der også kan bruges på data-modeller der ligger i memory. Vi skal herunder også lidt ind på hvordan man kan sikre konsistens i forhold til distribution - hvornår kan lock / monitor bruges og hvornår er det ikke nok.

Flere mønstre
- Service layer
- Transaction scripting (Posdistrikt DB Person DB )  (der skal dog bruges WCF)
- evt. TableGateway
- Optimistic offline lock  
 

Se relevante mønstre fra Fowler (i jeres bog fra SUM)

- 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 

WebServicePostPerson - med database

Enkelt Console-eksempel på optimistic offline lock 

Video om oprettelse af database med Visual Studio (Vs2005 men brugbar) 

- 14:00 Bemærk planlægning af opgaveløsning for manglende tidligere opgaver starter kl. 12:30 jvf. nyhed i fronter

Opgave:

- Udvid memory løsningen WCF - Valuta, så der anvendes Optimistic Offline Lock i forbindelser med opdateringer
- Lave en ny udgave, hvor der anvendes database - brug transactrion scripting

 
Fredag  08:30 -  12:00 Bemærk at denne uge er der planlagt SDP hele fredagen (der er mere CDS næste uge)

Efter aftale fra torsdag på klassen ser vi lidt mere på database programmering

Opsamling på ADO.net herunder brug af factory og configurationsfiler,
suppleret med brug af database transaktioner

Videoer om emnerne fra sidste forløb
20111125_Slides_Config_DB_Factory.wmv  - Samme på
20111125_Slides_StoredProcedure.wmv  - Samme på

Evt. supplerende materiale om ADO.NET :
Slides om opsætning af connectionstrings og connection

BasicAdoExampleTransaction

Om Server Transaction
http://articles.techrepublic.com.com/5100-10878_11-5766653.html
Udvalgte slides fra "C# to the point" om ADO connections herunder transaction

Eksempler på Stored Procedures - sidste sider med transaction 

Eksempel på Arkitektur
Eksempel på model implementeret på 2 måder: serialisering & med database, hvor der er cache og optimistic offlinelock

  WCF services evt. opsamling på spørgsmål.
 
 
fra fredag kl. 10
til lørdag kl. 14
PROGRAMMERINGS-MARATON
Programmering af alle afleveringsopgaver der mangler.
 

 
Afleveringsopgaver (obligatoriske) denne uge: ingen aflevering, men masser af øvelser også efter egne ønsker med web-services og web-gui som du selv tjekker og som jeg selvfølgelig også kan give feedback på

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 48
Dag Tidspunkt Emne Litteratur / Opgaver
Tirsdag  08:30 - WCF services

Singleton mønsteret

Vigtigt om SESSION specielt med ASP.NET WebSever som klient til Webservice se video og eksempel

20111125_VigtigtOm_WCFSession.wmv  - Samme på

Slides til WCF webservice

Eksempel på en webservice med en bruger-session , der er her eksempel på såvel en windows application som en web-webform application - anvender beskrivelse jvf. video 2001125_VigtigtOm.....
Vs_WcfSolution_ASPNET_SESSION_20111125.zip

- 14:00 Der er kun undervisningsstøtte frem til 11:30 - resten bliver opgaver på egen hånd Opgave idé  WCF-Valuta
 
Torsdag    Bemærk der denne dag ikke er SDP men CDS  
 
 
Fredag    Bemærk der denne dag ikke er SDP men CDS  
     

 
Afleveringsopgaver (obligatoriske) denne uge: ingen aflevering, men masser af øvelser også efter egne ønsker med web-services og web-gui som du selv tjekker og som jeg selvfølgelig også kan give feedback på

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 49
Dag Tidspunkt Emne Litteratur / Opgaver
Tirsdag  08:30 - WEB
Opsamling på teori/begreber vedr. webservice (wcf)

Introduktion til SilverLight (simpel app) - browserbaseret klientprogrammering
- med brug af webservice for dataudveksling (herunder asynkrone kald)

Demoer og eksempler på klassen

 

 

Videoer fra sidste forløb:

Vi_WcfSolution_20111201_SilverLight_01.wmv - Samme på
Vs_WcfSolution_20111201_SilverLight_01.zip (solution til video)

Vi_WcfSolution_20111201_SilverLight_01.wmv - Samme på
Vs_WcfSolution_20111201_SilverLight_02.zip (solution til video)

vi_VarekartotekModel_20111201_V09_Silverlight.wmv - Samme på
vs_VarekartotekModel_20111201_V09_Silverlight.zip (solution til video)

 

 

WpfApplicationDemo01.zip (windows - solution med wpf)

Slides til webservice
Slides til WCF webservice

Bemærk Silverlight bliver IKKE eksamensstof ud over du skal vide det afvikles på klient i browser ligesom javascript.......

Home Silverlight.NET

Windows Presentation Foundation - Wikipedia, the free encyclopedia
Lidt om XAML der også bruges til GUI def i SilverLight
Extensible Application Markup Language - Wikipedia, the free encyclopedia

XAML Silverlight.NET
What Is Silverlight

Her er en smule læsestof for dem der har brug for lidt at læse lidt mere om SilverLight

About Microsoft Silverlight
Getting Data Into Silverlight Silverlight.NET
Basic Questions on Silverlight Technology - The Code Project
Build your first Silverlight web application

Navigation Framework in Silverlight 4 Manas Patnaik 

Side med fint lille skema, der sammenligner WCF med de andre MS teknologier
http://www.c-sharpcorner.com/uploadfile/SunilBabuYLV/wcf-programming-for-beginners/
Viser også et par forklarende figurer, samt det traditionelle regne eksempel

12:30 Præsentation fra virksomhed vedr. juleprojekt
- 14:00
Torsdag  08:30 - WEB - Opsamling på teori/begreber vedr. webservice (wcf)


Gennemgang af løsning på valutaopgave del 1-6
Tilhørende C# kode:
- Vs_ValutaSolution_V01_20121206.zip
- Vs_ValutaSolution_V02_20121206.zip
- Vs_ValutaSolution_V04_20121206.zip
- Vs_ValutaSolution_V05b_RettelseForSession_20121206.zip
- Vs_ValutaSolution_V06_20121206.zip
 

 
- 14:00 Afslutning af evt. udestående afleveringsopgaver
 
Fredag    Juleprojekt  
     

 
Afleveringsopgaver (obligatoriske) denne uge: ingen aflevering, men masser af øvelser også efter egne ønsker med web-services og web-gui som du selv tjekker og som jeg selvfølgelig også kan give feedback på

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