WPC (1/3) - WCF
Eccomi, ho appena finito le mie sessioni alla WPC
Un rapido riassunto e un po' di materiale. Nella sessione su Windows Communication Foundation (in breve WCF) ho affrontato un argomento un po' particolare, cioè come utilizzare Transazioni, Sessioni, Relaiable Session e Code.
Ma andiamo con ordine, mi sono accorto infatti che non tutti conoscevano le nozioni di base di questa fantastica tecnologia:-) Per cui chi vuol partire con WCF può anche leggersi questo mio post introduttivo in cui parlo di Address, Binding e Contract: in poche parlole l'ABC di WCF.
Ora che avete un'idea di cosa sia WCF, potete chiedervi: cosa serve in WCF per realizzare un'applicazione affidabile ? La risposta è semplice:
- Sessioni: in WCF una sessione è un po' come un "colloquio" tra un client ed un servizio in cui definisco in che modo quest'ultimo deve rispondere alle richieste del client. Potrei fare in modo che per ogni nuova richiesta del client venga creata una nuova istanza del servizio. Questa modalità di funzionalmento viene chiamata PerCall. Potrei volere che ogni richiesta da parte di un client ad un servizio venga mantenuta in un'unica sessione che sia in grado di mantenere lo stato tra una chiamata e la successiva: questa modalità è detta per Session. In ultimo potrei voler mantenere una sessione condivisa tra più client, che vedranno quindi un unico stato condiviso. Questa modalità è detta Single. Nelle slide trovate gli esempi.
- Reliable Session: WCF consente anche di utilizzare quella che viene definita come "Reliable Session", cioè un meccanismo basato sullo standard WS-ReliableMessaging che garantisce la consegna di messaggi in modo ordinato e senza duplicati. Il tutto semplicemente abilitando nel file di configurazione lo specifico elemento nel binding
- Transazioni: in WCF non poteva mancare certo il supporto alle transazioni. Si possono usare diversi attributi, che trovate negli esempi indicati nelle slide ed è inoltre possibile far fluire una transazione dal client al servizio, in modo che quest'ultimo faccia il commit o l'abort della transazione su richiesta o comportamento del client.
- Le code: in ultimo il supporto per MSMQ di WCF consente di rendere asincrona l'applicazione e di disaccopiare il funzionamento del client da quello del servizio, cioè se anche il servizio è giù il clienti è in grado di funzionare.
Il tutto (quasi) insieme:
Nelle slide trovate i link alla sezione della library MSDN in cui trovate approfonditi gli argomenti trattati ed i riferimenti agli esempi per ogni problematica affontata. Gli esempi che potete trovare sono veramente numerosi.
Spero la sessione sia stata utille
-Pietro
Comments
Anonymous
October 26, 2007
PingBack from http://msdnrss.thecoderblogs.com/2007/10/26/wpc-13-wcf/Anonymous
January 12, 2010
Buongiorno spiego brevemente il mio problema sto sviluppando un applicazione windows form in architettura a livelli. L applicazione interroga in remoto un db mysql utilizzando ADO EF.Inizialmente ho sviluppato tutta la logica di business lato client solamente inserendo all interno del web.config la stringa di connessione con l indirizzo del server in cui risiede il db.Mi sono accorto che risultava davvero molto lento allora ho deciso di utilizzare wcf per la logica di business Creando un layer con i DTO delle entities e uno COn i webservices. (E` corretto Utilizzare dei Web Services in una solution win forms?).Comunque dopo aver deployato i web service su server iis 7. Tutto sembra funzionare correttamente ma 10 richieste tutto si blocca. Per esempio ho una gridview con page index creato da me attraverso semplici button. Clikkando il button avanti la gridview viene popolata con una lista ritornata da un metodo esposto con WS Alla 10 pagina si blocca. I web services diventano lentissimi .Se qualcuno Riesce ad Aiutarmi mi farebbe un enorme favore Grazie