Uno dei più grossi problemi che ho incontrato nella conversione dell'applicativo che abbiamo in Calcium dalla versione 1.1 di .NET alla 2.0 è stato con l'invio e ricezione di testo criptato serializzato usando UnicodeEncoding.
C'è stato un cambio di funzionamento, o, meglio, un adeguamento alle specifiche Unicode, nella versione 2.0 del framework: ora i metodi GetByte (e GetString di conseguenza) non funzionano se la sequenza di byte non rappresenta un carattere ma è solo una serie di byte "messi in fila a caso".
Ho scritto un post più dettagliato a riguardo sul mio blog in inglese:
Your encryption algorithm may fail moving to .NET 2.0