Windows Communication Foundation: differenze tra le versioni

Contenuto cancellato Contenuto aggiunto
Riga 10:
L'Address è l'indirizzo al quale il servizio risponde. L'indirizzo è composto da un [[URI]], una "Identity" ed una lista di "Header". In fase di definizione di un Address, l'informazione principale è l'URI, che corrisponde all'indirizzo fisico del servizio. Header e Identity sono informazioni che invece sono necessarie solo in casi particolari. Ad esempio quando ci sono più EndPoint, può essere utile avere diversi Header a seconda dell'Endpoint che il client utilizza. In parole semplici si può definire l'address come il DOVE.
 
== Cos’è il bindingBinding ==
Gran parte della magiasoluzione dietroproposta da WCF sta nei Bindingsconcetto di Binding. Infatti se ci si può occupare del codice senza preoccuparsi dell'infrastruttura di trasporto lo si deve soprattutto a questa ''[[feature]]''. I BindingsBinding si occupano di quello che avviene tra il momento in cui il servizio spedisce logicamente il messaggio ed il momento in cui viene fisicamente messotrasmesso in rete. In questo lasso di tempo vengono eseguiti numerosi passi che seguono una precisa ''[[pipeline]]'' di cui i bindingsbinding sono responsabili.
Durante l'esecuzione della pipeline il messaggio deve attraversare due layerlivelli: il primo si occupa dei Behaviours''[[Behaviour]]'' (comportamenti), ovvero delle trasformazioni che deve subire un messaggio, il secondo si occupa dei ChannelsCanali (detti ''Channel''), ovvero dell'instradamento verso il canale fisico di trasporto. Nel primo layerlivello ci si occupa della conversione dei dati dal formato 'codice' al formato messaggio; ad esempio, vengono trasformate le informazioni da una classe al formato xml[[XML]] di un messaggio [[SOAP]]. In aggiunta i Behaviours si occupano anche della sicurezza, del criptaggio delle informazioni e di tutte le feature relative ai dati. Durante la seconda fase il messaggio viene messo sul canale di trasporto secondo quanto specificato in fase di configurazione. Quindi è in questa fase che si istanzia il canale (HTTP, HTTPS, MSMQ, TCP) su cui viaggeranno le informazioni. Poiché a livello di protocollo si possono controllare alcuni dettagli, in questo layer si possono aggiungere informazioni sulla modalità di trasmissione, protetta o meno, oppure sul Reliable Messaging. Come detto in precedenza, questo processo avviene attraversando una pipeline.
Seguendo lo stesso concetto della pipeline di asp.net, possiamo vedere tutte le opzioni dette finora (protocollo, formattazione, ecc) come moduli da inserire nel flusso di elaborazione del messaggio.
Poiché la gestione dei Bindings può essere interamente gestita in fase di configurazione, si può intuire come semplicemente cambiando poche voci nel config si può passare dalla pubblicazione in modalità WebService su HTTPS criptato con un certificato digitale, ad un formato su TCP con ReliableMessaging senza dover intaccare il codice. Se si volesse dare una parola chiave ai bindings questa sarebbe COME.
 
== Cosa sono i Contracts ==
I Contracts rappresentano l'interfaccia software, ovvero le API, che il nostro servizio pubblica. Poiché esistono diversi tipi di contratti e l'argomento è molto vasto è giusto creare una sezione a parte. Si può comunque dire che i Contracts siano il COSA.