C'è una bella differenza tra il viaggio che facevo fino alla settimana scorsa per raggiungere il mio posto di lavoro e come invece lo faccio oggi.
Prima uscivo di casa alle 7:30 circa, raggiungevo San Donato Milanese (linea gialla della metro) o Famagosta (linea verde della metro) intorno alle 8:10. Poi circa una ventina di fermate di metro (tempo approssimativo 45 minuti). Morale: arrivavo al lavoro intorno alle 9, ritardi permettendo.
Adesso esco di casa alle 7:30 circa (come prima), raggiungo Famagosta alle 8:10, faccio una sola fermata (circa 2 minuti di viaggio) per scendere a Romolo, da qui prendo un pullman (linea 91) che in quella zona di Milano viaggia nelle corsie preferenziali, mi faccio 10 minuti di viaggio e praticamente arrivo in ufficio poco prima delle 8:30. Fantastico, non c'è che dire.
Ma c'è anche l'altra faccia della medaglia: meno tempo per leggere libri e/o quotidiani e per studiare. Vabbè, ci adatteremo.
Anche se fate fatica a trovare qualcosa per manipolare i files zip con il Compact Framework, sappiate che qualcosa c'è.
Innanzitutto trovate le Xceed Zip for .NET CF, ma sono a pagamento, e costano la bellezza di 499,95 dollari. L'elenco delle caratteristiche è certamente interessante, ma se avete bisogno di qualcosa di più semplice (e gratuito) potete ricorrere alla libreria SharpZipLib. Essa è disponibile sotto la licenza GPL.
L'ho provata in questi giorni per applicarla al progetto su cui sto lavorando. Siccome ho avuto qualche problemino, voglio segnalarlo anche a voi per evitare di perdere troppo tempo come è capitato a me. Innanzitutto, mentre sul PC Desktop l'assembly SharpZipLib deve essere installato nella GAC, questo ovviamente non vale per i Pocket PC: è sufficiente che la dll sia nella stessa directory dell'applicazione per poterla utilizzare.
L'altra questione è un po' più pesante, e solo grazie all'aiuto del buon Marco Minerva sono arrivato alla soluzione in tempi rapidi, dato che lui ha incontrato il mio stesso problema più o meno un mesetto fa. Se utilizzate esattamente lo stesso assembly che scaricate dal sito, al momento di comprimere/decomprimere utilizzando la classe FastZip il codice solleverà un'eccezione, che adesso purtroppo non riesco ad indicarvi in modo preciso: dovrebbe essere qualcosa del tipo MethodNotFoundException. Questo è dovuto al fatto che l'assembly di SharpZipLib tenta di accedere alla proprietà CurrentCulture esposta da System.Threading.Thread.CurrentThread. La proprietà CurrentCulture esiste nel .NET Framework, ma non nella sua versione per palmari. SharpZipLib ha bisogno di accedere a questa proprietà per poter formattare a video le date in modo opportuno in base alla vostra Culture. Se non avete bisogno di queste informazioni, ad esempio se volete semplicemente prendere uno zip e decomprimerlo da qualche parte, potete fare quello che ha fatto il buon Marco, che ha esaminato il codice, lo ha ripulito e reso "funzionante" davvero su CF.