Question

Existe-t-il des avantages à compiler pour .NET Framework 3.5 au lieu de 2.0?

Par exemple, moins de consommation de mémoire, un démarrage plus rapide, de meilleures performances ...

Personnellement, je ne le pense pas, cependant, j'ai peut-être manqué quelque chose.

Éditer: Bien sûr, il y a plus de fonctionnalités dans le framework 3.5, mais elles ne sont pas au centre de cette question.

Edit2: Il ne semble y avoir aucun avantage.

Edit3: Oui, je voulais dire cibler le Framework. J'ai installé les dernières versions 3.5 SP1 et VS 2008, alors quelle est la différence entre compiler avec et cibler un framework? Je peux cibler le framework dans les options du projet, mais comment puis-je «compiler» avec une version de framework spécifique? Je ne savais pas qu'il y avait une différence.

Edit4: Donc, pour l’instant, nous convenons qu’il n’ya aucun avantage.

Merci pour vos avis

Était-ce utile?

La solution

Il y a une différence entre la compilation et le ciblage.

Compiler le code avec le compilateur C # 3.0 (par exemple) vous donnera probablement un coup de fouet (très peu de toute façon), car certaines optimisations ont été incluses pour le code IL généré. Il vous permet également d’utiliser certaines des nouvelles fonctionnalités telles que les propriétés automatiques ou les expressions lambda.

Le ciblage pour un framework donné garantira que votre assemblage fonctionne pour ce framework (et les postérieurs) et échouera si vous ciblez pour 2.0 et utilisez une bibliothèque 3.5. Aucune amélioration des performances ne sera directement liée à cela, sauf si vous remplacez une classe d'un framework par un autre & "Plus rapide &"; classe. Par exemple, cibler .NET 1.1 ne vous autorisera pas à utiliser des génériques et vous devrez donc utiliser ArrayList, qui est considérablement plus lent que List (en raison de la boxe et du unboxing).

Autres conseils

Il y a deux choses à retenir concernant .NET 2.0 et .NET 3.5.

  1. Le .NET Framework 3.5 n'est que quelques bibliothèques qui s'exécutent par-dessus .NET 2.0.
  2. Lors du développement dans Visual Studio 2008 et du ciblage de .NET 2.0, vous pouvez toujours utiliser certaines fonctionnalités du langage C # 3.0, telles que les méthodes d'extension, car elles constituent en fait une fonctionnalité du compilateur C # 3.0 (ou .NET 3.5). Voir ce lien: http: // www.codethinked.com/post/2008/02/Using-Extension-Methods-in-net-20.aspx

Je n’en ai trouvé aucun. Un inconvénient évident, si vous n’avez pas besoin des fonctionnalités spécifiques à la version 3.5, est que la base de code 3.5 est plus jeune et qu’il est donc possible, bien qu’improbable, que des bogues se cachent autour de vous.

La compilation vers le framework 3.5 ne présente aucun avantage si vous n'utilisez aucune classe de cette version du framework.

Je suppose que vous voulez dire cibler le framework .NET 3.5 pour votre compilation? Si tel est le cas, comme d’autres l’ont déjà dit, je ne pense pas que vous verrez une grande différence.

Cependant, si vous envisagez d'utiliser les compilateurs mis à jour, il existe divers changements et changements de rupture décrits pour C # et VB aux liens suivants:

Je pense qu'un compilateur différent est fourni avec chaque version de Visual Studio. Par exemple, dans le cas de C #, le compilateur 2.0 fourni avec Visual Studio 2005 et le C # 3.0 fourni avec Visual Studio 2008. Selon la version de Visual Studio que vous utilisez, vous vous retrouvez avec un autre compilateur.

Cibler un cadre désigne spécifiquement la version du cadre que vous souhaitez cibler pendant le processus de compilation; Le ciblage des structures est une nouvelle fonctionnalité de Visual Studio 2008. Par exemple, une solution pourrait être ouverte dans Visual Studio 2008 et la version 2.0 de .Net. Le résultat serait que je n’aurais aucune des fonctionnalités .Net 3.0 ou 3.5 disponibles pendant cette compilation, par exemple WPF.

Si votre assemblage .NET cible .NET 3.5, l'application résultante recherchera et nécessitera les bibliothèques .NET 3.5, et c'est tout. Ces bibliothèques viennent avec de nombreuses autres classes non trouvées dans le framework .NET 2.0, ce serait donc l'avantage de les cibler.

Si vous compilez cependant le code C # avec le compilateur C # 3.0, par exemple, livré avec. Visual Studio 2008 et adapté à .NET 3.5, mais ont votre cible d'assembly .NET 2.0, vous n'aurez toujours besoin que des bibliothèques .NET 2.0 classiques, et malgré cela, certaines fonctionnalités du compilateur .NET 3.5 seront utilisées. comme un certain nombre de ces fonctionnalités utilisent uniquement le code .NET 2.0 à la fin. Pour en savoir plus à ce sujet, cliquez ici: http://weblogs.asp.net/shahar/archive/2008/01/23/use-c-3-features-from-c-2-and- net-2-0-code.aspx

3.5 a des classes que 2.0 n'a pas. Func & Lt; ... & Gt; par exemple. Si vous visez 2.0, vous ne pouvez pas les utiliser.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top