Devo ammettere che è frustrante scoprire ogni giorno nuove limitazioni del .NET Compact Framework. Capisco bene che il .NET Compact Framework può comprendere solo una minima parte delle classi e delle feature della versione Full, per una lunga serie di motivi che tutti conosciamo bene. Ma nonostante questo, quando riesco a fare una cosa con il .NET Framework e, cercando di applicarla alla versione Compact, mi accorgo che non è supportata, per un istante rimango interdetto... Di solito la mia esclamazione è la seguente: "Eh no, non è supportato neanche questo" .
In ordine di tempo, l'ultima mia scoperta riguarda l'Asynchronous Programming Model. L'ho sempre usato senza problemi con il .NET Framework; stamattina mi serviva applicare lo stesso pattern ad un progetto per Compact Framework, ma con mio dispiacere quando ho provato ad eseguire il codice ho ottenuto una bella NotSupportedException in corrispondenza del metodo BeginInvoke. Una rapida ricerca su Google e ho trovato questa spiegazione: AsyncDelegates are supported only in the few scenarios in the current version of CF: Sockets and Async. calls to WebServices. Infatti, fino ad oggi avevo utilizzato l'APM solo per i Web Service, quindi non avevo mai notato questa limitazione!