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...
Aggiungi un nuovo commento »»»
Per inserire un commento, devi registrarti alla nostra community.




Stampa
Download
10annidi.ASPItalia.com: iscriviti alla competizione e vinci fantastici premi ogni mese!