DM10x - 3. semester

Ugeplan for Softwarearkitektur og Distribuerede Programmer

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

Sidst ændret: 2011.12.25

 

Uge 45
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.

 

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 dagen på fronter:
(Du skal højreklikke og downloade for at afspille - hvis du går til note-mappen kan du afspille direkte)

 - SDP2011E - WebSolution_20111108.wmv

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

Torsdag  08:30 -  

 

WEB-pages (gui) programmering

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->kinde i browser
 

Demoer på klassen


 
- 14:00 Opgave: Afprøv forskellige Web-elementer  - fx. regnemasine eller andet simpelt uden egentlig model
Du skal afprøve at du han "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 på fronter:
(Du skal højreklikke og downloade for at afspille - hvis du går til note-mappen kan du afspille direkte)

- SDP2011E - vi_VsASP01_01.wmv  - Samme på  
 - SDP2011E - vi_VsASP01_02.wmv  - Samme på  

 - SDP2011E - Vi_PostbackOgState01.wmv - Samme på
 - SDP2011E - WebSolution_20111110_01.zip (solution til video)

 - SDP2011E - Vi_PostbackOgState02.wmv - Samme på
 - SDP2011E - WebSolution_20111110_02.zip (solution til video)
 

Fredag  08:30 -  10:00

 

Eksempler på brug af ListBox mfl og det specielle vedr. disse med WEB
Demoer på klassen
 

Videoer fra dagen på fronter:
(Du skal højreklikke og downloade for at afspille - hvis du går til note-mappen kan du afspille direkte)

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

 
Afleveringsopgaver (obligatoriske) denne uge: ingen aflevering, men masser af øvelser også efter egne ønsker med web-gui som du selv tjekker
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 -

 

ASP.NET fortsat
Vi skal se på ListBox, Grid m.m. herunder direkte kobling til database

Demoer på klassen

 
- 14:00
 
Videoer fra dagen på fronter:
(Du skal højreklikke og downloade for at afspille - hvis du går til note-mappen kan du afspille direkte)

 - 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

 

Torsdag  08:30 -  

 

Introduktion til webservice (i dag brug af)

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)
 

  Opgaver:
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 3 services, der kan afprøves tilgang til
- 14:00


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

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

 

Fredag  08:30 -  10:00

 

ASP.NET fortsat - se slides =>

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

Vi skal i dag se på simple services

 

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)

  Opgave:
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)
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 dagen på fronter:
(Du skal højreklikke og downloade for at afspille - hvis du går til note-mappen kan du afspille direkte)
WcfSlides_01.wmv  - Samme på
WcfSlides_02.wmv  - Samme på

Vi_WcfSolution_20111118.wmv  - Samme på
Vs_WcfSolution_20111118.zip

 

 
Afleveringsopgaver (obligatoriske) denne uge: ingen aflevering, men masser af øvelser også efter egne ønsker med web-services og web-gui som du selv tjekker
*) Core C# and .NET, Stephen C. Perry - se Fronter
(**) .Net Application Development with C#..., Hanspeter Mössenböck - se Fronter
(***) C# To the point -.., Hanspeter Mössenböck -   - se Fronter
 


 

 

Uge 47
Dag Tidspunkt Emne Litteratur / Opgaver
Tirsdag  08:30 - Webservice (WCF) fortsat

- webservice med kommunikation med dataobjekter

eksempler på klassen

Slides til webservice
Slides til WCF webservice
- 14:00 Opgave WCF-Valuta
 
Videoer fra dagen på fronter:
(Du skal højreklikke og downloade for at afspille - hvis du går til note-mappen kan du afspille direkte)

vi_Slides_Session_Service_og_Data_contract.wmv  - Samme på

Vi_WcfSolution_20111122.wmv  - Samme på
Vs_WcfSolution_20111122.zip
 

Torsdag  08:30 -   Webservice (WCF) fortsat

Flere mønstre - programmering mod database

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

 

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

Opgaver se torsdag

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

 
Videoer fra dagen på fronter:
(Du skal højreklikke og downloade for at afspille - hvis du går til note-mappen kan du afspille direkte)

20111125_Slides_Config_DB_Factory.wmv  - Samme på
20111125_Slides_StoredProcedure.wmv  - Samme på
20111125_VigtigtOm_WCFSession.wmv  - Samme på

 

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

 


 
Afleveringsopgaver (obligatoriske) denne uge: (WCF-Valuta)
*) Core C# and .NET, Stephen C. Perry - se Fronter
(**) .Net Application Development with C#..., Hanspeter Mössenböck - se Fronter
(***) C# To the point -.., Hanspeter Mössenböck -   - se Fronter
 


 

 

