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...
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
- WCF e la sicurezza by design, il 2 maggio 2007 alle 17:38