Controllare il flusso delle operazioni con WCF.

di Stefano Mostarda, in .NET 3.0,

Per definizione, una transazione è composta di piccoli passi. Ad esempio, un acquisto su un sito di ecommerce è composto di diversi passi quali l'immissione di articoli nel carrello, l'immissione dei dati di consegna e di fatturazione e la conferma finale. Tutti questi passi sono consecutivi ed hanno un preciso ordine.
Con WCF si ha la possibilità di stabilire un simil-ordine di esecuzione.

[OperationContract(IsInitiating=true, IsTerminating=false)]
string Inizio();

[OperationContract(IsInitiating=false, IsTerminating=false)]
void InserisciInCarrello();

[OperationContract(IsInitiating=false, IsTerminating=false)]
void inserisciDati();

[OperationContract(IsInitiating=false, IsTerminating=false)]
void Acquista();

[OperationContract(IsInitiating=false, IsTerminating=true)]
void Fine();

Come si vede dall'esempio, si può stabilire un metodo di inizio transazione ed un metodo di fine transazione, che devono essere invocati nell'ordine prestabilito, mentre purtroppo non abbiamo nulla a disposizione per l'ordine dei metodi intermedi. Non è tutto, ma è un inizio.

Ovviamente dall'inizio alla fine, il servizio deve mantenere in memoria i dati dell'utente, e questo è fattibile marcando il servizio anche come contenitore dati.

[ServiceContract(Session=SessionMode.Required)]
public interface IService

WCF... Se non ci fosse... boh...

Stay Tuned...

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Nella stessa categoria
I più letti del mese