Framework Microsoft.Net : quelle version installer ?

Depuis l’arrivée de la première version de la plate-forme Microsoft.Net en 2002, et jusqu’à la dernière version actuelle (4.0), près d’une dizaine de versions se sont succédées ou côtoyées (si l’on inclut les différentes déclinaisons du genre Compact Framework, Micro Framework et bien sûr les services Pack).

Il est fréquent de trouver sur un même ordinateur plusieurs versions du Framework installées. Doit-on désinstaller les versions les plus anciennes et ne conserver que la plus récente ? Pourquoi les versions antérieures ne sont-elles pas écrasées par les plus récentes, lors de l’installation de ces dernières ? Nous allons voir dans cette article, après avoir rappelé ce qu’est l’infrastructure de la plate-forme .Net, qu’avec le Framework .Net la compatibilité, non seulement ascendante mais aussi descendante, n’est pas forcément assurée. Et qu’il peut y avoir par conséquent nécessité à conserver différentes versions du Framework sur sa machine.

Petit rappel sur l’architecture .Net

La plate-forme .Net est basée sur un moteur d’exécution virtuel nommé « Common Language Runtime » (CLR).

Le CLR implémente plusieurs spécifications afin de garantir un niveau de standardisation :

  • Le CTS (système de types communs) : il permet à différents langages de partager le même système de types. Par exemple, un type « String » en Visual Basic sera exactement le même type « String » en C++/CLI ou en C# ou en tout autre langage .NET.
  • Le CLI (Common Language Infrastructure) : le CLI utilise les méta-données pour décrire les types définis par le CTS. Les méta-données sont incluses dans chaque DLL, EXE,  indépendamment du langage de programmation utilisé.
  • Le CLS (Common Language Specification) : le CLS définit un contrat de convention entre les concepteurs de langages et concepteurs de librairies de classes. C’est un sous ensemble de CTS qui définit des conventions à utiliser entre chaque langage, afin d’éviter qu’un langage n’utilise des techniques de programmation qui ne soient pas disponibles dans un autre langage. De cette façon, si chaque langage adhère à ses conventions, CLS permet d’hériter d’un type vers un autre langage.
  • Le VES (moteur d’exécution virtuel) : le VES implémente et le modèle de CTS. Il est responsable du chargement et de l’exécution des programmes écrits pour le CLI. Il fournit les services nécessaires au bon fonctionnement du code managé et de ses données associées.

Au dessus du CLR, nous trouvons les classes de bases pour les services tels que la sécurité, l’accès aux réseaux, les entrées sorties, etc…

Puis nous trouvons les différentes piles de développement pour : l’accès aux données, le développement d’applications riches de type Windows, le développement d’applications Web…

Architecture Microsoft.Net

Framework.Net

Récapitulatif des différentes versions

Version Plate-forme Version du CLR Date
V1.0 V1.0.3705 Janvier 2002
V1.1 v1.1.4322 Avril 2003
V1.1 SP1 v1.1.4322 Aout 2003
V2.0 V2.0.50757.42 Novembre 2005
V3.0 = V2.0 + WF,WCF,WPF,CardSpace V2.0.50757.42 Novembre 2006
V2.0 SP1 et V3.0 SP1 V2.0.50757.42 Novembre 2007
V3.5 +Linq V2.0.50757.1378 Février 2008
V3.5 SP1 V2.0.50727.3053 Août 2008
V4.0 V4.0.30319.1 Avril 2010

Prise en compte des différentes versions

Compatibilité ascendante et descendante

Aujourd’hui de nombreux logiciels utilisent le Framework .Net. Toutefois tous n’ont pas été développés avec la même version de l’environnement Microsoft. Si l’on peut évidemment s’attendre à ce que la compatibilité ascendante ne soit pas assurée (ce qui a été développé avec la version 2 ne fonctionne pas avec la version 1), on peut en revanche être étonné de constater que même la compatibilité descendante peut poser problème (ce qui a été développé pour la version 1 ne fonctionnera plus avec la version 2). Bref, le Framework 3.5 ne prend pas nécessairement en charge les applications développées en environnement 2.0.

De fait, le niveau de prise en charge du .Net Framework pour la compatibilité ascendante et descendante diffère selon les versions du framework. Ainsi, le version 1.1 prend en charge la compatibilité ascendante et descendante. Tandis que les autres versions prennent, ou sont censées prendre en charge la compatibilité descendante uniquement. Dans les faits, vous êtes la plupart du temps amenés à gérer des problèmes de compatibilité descendante.

D’où la nécessité d’avoir sur sa machine plusieurs versions du Framework installées simultanément pour faire tourner vos applications.

Quand désinstaller certaines versions de ma machine ?

Si vous n’avez pas d’applications qui tournent sur telle ou telle version du framework, alors vous pouvez désinstaller cette version et conserver la ou les autres.

Noter également que lorsque vous installez un programme qui s’appuie sur tel framework (votre logiciel de facturation préféré par exemple), ce programme installera probablement le framework nécessaire s’il ne le trouve pas sur votre machine.

C’est un peu troublant toutes ces versions installées, ça fait un peu désordre sur son disque dur. Mais hélas! à ce jour c’est ainsi. La nature des modifications apportées aux nouvelles versions du Framework, en apportant à chaque fois des améliorations notables dans le domaine de la sécurité, des performances etc., ne permet pas toujours d’assurer une compatibilité même descendante.

Cette entrée a été publiée dans Langages et programmation. Vous pouvez la mettre en favoris avec ce permalien.

2 réponses à Framework Microsoft.Net : quelle version installer ?

  1. tutoriel java dit :

    Pourquoi ne pas utiliser une meilleure version pour ne pas créer de problème ?D’après vous quelle est la meilleure version ?

    • Comme je l’ai expliqué dans l’article, il est sûr que chaque nouvelle version apporte des améliorations, notamment en matière de performance et de sécurité.
      Mais la compatibilité n’étant pas forcément assurée, ni dans un sens ni dans l’autre, la « meilleure » version peut s’avérer insuffisante. Des applis qui ont été développées avec des versions antérieures ne tourneront pas forcément avec la version supérieure. Et, mais là c’est bien sûr moins surprenant, des programmes développés sous une version donnée, ne fonctionneront pas avec des versions antérieures.

      D’où la nécessité parfois, selon les programmes que l’on utilise, d’encombrer son PC de différentes versions du FrameWork.

      PS : super le site que vous mettez en lien. Je le recommande vivement. Vous y participez ou c’est juste un coup de coeur ?

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Vous pouvez utiliser ces balises et attributs HTML : <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

Spam protection by WP Captcha-Free