DM082 - 3. semester       til andre ugeplaner

Ugeplan for Softwarearkitektur og Distribuerede Programmer

Tema: Webservices og alm. web programmer  - Gå til uge: 45, 46

Sidst ændret: 2009.11.13

 
Uge 45
Dag Tidspunkt Emne Litteratur / Opgaver
Mandag  08:30 - 11:50  Introduktion til brug af webservices

Remote Facade og DTO mønstere

Webservice - egenudviklede

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

  Opgaver - brug af eksisterende webservices:
- Afprøv service til at regne
- Hent alle personer i et bestemt postområde  (Der kan anvendes % for "joker")
- Hent alle postdistrikter med et bestemt bynavn (Der kan anvendes % for "joker")

Opgave: Ws01 - WebService Valuta

http://www.webservicedemo.bjbu.dk/  indeholder 3 services, der kan afprøves tilgang til

 


 

12:30 - 14:30 (reserveret CDS - standard server projekt)  
Tirsdag  08:30 - 11:50  Webservices med state (session) og fællesdata Eksempel med brug af  Application_og_Session
Eksempel på brug af Global.asax
  Opgave: Ws01 - WebService Valuta
Opgave: Ws02 - VareFacade som webservice

 
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Onsdag  08:30 - 11:50  Opgaveløsning med lærerstøtte (Bjarne)
Udarbejd webservices (Ws01 + Ws02) og afprøv med consol / windows form

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

Ws01 - WebService Valuta
Ws02 - VareFacade som webservice

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

     
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Torsdag  08:30 - 11:50  Opgaveløsning med lærerstøtte (Bjørk)
Udarbejd webservices (Ws01 + Ws02) og afprøv med consol / windows form

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

Ws01 - WebService Valuta
Ws02 - VareFacade som webservice

Flere webservices: http://www.webservicex.net/WCF/default.aspx
Gå evt. selv på jagt på Google eller Microsoft Live Search efter mere info / tilgænglelige Services

     
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Fredag  08:30 - 11:50  Webservices fortsat
Flere mønstre - programmering mod database

Flere mønstre
- Service layer
- Transaction scripting
- evt. TableGateway
- Optimistic offline lock

Se relevante mønstre fra Fowler

WebServicePostPerson - med database

Enkelt Console-eksempel på optimistic offline lock

  Opsamling på ADO.net herunder brug af factory og configurationsfiler,
suppleret med brug af database transaktioner
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

  Hvis der herefter er overskud til at se på / diskutere flere generelt relevante mønstre i forbindelse med databaseprogrammering, kan vi se på følgende:

Mønstre
- Transaction scripting og  Domain model (og TableModule)
- Table Gateway, Row Data Gateway og Datamapper
- Pessimistic / Optimistic offline lock
- Identity map, Lazy load

Mere beskrivelse af relevante mønstre: se Fowler

Eksempel på Domain Model med Active Record og Table Gateway som datamapper, interface som facade, optimistic ofline lock, laizy load og dictionary som registry/cache
- ForeningSolution_V09_Database_Cache_OptimisticOfflineLock
Eksempel på Domain Model med Active Record og Table Gateway som datamapper
- Multisupport klasserne
- Multisupport kernen Vs2005 solution

Supplerende eksempler fra Peter Kjærsgaard:
- Bud på brug af transaction script og row data gateway
- Bud på brug af transaction script og row data gateway og optimistic offlinelock
- Bud på brug af domain model og active record

  Opgave: Ws03 - VareFacade som webservice - med database og transcation scripting
Afleveringsopgaver (obligatoriske) denne uge: Opgave WS01 og WS02 (WS03 forventes kun opstartet fredag)
(*) Core C# and .NET, Stephen C. Perry - se BlackBoard
(**) .Net Application Development with C#..., Hanspeter Mössenböck - se BlackBoard
(***) C# To the point -.., Hanspeter Mössenböck -   - se BlackBoard
 
 
 
Uge 46
Dag Tidspunkt Emne Litteratur / Opgaver
Mandag  08:30 - 11:50  Introduktion til HTML (og statiske websider)
- præsentation på klient
Eksempler og en mulig opgave

Supplerende materiale fra w3school om HTML
  Introduktion til javascript (funktionalitet afvikles på klient)
- herunder en smule om idé bag AJAX
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

  Intro til ASP.NET webpages (gui) med VS2008 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
12:30 - 14:30 (reserveret CDS - standard server projekt)
Tirsdag  08:30 - 11:50  WEB-pages (gui) programmering

Pladsering og kommunikation af data til brug i dialoger
- Viewstate
- Session
- Application
- Cookies
- URL-parametre

Kopieret materiale - se detaljer i BlackBoard

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

Eksempel på brug af web datagrid

  Validering (klient versus server side)
Indbyggede kontroller (kod C# og få resultat som javacript i html til afvikling på klient)

 

Opgave(r) aftales på klassen

Slides om ValidationControls m.m.

Underliggende detaljer:
Slides om ASP.NET arkitekturen med oversigt over kontroller (Olle Brüggert)
Slides om ASP.NET kodeafviklingen (Joe Hummel & Niels Otto Knudsen)
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Onsdag  08:30 - 11:50  WEB (gui) programmering - detaljer følger
Opgaveløsning med lærerstøtte (Bjarne)
 
     
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Torsdag  08:30 - 11:50  WEB (gui) programmering - detaljer følger
Opgaveløsning med lærerstøtte (Bjørk)
 
     
12:30 - 14:30 (reserveret CDS - standard server projekt)  
Fredag  08:30 - 11:50  WEB (gui) programmering - afsluttes
Vi samler op og vi se på lidt flere elementer som fx. brug af DataGridView op med database med de indbyggede datamapper komponenter (kod mod database med stort set kun træk og slip og lidt afkrydsninger - wizard)
Video om brug af DataGridView til win-forms - dele ligner den til web
Underliggende detaljer om ASP.NET:
Slides om ASP.NET arkitekturen med oversigt over kontroller (Olle Brüggert)
Slides om ASP.NET kodeafviklingen (Joe Hummel & Niels Otto Knudsen)
     
     
Afleveringsopgaver (obligatoriske) denne uge: Opgave  WS03 (helst mandag) idet der også vil komme en lidt større "WEB-GUI" opgave (kunne være WS04 - men det drøfter vi mandag og aftaler hvilken - du har måske selv en god idé)
(*) Core C# and .NET, Stephen C. Perry - se BlackBoard
(**) .Net Application Development with C#..., Hanspeter Mössenböck - se BlackBoard
(***) C# To the point -.., Hanspeter Mössenböck -   - se BlackBoard

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

Modeller der kan bruges som udgangspunkt til at lave web-program til

Eksempel
Eksempel
Eksempel med model og brugergrænseflade (supermarkedsmodel) - MaxiBio
Eksemplet udvidet med interface og opdelt i flere projekter/library
Eksempel Eksempel på modelkomponent med interfaces opdelt i flere library - Powerteknik
Eksempel Eksempel på modelkomponent med interfaces opdelt i flere library - Forening
Eksempel Eksempel på modelkomponent med interfaces opdelt i flere library - Forening - med database
Eksempel Eksempel på modelkomponent med interfaces opdelt i flere library - Forening -med database og cache