Uge 48
Dag Tidspunkt Emne Litteratur / Opgaver
Tirsdag  08:30 - Webservices fortsat

Vi vil se på hvordan man relativt let laver en eksisterende model om, så den kan bruges fra en webservice
 - vi tager udgangspunkt i VarekartotekModel_20111115_V05.zip som vi tidligere nåede frem til (tirsdag uge 46)

Vi vil desuden se på hvordan man laver asynkrone kald til sin webservice (udskudt til torsdag)
 

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
 

Slides til WCF webservice   (opdateret udgave)

 

- 14:00 Oplæg til et muligt mini projekt med webservice for de der er klar til lidt udfordring på webfronten
 
Videoer fra dagen på fronter:
(Du skal højreklikke og downloade for at afspille - hvis du går til note-mappen kan du afspille direkte)

vi_WCF_VarekartotekModel_20111129_V06.wmv  - Samme på
vs_WCF_VarekartotekModel_20111129_V06.zip (solution til video)

vi_WCF_VarekartotekModel_20111129_V07.wmv  - Samme på
vs_WCF_VarekartotekModel_20111129_V07.zip (solution til video)

vi_WCF_VarekartotekModel_20111129_V08.wmv  - Samme på
vs_WCF_VarekartotekModel_20111129_V08.zip (solution til video)
 

Torsdag  08:30 -  

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

Demoer og eksempler på klassen

Vi vil se på hvordan man laver asynkrone kald til sin webservice (udskudt fra tirsdag)
 

Opgaver se tirsdag

Du kan herefter udvide med en SilverLight klient, der nyttiggør nogle at webservice'ne (som kan erstatte dele eller hele grænsefladen fra en ASP.NET serverbaserer grænseflade / en windows grænseflade)

Home Silverlight.NET

Lidt http://bjoerks.net/klasser/SDP2011E_dm10x/Eksempler_og_noter/undation"> 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

- 14:00
 
Videoer fra dagen på fronter:
(Du skal højreklikke og downloade for at afspille - hvis du går til note-mappen kan du afspille direkte)

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)
 

Fredag  08:30 -  10:00 Primært forbeholdt opgaveløsning
Jeg vil evt. giver et par tips vedr. navigation mellem flere skærmbilleder på en SilverLight application
 
     

 
Afleveringsopgaver (obligatoriske) denne uge: Ingen nye  - Se uge 47
*) Core C# and .NET, Stephen C. Perry - se Fronter
(**) .Net Application Development with C#..., Hanspeter Mössenböck - se Fronter
(***) C# To the point -.., Hanspeter Mössenböck -   - se Fronter
 

 

Uge 49
Dag Tidspunkt Emne Litteratur / Opgaver
Tirsdag  08:30 - Primært forbeholdt opgaveløsning
Jeg vil evt. giver et par tips vedr. navigation mellem flere skærmbilleder på en SilverLight application (samme for WPF windows applikation)
Navigation Framework in Silverlight 4 Manas Patnaik
- 14:00

WpfApplicationDemo01.zip (solution)

 

Faldt over 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
 
Torsdag  08:30 -   Primært forbeholdt opgaveløsning
Opsamling på semesterets pensum
Evt. gennemgang af en løsning på dele af Valutaopgaven
 
- 14:00
 
Fredag  08:30 -  10:00 Opsamling på semesterets pensum

Sidste gode chance før jul for spørgsmål vedr. tidligere SDP opgaver

 
12:00 -  

wcfservicedemoSolution01_BasisCookiesSession_Surftown.zi

 

Links på ting der har være spørgsmål om ved Silverlight m.m.

Making a Service Available Across Domain Boundaries

 

 

Afleveringsopgaver (obligatoriske) denne uge: Ingen nye  - Se uge 47 - (samt selvfølgelig alle tidligere manglende afleveringer)
*) Core C# and .NET, Stephen C. Perry - se Fronter
(**) .Net Application Development with C#..., Hanspeter Mössenböck - se Fronter
(***) C# To the point -.., Hanspeter Mössenböck -   - se Fronter
 


 

Uge 50 -  Sleepware projekt sammen med 1. studieår - se plan i selvstændig rum


 

Uge 51 -  Sleepware projekt sammen med 1. studieår - se plan i selvstændig rum