Sviluppare applicazioni
distribuite con WCF, Windows
Phone 7 e Silverlight
Fabio Cozzolino
Vito Arconzo
Chi Sono
• Software Architect and Developer in
CompuGROUP Medical Italia
• Microsoft Connected System
Developer MVP
• Presidente di DotNetSide
• Contatti
– [email protected]
– dotnetside.org/blogs/fabio
– twitter.com/fabiocozzolino
Chi E’
•
•
•
•
Senior .NET Developer & Consultant
Microsoft MVP Client Application
Vice-Presidente (operaio) DotNetSide
Contatti
– [email protected]
– dotnetside.org/blogs/vito
– twitter.com/vitoarconzo
Agenda
• Sviluppare applicazioni distribuite
• Applicazione Reale «Bookshelf»
• Creazione dei servizi
– WCF
• Sviluppo dei clients
– Silverlight
– Windows Phone 7
Architetture Distribuite
Windows Communication
Foundation
• E’ il framework proposto da Microsoft
per lo sviluppo di servizi
– Service-Oriented Architecture
– REST
• Estremamente semplice da utilizzare
• Potenzialità estreme
• Flessibilità
Address, Binding, Contract
Behaviours
Messaggio
C
B
A
Consumer
Binding
(come)
B
C
A
B
C
A
B
C
Provider
Contract
(cosa)
EndPoint
Address
(dove)
A
Address
• Identifica l’indirizzo del servizio
specificando:
– URL
• http://www.mysite.com/myservice.svc
• net.tcp://localhost:10101/myservice.svc
•…
– Headers (opzionale)
• E’ un’istanza di EndpointAddress
Binding
• COME comunichiamo con il servizio
– il protocollo utilizzato (http, tcp, msmq, etc..)
– le modalità di formattazione del messaggio
(encoding)
– le impostazioni di sicurezza (ws-security)
– gli eventuali standard da utilizzare (ws-trust,
ws-reliablemessaging, ws-atomic
transaction,SOAP)
– Ma anche sessioni e transazioni
• Esistono binding predefiniti ma possiamo
crearne anche di personalizzati
Contract
• Identifica le informazioni scambiate dal
servizio
• Esistono tre tipi di contratto:
– Service contract (WSDL)
– Message contract (SOAP)
– Data contract (Xml Schema)
Behaviors
• Servizi infrastrutturali che modellano il
comportamento del servizio
• Attivabili nel codice e dal .config
– Utile per le operazioni più delicate (sessioni,
transazioni, instancing, identity)
– Per le politiche da adottare nello scambio dei
messaggi (credenziali, throttling, auditing,
serializzazione, affidabilità, ecc…)
• Possiamo creare behavior personalizzati:
– Implementando le interfacce
System.ServiceModel.IServiceBehavior
– System.ServiceModel.IEndpointBehavior
– System.ServiceModel.IContractBehavior
– System.ServiceModel.IOperationBehavior
WCF Hosting
• Self-hosting
– Qualsiasi altra applicazione
(Console,WinForms, etc..)
– Posso utilizzare tutti i protocolli previsti da
WCF
• Internet Information Services
– IIS 6 solo http
– IIS 7 con Windows Activation Services:
• net.tcp, net.msmq, etc...
DEMO
BOOKSHELF SERVICES
DOMANDE?
Scarica

Web Platform Installer