次の方法で共有


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:

image_thumb9 

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