Domanda

Esistono vantaggi nella compilazione per .NET Framework 3.5 anziché 2.0?

Ad esempio, minor consumo di memoria, avvio più rapido, prestazioni migliori...

Personalmente non credo, però forse mi è sfuggito qualcosa.

Modificare:Naturalmente ci sono più funzionalità nel framework 3.5, ma queste non sono il fulcro di questa domanda.

Modifica2:Sembra che non ci siano vantaggi.

Modifica3:Sì, intendevo prendere di mira il Framework.Ho installato le ultime versioni 3.5 SP1 e VS 2008, quindi qual è la differenza tra la compilazione e il targeting di un framework?Posso scegliere come target il framework nelle opzioni del progetto, ma come posso "compilare" con una versione specifica del framework?Non sapevo che ci fosse una differenza.

Modifica4:Quindi per ora siamo d’accordo che non ci sono vantaggi.

Grazie per le vostre opinioni

È stato utile?

Soluzione

C'è una differenza tra compilazione e targeting.

Compilare il codice con il compilatore (ad esempio) C# 3.0 probabilmente ti darà un miglioramento delle prestazioni (molto poco comunque) poiché potrebbero essere state incluse alcune ottimizzazioni per il codice IL generato.Ti consente inoltre di utilizzare alcune delle nuove funzionalità come proprietà automatiche o espressioni lambda.

Il targeting per un determinato framework garantirà che l'assembly funzioni per quel framework (e posteriori) e fallirà se si sceglie come target 2.0 e si utilizza una libreria 3.5.Nessun miglioramento delle prestazioni sarà direttamente correlato a ciò a meno che non si sostituisca una classe da un framework con un'altra classe "più veloce".Ad esempio, il targeting .NET 1.1 non ti consentirà di utilizzare generici e pertanto dovrai utilizzare ArrayList che è notevolmente più lento di List (a causa del boxing e dell'unboxing).

Altri suggerimenti

Ci sono due cose da ricordare riguardo a .NET 2.0 e .NET 3.5.

  1. .NET Framework 3.5 è solo alcune delle librerie eseguite su .NET 2.0.
  2. Quando si sviluppa in Visual Studio 2008 e si ha come target .NET 2.0 è comunque possibile utilizzare alcune funzionalità del linguaggio C# 3.0 come i metodi di estensione poiché sono di fatto una funzionalità del compilatore C# 3.0 (o .NET 3.5).Vedi questo collegamento: http://www.codethinked.com/post/2008/02/Using-Extension-Methods-in-net-20.aspx

Non ne ho trovato nessuno.Un ovvio svantaggio, se non hai bisogno delle funzionalità specifiche della 3.5, è che la base di codice della 3.5 è più giovane ed è quindi possibile, anche se improbabile, che ci sia qualche bug in agguato.

Non vi è alcun vantaggio nel compilare nel framework 3.5 se non si utilizzano classi di quella versione del framework.

Presumo che intendi prendere di mira il framework .NET 3.5 per la tua compilazione?Se è così, allora come altri hanno già detto, non credo che vedrai molta differenza.

Tuttavia, se stai parlando dell'utilizzo dei compilatori aggiornati, ci sono varie modifiche e modifiche di interruzione descritte sia per C# che per VB ai seguenti collegamenti:

Credo che con ogni versione di Visual Studio venga fornito un compilatore diverso.Ad esempio, nel caso di C#, il compilatore 2.0 fornito con Visual Studio 2005 e C# 3.0 fornito con Visual Studio 2008.A seconda della versione di Visual Studio che usi, ti ritroverai con un compilatore diverso.

Il targeting di un framework si riferisce specificamente a quale versione del framework si desidera targetizzare durante il processo di compilazione;i framework di destinazione sono una nuova funzionalità di Visual Studio 2008.Ad esempio, potrei avere una soluzione aperta in Visual Studio 2008 e scegliere come target la versione 2.0 di .Net.Il risultato sarebbe che non avrei a disposizione nessuna delle funzionalità .Net 3.0 o 3.5 durante la compilazione, ad esempio WPF.

Se l'assembly .NET è destinato a .NET 3.5, l'applicazione risultante cercherà e richiederà le librerie .NET 3.5 e il gioco è fatto.Queste librerie sono dotate di numerose classi aggiuntive non presenti nel framework .NET 2.0, quindi sarebbe un vantaggio scegliere come target tali librerie.

Se tuttavia compili codice C# con il compilatore C# 3.0 fornito con ad es.Visual Studio 2008 e adatto per .NET 3.5, Ma hai il tuo target assembly .NET 2.0, avrai comunque bisogno solo delle normali librerie .NET 2.0 e, nonostante ciò, utilizzi effettivamente alcune funzionalità del compilatore .NET 3.5, poiché alcune di queste funzionalità alla fine utilizzano solo codice .NET 2.0 .Leggi di più su questo qui: http://weblogs.asp.net/shahar/archive/2008/01/23/use-c-3-features-from-c-2-and-net-2-0-code.aspx

3.5 ha classi che 2.0 no.Funz<...> per esempio.Se punti al 2.0, non puoi usarli.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top