Elementi obsoleti in .NET Framework
Nel tempo, .NET Framework cambia. In ogni nuova versione vengono aggiunti nuovi tipi e membri dei tipi che forniscono nuove funzionalità. Anche i tipi esistenti e i relativi membri cambiano nel tempo. Alcuni tipi, ad esempio, perdono di importanza in quanto la tecnologia che supportano viene sostituita da una nuova tecnologia, e alcuni metodi vengono sostituiti da altri più nuovi che sono più adatti o più completi in termini di funzionalità.
Sia in .NET Framework sia in Common Language Runtime si cerca di supportare la compatibilità con le versioni precedenti, grazie alla quale le applicazioni sviluppate con una versione di .NET Framework possono essere eseguite nella versione di .NET Framework successiva. Ciò rende difficile la semplice rimozione di un tipo o di un membro del tipo. Per ovviare a questa difficoltà, si indica che un tipo o un membro del tipo non deve più essere utilizzato contrassegnandolo come obsoleto o deprecato. La deprecazione di un tipo o di un membro ne implica il contrassegno, in modo che gli sviluppatori sappiano che verrà rimosso e abbiano il tempo di rispondere a tale rimozione. Tuttavia, il codice esistente che utilizza il tipo o il membro continua a essere eseguito nella nuova versione di .NET Framework.
Nota |
---|
Se applicati ai tipi e ai membri di .NET Framework, i termini obsoleto e deprecato hanno lo stesso significato. |
Attributo ObsoleteAttribute
In .NET Framework, per indicare che un tipo o un membro del tipo è obsoleto, lo si contrassegna con l'attributo ObsoleteAttribute. L'applicazione dell'attributo a un tipo o un membro indica che quel tipo o membro sarà rimosso nelle versioni future di .NET Framework, senza causare interruzioni nel codice compilato che lo utilizza.
Oltre a indicare che un tipo o un membro del tipo è obsoleto, ObsoleteAttribute definisce il modo in cui il compilatore gestisce il codice sorgente che include quel tipo o membro. Il compilatore può compilare il codice generando però un messaggio di avviso, oppure può considerare l'utilizzo del tipo o membro come un errore. Nel primo caso, il codice può essere compilato correttamente, ma un messaggio di avviso indica che il tipo o membro è obsoleto. Nel secondo caso, la compilazione non riesce.
Anche se la compilazione produce un errore anziché un messaggio di avviso, ObsoleteAttribute non influisce sul comportamento in fase di esecuzione. In altre parole, le applicazioni che utilizzano il tipo o membro e che sono state compilate correttamente verranno sempre eseguite correttamente. Soltanto il tentativo di ricompilare un'applicazione che utilizza il tipo o membro avrà esito negativo.
Come gestire tipi e membri obsoleti
Quando si aggiorna e si ricompila codice esistente, l'utilizzo di un tipo o membro obsoleto che genera un avviso del compilatore nell'applicazione è perfettamente accettabile. Tuttavia, è consigliabile rivedere il messaggio di avviso del compilatore per stabilire se sia opportuno modificare il codice dell'applicazione. Se il messaggio non indica un'alternativa adatta, adottare una delle seguenti soluzioni:
Modificare il codice rimuovendo l'utilizzo del tipo o membro, se possibile.
- oppure -
Rivedere la documentazione di quest'area tecnologica per stabilire come rispondere a questa deprecazione.
Si può scegliere di non ricompilare il codice esistente sulla base di una versione successiva di .NET Framework. Per contro, è possibile specificare la versione di .NET Framework con la quale viene eseguito il codice compilato esistente. Si supponga ad esempio di avere un'applicazione denominata app1.exe, compilata per .NET Framework 3.5, e di voler eseguire l'applicazione in .NET Framework 4. La procedura da adottare è la seguente:
Creare un file di configurazione per l'eseguibile principale e denominarlo appName.exe.config, dove appName è il nome dell'eseguibile dell'applicazione. Nel caso dell'applicazione denominata app1.exe dell'esempio, il nome del file di configurazione creato sarebbe app1.exe.config.
Aggiungere il codice seguente al file di configurazione.
<configuration> <startup> <supportedRuntime version="v4.0" /> </startup> </configuration>
Nella tabella seguente sono elencati i valori di stringa che è possibile assegnare all'attributo version per scegliere come destinazione una versione di .NET Framework specifica.
Versione di .NET Framework |
Stringa version |
4 |
v4.0 |
3.5 |
v2.0.50727 |
2.0 |
v2.0.50727 |
1.1 |
v1.1.4322 |
1.0 |
v1.0.3705 |
Elenchi obsoleti per .NET Framework 4
Elenchi obsoleti per le versioni precedenti
Pagina relativa all'elenco obsoleti .NET Framework 3.5
Pagina relativa all'elenco obsoleti .NET Framework 2.0