Gestire lo stato o un dialogo via Web Service con un Pocket PC
Mi è stato chiesto l'altro giorno come gestire la "sessione" o più in generale lo stato tra più chiamate a Web Service con un device Pocket PC che dialoga con un Web Service ASMX.
Dal momento che il CookieContainer in .NET Compact Framework non c'è e dal momento che comunque gestire lo stato di un Web Service tramite cookie non è una buona regola, se proprio non possiamo rinunciare alla sessione/allo stato server-side (compromettendo un po' la scalabilità della soluzione che stiamo implementando) la risposta al problema è quella che da sempre indico (come ho spiegato anche nel mio libro) per gestire la sessione in generale, a prescindere dal fatto che si abbia un client Pocket PC o meno: usare un header di sessione/dialogo.
Sarebbe ancora meglio utilizzare WS-Addressing e/o WS-ReliableMessaging, come prevede Web Services Architecture, ma se l'implementazione non deve essere necessariamente interoperabile con il resto del mondo (Java, PHP, ecc.) ma deve solo rendere accessibile un servizio da remoto via HTTP con .NET su .NET (eventualmente Compact Framework).
Ecco un esempio di codice "ridotto all'osso" che mostra come fare, proprio con un cliente .NET CF.