fare clic per modificare lo stile del titolo fare clic per modificare stili del testo dello schema...
TRANSCRIPT
![Page 1: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/1.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
WINDOWS COMMUNICATION
FOUNDATIONFabio Cozzolino
![Page 2: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/2.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Agenda
• Overview– SOA– L’ABC di WCF– I Behaviors
• WCF 4.0• REST– SOA vs REST
• WCF Tips & Tricks
![Page 3: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/3.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
SOA Tenets• Boundaries are Explicit• Services are Autonomous• Services Shares Schema and Contracts, not Classes or Types• Compatibility is Policy-Based
![Page 4: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/4.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Cos’è WCF?• Un framework unificato per lo sviluppo di applicazioni distribuite su piattaforma Windows• Rappresenta come Microsoft pensa SOA (Service-Oriented Architecture)• … ma non solo
![Page 5: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/5.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Caratteristiche di WCF• Comunicazioni basate sul concetto di messaggio• Interoperabilità• Indipendenza dal protocollo di trasporto e dalla formattazione del messaggio• Indipendenza dall’hosting• Servizi infrastrutturali pluggabili (sicurezza, transazioni, ecc…)• E’ un framework con un’architettura altamente estendibile
![Page 6: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/6.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Overview di WCF: L’ABC
• Un servizio WCF si basa su:– Un Address: DOVE– Un Binding: COME– Un Contract: COSA
• L’insieme costituisce l’Endpoint del servizio
![Page 7: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/7.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
EndPoint
Address, Binding, Contract
ConsumerConsumer ProviderProvider
Contract(cosa)
Contract(cosa)
Binding(come)
Binding(come)
Address(dove)
Address(dove)
CC BB AA AA BB CC
Messaggio
AA BB CC
AA BB CC
Behaviours
![Page 8: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/8.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
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
![Page 9: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/9.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
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
![Page 10: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/10.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Contract• Identifica le informazioni scambiate dal servizio• Esistono tre tipi di contratto:– Service contract (WSDL)– Message contract (SOAP) – Data contract (Xml Schema)
![Page 11: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/11.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
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
![Page 12: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/12.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
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...
![Page 13: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/13.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
DEMOImplementazione di un servizio in WCF
![Page 14: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/14.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Windows Communication Foundation 4.0
• Configuration-free services• Service Discovery with WS-Discovery• Routing Service• Event Tracing for Windows
![Page 15: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/15.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Endpoint Configuration in 3.x
vdir2
Web.config
Echo.svc
A B C
Service
http://host
vdir2
vdir1
![Page 16: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/16.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Default Endpoints
Echo.svc
A B C
Service
Scheme Binding
http:// BasicHttpBinding
… …
Protocol Mapping
ServiceHost.AddDefaultEndpoints()
vdir2
Echo.svc
http://host
vdir2
vdir1
![Page 17: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/17.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livelloWeb.
config
Default Bindings
A B C
Service
vdir2
Echo.svc
http://host
vdir2
vdir1
<system.serviceModel> <bindings> <basicHttpBinding> <binding name="" maxBufferSize="2147483647" maxReceivedMessageSize="2147483647"/> </basicHttpBinding> </bindings></system.serviceModel>
Gli endpoints di tipo BasicHttpBinding utilizzano la configurazione dal default binding che recuperano nella gerarchia dei file di configurazione
![Page 18: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/18.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Web.config
Default Behaviors
A B C Bv
Service
vdir2
Echo.svc
http://host
vdir2
vdir1
<system.serviceModel> <behaviors> <serviceBehaviors> <behavior> <serviceThrottling maxConcurrentCalls="32"/> </behavior> </serviceBehaviors> </behaviors></system.serviceModel>
Un servizio o un endpoint ottengono il behavior di default recuperandolo dalla gerarchia dei file di configurazione
Web.config
Otteniamo un merge dei behaviour ereditati con i behaviour del config corrente
Bv
<system.serviceModel> <behaviors> <serviceBehaviors> <behavior> <serviceMetadata httpGetEnabled="true"/> </behavior> </serviceBehaviors> </behaviors></system.serviceModel>
![Page 19: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/19.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
ROUTING SERVICE IN WCF 4.0
![Page 20: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/20.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Routing Service
• Dispatching dei messaggi basato su filtri• Protocol and security bridging• Mapping delle eccezioni• Ho a disposizione un set predefinito di filtri:
Filter On MessageFilter
Action ActionMessageFilter
Address header AddressMessageFilter
Address header – longest prefix matching AddressPrefixMessageFilter
Endpoint Name EndpointNameMessageFilter
No Filter – matches everything MatchAllMessageFilter
Logical And of two filters StrictAndMessageFilter
XPath expression XPathMessageFilter
Custom Custom
![Page 21: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/21.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Message Routing
Client
HospitalService
RoutingService
Lab Service
Action = http://healthcare/labservice
Action = http://healthcare/hospitalservice
![Page 22: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/22.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Protocol Bridging
Client ServiceRoutingService
BasicHttp Net.TcpSOAP 1.1 SOAP 1.2
![Page 23: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/23.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Security
Client ServiceRoutingService
Message sent usingClient Identity
Message sent usingRouting Service IdentityMessage sent usingClient Identity
Impersonation using WindowsIdentityToken
![Page 24: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/24.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Error Handling
Client
BackupLab
Service
RoutingService
LabService
MessageFilter Endpoint AlternateEndpoints
action == http://healthcare/LabService
LabService BackupLabService
![Page 25: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/25.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
WS-DISCOVERY IN WCF 4.0
![Page 26: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/26.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Discovery
• Consente la pubblicazione di un endpoint di un servizio e la ricerca utilizzando criteri ben definiti– Trova servizi disponibili– Riduce la configurazione– Semplice modifica della location– Applicazioni dinamiche
• WS-Discovery – e’ uno standard interoperabile per la definizione del protocollo– Ad-hoc Discovery– Managed Discovery
![Page 27: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/27.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Ad-hoc Discovery
Hello
Hello
Chat App:Steve
Chat App:Ed
Chat App:Jurgen
Hello
Steve Online
Steve Online
![Page 28: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/28.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Ad-hoc Discovery
Chat App:Steve
Chat App:Ed
Chat App:Jurgen Probe
Probe
Probe ProbeMatch
ProbeMatch
![Page 29: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/29.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Ad-hoc Discovery
Bye
Bye
Chat App:Steve
Chat App:Ed
Chat App:Jurgen
Bye
Steve Offline
Steve Offline
![Page 30: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/30.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Managed Discovery
Probe
ProbeHello
Probe
Hello
ProbeMatch
Jurgen
Chat App:Jurgen
Chat App:Steve
Proxy Available
Discovery Proxy
![Page 31: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/31.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Discovery Message Parts
• Types – Lista di xs:QName – Contratti richiesti dal client o comunque supportati dal servizio destinatario
• Scopes– Lista di xs:anyURI– Scopes richiesti dal client o previsti dal servizio destinatario
• EndpointReference– wsa:EndpointReference– EndpointReference del servizio destinatario
![Page 32: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/32.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
DEMOWCF 4.0
![Page 33: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/33.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
What is REST?
• Representional State Transfer• E’ principalmente uno stile architetturale, non una
specifica• Importanza alla risorsa (Content+Capabilities)• Utilizzo di tecnologie esistenti:
– HTTP• Http Methods e Status Codes = Uniform Interface
– Domain-neutral data-oriented formats• XML, JSON, Atom/Atom Publishing
• Le risorse vengono identificate attraverso l’utilizzo di URI– Esempio:
• http://dotnetside.org/users/fabio• http://dotnetside.org/users
![Page 34: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/34.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
HTTP Methods
Method Descrizione
GET • Recupera una risorsa• E’ in sola lettura• Cacheable
PUT • Aggiorna una risorsa• Utilizzato anche per creare le risorse se il client ne conosce l’indirizzo remoto• Idempotent
DELETE • Cancella la risorsa specificata• Idempotent
POST • Crea una nuova risorsa• Unsafe
![Page 35: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/35.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
REST in WCF: WebGet e WebInvoke
• Due nuovi attributi per definire le operation di WCF• Definizione del metodo HTTP da utilizzare– WebGet permette operazioni in sola lettura– WebInvoke consente di modificare lo stato delle nostre
risorse• Definizione della URI collegata alla operation:
UriTemplate• Definizione del formato della richiesta e della
risposta– Attualmente supporta XML e JSON
![Page 36: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/36.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
REST in WCF: UriTemplate
• Consente di definire la struttura dell’URI e dei parametri
• Nell’URI definiamo anche dei placeholder che rappresentano i parametri del nostro metodo:
![Page 37: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/37.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
REST in WCF: WebHttpBinding
• Nuovo binding specifico per REST• Supporta esclusivamente il protocollo HTTP• Sicurezza solo a livello di trasporto (HTTPS)• Supporto per i seguenti formati:– XML– JSON– Binary
![Page 38: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/38.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
REST in WCF: WebServiceHost
• Estende il ServiceHost• Aggiunge le funzionalità necessarie per
l’esecuzione di servizi REST– Configurazione automatica del WebHttpBinding e
del WebHttpBehavior
• WebOperationContext– Accesso al contesto HTTP
![Page 39: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/39.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Improvements in WCF 4.0
• Gestione della cache con AspNetCacheProfile
• Generazione della pagina di Help
![Page 40: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/40.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
DEMODeveloping REST services with WCF
![Page 41: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/41.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
GRAZIE
![Page 42: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/42.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
Un grazie di cuore a tutti gli sponsor!
![Page 43: Fare clic per modificare lo stile del titolo Fare clic per modificare stili del testo dello schema – Secondo livello Terzo livello – Quarto livello » Quinto](https://reader038.vdocuments.pub/reader038/viewer/2022110305/5542eb5b497959361e8c7fbe/html5/thumbnails/43.jpg)
Fare clic per modificare lo stile del titolo
• Fare clic per modificare stili del testo dello schema– Secondo livello• Terzo livello
– Quarto livello» Quinto livello
GRAZIE PER L’ATTENZIONE
La vostra opinione per noi è fondamentale: compilate
il modulo di feedback!