2008-10-02 8 views
6

Nous déplaçons une solution avec plus de 20 projets de .net 2.0 à 3.5 et en même temps nous passons de Visual Studio 2005 à 2008. Nous sommes également à la en même temps passer de MS Entlib 2.0 à 4.0.Pièges pour convertir une solution .net 2.0 en .net 3.5

  • Y at-il des raisons de ne pas laisser l'assistant Visual Studio convertir la solution pour nous?
  • Est-ce que 3,5 est totalement rétrocompatible avec 2.0?
  • Est-ce que Entlib 4.0 est totalement rétrocompatible avec 2.0?

Edit: Je pourrais été un peu confus quand j'ai écrit cela, le arrière est censé compatibilité à dire; est-il quelque chose qui existe dans un projet 2.0 qui ne fonctionne pas/compilez 3.5

:)

// W

Répondre

6

Nous avons mis à niveau une solution assez importante (plus de 20 projets) de 2005 à 2008, mais c'était vraiment trivial. Mise à niveau du projet seulement fondamentalement. Le cadre sous-jacent est toujours le même puisque 3.0/3.5 et 2.0 partagent le même cadre de base.Comme indiqué ci-dessus, même si vous effectuez une mise à niveau, vous n'avez pas besoin de modifier la référence du framework pour les projets. En fait, il quitte par défaut le framework à 2.0 au lieu de le changer en 3.0/3.5. Cela signifie que vous ne serez pas en mesure de tirer parti des fonctionnalités 3.0/3.5 tant que vous ne modifiez pas la référence (page Propriétés du projet, champ "Target Framework" de la table des applications), mais que vous êtes plus assuré qu'il n'y aura pas de compatibilité supplémentaire problèmes (car vous obtiendrez une erreur en ajoutant le code 3.0/3.5 jusqu'à ce que cette référence soit changée).

Les nouvelles fonctionnalités de TFS 2008 ne devraient pas être négligés si vous n'avez pas besoin de mettre à jour votre application pour pouvoir utiliser TFS 2008.

1,1 à 2,0 conversion était beaucoup plus pénible ...

4

Je plusieurs projets mis à jour à partir de Visual Studio 2005 pour 2008 avec l'assistant, et ils tout s'est déroulé sans douleur (enfin ... sauf pour cette bête C++.) Mais vous parlez de .NET de toute façon). Gardez à l'esprit que vous n'avez pas besoin de mettre à niveau la version .NET.

Visual Studio 2008 prend en charge .NET 2.0, 3.0 et 3.5. Cependant, 3.5 est rétrocompatible de toute façon, car il se trouve sur le même CLR et est, plus ou moins, juste quelques bibliothèques supplémentaires. Et les "vieilles" bibliothèques restent les mêmes.

Je ne connais pas Entlib. Pourquoi n'essayez-vous pas d'exécuter vos tests unitaires? :)

+0

UnitTests, je le ferais si j'avais. :) – Wiren

+1

Eek - maintenant vous savez pourquoi vous en auriez besoin;) – OregonGhost

+0

Oh oui! et ce n'est pas la seule raison ... :) – Wiren

1
  • Y at-il des raisons de ne pas laisser l'assistant Visual Studio convertir la solution pour nous?

No.

  • est de 3,5 entièrement rétrocompatible avec 2.0?

Non. Il existe de nouvelles fonctionnalités dans la version 3.5 qui ne seraient pas portées vers l'arrière nativement. Et (IIRC) il y a quelques dépréciations allant de 2.0 à 3.5.

  • Entlib 4.0 est-il complètement rétrocompatible avec la version 2.0?

Je ne pense pas. 3.5 est répertorié comme une exigence.

Faites une sauvegarde, exécutez l'assistant, voir ce qui se passe. Cela peut prendre un certain temps pour un tel projet mais vous serez dans une position où vous pouvez dire si elle va construire/fonctionner comme prévu.

1

Quand je mis à jour de EntLib 2,0 à 4,0 I observé la rupture suite à un changement de code source si vous utilisez le bloc d'application Mise en cache:

  • en 2.0, vous obtenez un gestionnaire de cache à l'aide CacheManager cache = CacheFactory.GetCacheManager(). Dans la version 4.0, vous devez remplacer CacheManager par ICacheManager ou ne pas compiler.

En outre, si vous écrivez votre propre classe d'exception formatter pour le bloc de gestion des exceptions:

  • En 2.0, vous devez définir un constructeur avec la signature (TextWriter, Exception). Dans la version 4.0, c'est obsolète, et vous devez définir un second constructeur avec la signature (TextWriter, Exception, Guid).
1

Il ne sont pas censés être des modifications avec rupture lors de la migration de EntLib 3,1 à 4,0.

« Il n'y a aucun changement de rupture à l'API publique qui a été l'un des objectifs de conception de EL4 Just. rappelez-vous EL4 nécessite .NET3.5.

--Grigori »

http://blogs.msdn.com/agile/archive/2008/05/16/enterprise-library-4-0-for-visual-studio-2008-released.aspx

(Grigory est le gestionnaire de programme pour EntLib)

Je ne suis pas sûr à propos de 2.0 à 3.1 si. Si je peux trouver les bonnes personnes @ p & p demain je vais mettre à jour ce.

Ade

Questions connexes