Quest'oggi mi sono occupato dello sviluppo di un prototipo basato sulle WinForms. Credo di averlo fatto un'annetto fa..da allora solo ASP.NET e web services.

Il prototipo consiste in molte schede di parametrizzazione e per agevolare l'organizzazione del codice ho creato uno user control per ogni scheda. Per agevolare l'uso della memoria, invece, ho usato i puntatori deboli (WeakReference). In altre parole quando uso la form la creo in memoria, ma non la distruggo. In questo modo, quando la richiamerò l'avrò pronta all'uso. Ma dato che la memoria non è infinita e le schede sono tante, decido di usare una weak reference, in modo tale che se il garbage collector deve liberare la memoria libera le schede non in uso. Quando ne avrò bisogno non farò nientaltro che richiamare il mio puntatore debole e verificare se è vivo (IsAlive), se lo è printo via ed uso il controllo (evitanto la ricostruzione da 0), altrimenti lo ricostruisco.

In questo momento sto pensando ad altri usi ma data l'ora non me ne vengono in mente.