Prendo spunto da questo post di Pietro per puntualizzare alcuni dettagli realtivi all'opzione multitargeting di Visual Studio 2008.
Sebbene sia stato fatto il massimo sforzo per mantenere la massima compatibilità tra le varie versioni 2.0/3.0/3.5 del .NET framework in realtà qualche 'piccola' modifica è stata introdotta quindi non è detto che la vostra applicazione funzioni correttamente su macchine che hanno una configurazione diversa dalla vostra.
Un elenco delle API modificate è elencato qui e notate che ci sono parecchie voci "Removed".
Non a caso nella documentazione MSDN alla voce Version Information sono apparse delle voci aggiuntive tipo: 2.0 SP1, 3.0 SP1
Quello che più mi spaventa è il fatto che, almeno inizialmente, molti utilizzeranno Visual Studio 2008 sfruttando l'opzione multitargenting per sviluppare applicazioni compatibili col Fx 2.0 rischiando involontariamente di usare features incluse in questi fantomatici service packs.
Ad esempio, creando con Visual Studio 2008 un applicazione console e specificando come Fx Target il framework 2.0 questo esempio funziona correttamente:
class Program
{
static void Main(string[] args)
{
GC.Collect(0, GCCollectionMode.Default);
Console.WriteLine("Press any key...");
Console.ReadLine();
}
}
ma non funziona se lo eseguite su una macchina con Vista (e quindi il Fx 3.0 installato) in quanto mancano le patch che vengono applicate con l'installazione del framework 3.5.
Developer avvisato, Developer ...