Microsoft France : Eric Vernié Responsable relation technique développeurs

 

Le point sur les différentes versions du Framework .NET


Document de référence

Révision 2.0

 

Table des matières 

  • Introduction..
  • Petit rappel sur l'architecture et la plate-forme .NET.
    • Plate-forme .NET Version 1.0.
    • Plate-forme .NET Version 1.1 + Version 1.1 SP1.
    • Compact Framework 1.0.
    • Plate-forme .NET Version 2.0 et Version 2.0 SP1.
    • Compact Framework 2.0.
    • Plate-forme .NET Version 3.0 et Version 3.0 SP1.
    • Plate-forme Version 3.5.
    • Plate-forme Version 3.5 SP1.
    • Compact Framework 3.5.
    • Micro framework .NET.
    • Microsoft Silverlight 2.0.
  • Tableau récapitulatif des différentes versions de la plate-forme .NET  11

Introduction

Depuis la sortie de la version 1.0 de la plate-forme .NET en 2002, et avec l'arrivée de la version 3.5, il nous semblait important de mettre de l'ordre dans la maison et de clarifier un peu la situation. **Quelle version de la plate-forme avec qui avec quoi ?**Mais pour bien comprendre la suite, il faut comprendre ce qui se cache sous la plate-forme .NET.

Petit rappel sur l'architecture et la plate-forme .NET

Pour bien comprendre nos histoires de versions de plate-forme .NET, il m'a semblé important de faire un rapide rappel sur l'architecture .NET.

La plate-forme .Net est basée sur un moteur d'exécution virtuel (Virtual Execution System), développé selon des spécifications et des standards nommés "Common Language Infrastructure Standards" de l'organisme de normalisation ECMA.

Ce moteur porte le nom de "Common Language Runtime", que l'on nommera dans la suite de cet article le CLR.

Le CLR implémente donc les spécifications du document de standardisation ECMA-335. C'est-à-dire et pour faire court :

  • Le Système de Types Commun (CTS) — Le CTS permet à différents langages de partager le même système de types. Il garanti, par exemple, qu'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.
  • Méta-Données — 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, et ceci indépendamment du langage de programmation utilisé. Il est donc possible de les utiliser facilement entre des outils (tels que les débogueurs et les compilateurs) et le moteur d'exécution lui-même.
  • Le Common Language Specification (CLS) — Le CLS définit un contrat 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, et ceci afin d'éviter qu'un langage n'utilise des techniques de programmation qui ne soient pas disponibles dans un autre langage. Par exemple, l'utilisation de pointeurs dans la signature d'une méthode publique ne sera pas autorisée si on souhaite interopérer de manière fine avec un langage comme VB.NET ou C#. CTS permet, si chaque langage adhère à ses conventions, d'hériter d'un type vers un autre langage.
  • Le moteur d'exécution virtuel (VES) — Le VES implémente et renforce 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 (Ramasse Miette, Threading, Debogage, Marshalling de données, etc.) au bon fonctionnement du code managé et de ses données associées. Ensemble, ces aspects du CLI forment une infrastructure unifiée, pour concevoir, développer, déployer et exécuter des applications et des composants distribués en toute sécurité.

Au dessus du CLR, nous trouvons les classes de bases qui fournissent un ensemble de 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éesLe développement d'applications riches de type WindowsLe développement d'applications Web

Figure 1 : Détail de la plate-forme .NET

Dans la suite de cet article et pour bien comprendre son évolution, nous différencierons la version de la plate-forme .NET qui constitue l'ensemble de tous les éléments de la figure 1 de la version du CLR.
L'ajout de nouvelles fonctionnalités à la plate-forme .NET pourra engendrer une évolution de son numéro de version, mais PAS FORCEMENT une évolution du moteur d'exécution qu'est le CLR. C'est-à-dire que l'ajout de nouvelles fonctionnalités, comme nous le verrons plus tard, n'engendre pas automatiquement de modifications dans le binaire du moteur d'exécution, donc pas d'évolution de son numéro de version.

Plate-forme .NET Version 1.0

La version 1.0 (V1.0.3705) de la plate-forme .NET est sortie en Janvier 2002. Livrée avec Visual Studio 2002.
Version de la plate-forme assez anecdotique car remplacée très rapidement par la version 1.1. Il est donc fort probable de ne trouver que très peu d'applications qui tournent dessus.

Plate-forme .NET Version 1.1 + Version 1.1 SP1

La Version 1.1 livrée en 2003 avec Visual Studio 2003 ou en version redistribuable s'installe dans le répertoire C:\WINDOWS\Microsoft.NET\Framework\v1.1.4322.
La version SP1 est disponible ici.

Elle apportait beaucoup plus de stabilité, de performance et de sécurité que la précédente version et d'ailleurs c'est elle qui a réellement fait découvrir .NET aux développeurs.

En termes de nouveautés propre nous avions ajouté le support d'IPV6, le support des contrôles dit mobiles pour ASP.NET, contrôles qui devaient s'adapter aux différents périphériques mobiles (smartphone, PDA, WAP et consort), des modifications dans la pile d'accès aux données pour gérer ODBC et bien d'autres nouveautés encore.

 

Nouveautés de la plate-forme .NET 1.1

 

Disponible en téléchargement à cette adresse.

Bien que je préconise de commencer à développer avec au minimum la version 2.0, le Kit de développement (SDK) est toujours disponible en téléchargement à cette adresse.

Avec ce kit, tout vous est fourni pour commencer à développer en VB.NET ou en C#.

Un service Pack est également disponible qui corrige essentiellement des problèmes de sécurité

Service Pack 1

Liste des systèmes d'exploitation supportés par la plate-forme .NET 1.1:

TabletPC; Windows 2000; Windows 2000 Advanced Server; Windows 2000 Professional Edition ; Windows 2000 Server; Windows 2000 Service Pack 2; Windows 2000 Service Pack 3; Windows 2000 Service Pack 4; Windows 98; Windows 98 Second Edition; Windows ME; Windows NT; Windows Server 2003 Service Pack 1 for Itanium-based Systems; Windows Server 2003 x64 editions; Windows Server 2003, Datacenter Edition for 64-Bit Itanium-Based Systems; Windows Server 2003, Datacenter x64 Edition; Windows Server 2003, Enterprise Edition for Itanium-based Systems; Windows Server 2003, Enterprise x64 Edition; Windows Server 2003, Standard x64 Edition; Windows Vista Business; Windows Vista Business 64-bit edition; Windows Vista Enterprise; Windows Vista Enterprise 64-bit edition; Windows Vista Home Basic; Windows Vista Home Basic 64-bit edition; Windows Vista Home Premium; Windows Vista Home Premium 64-bit edition; Windows Vista Starter; Windows Vista Ultimate; Windows Vista Ultimate 64-bit edition; Windows XP; Windows XP Home Edition ; Windows XP Media Center Edition; Windows XP Professional Edition ; Windows XP Professional x64 Edition ; Windows XP Service Pack 1; Windows XP Service Pack 2

Compact Framework 1.0

Le compact framework est un sous ensemble du CLR qui fonctionne sur des périphériques mobiles (PDA, smartphones) voire embarqués (kiosques, contrôles de commandes, automobiles)…

Sa version est en adéquation avec la version de son grand frère, le CLR 1.1. Théoriquement, il est possible de développer des applications sur PC et téléphone portable sans aucune modification du binaire, pour peu que vous n'ayez pas utilisé d'API qui ne soient pas disponibles sur le compact framework. Un des grands intérêts réside dans le fait que le modèle de programmation reste identique entre le développement sur PC et sur PDA.

Le SP3 est disponible à cette adresse.

Le compact framework 1.1 cible les systèmes suivants :

Pocket PC 2003, Smartphone 2003 Windows Mobile 5 et 6 et CE 4.X, 5.0, et 6.0

 

Plate-forme .NET Version 2.0 et Version 2.0 SP1

Des modifications importantes ont été apportées à cette version, tant aux différents éléments constituant la plate-forme qu'au moteur d'exécution lui-même.

On passe à la version 2.0 d'ADO.NET, d'ASP.NET, ainsi que des Windows Forms avec plein de nouveautés que je ne détaille pas ici mais que vous pourrez retrouver à ces différentes adresses.

Nouveautés de la plate-forme .NET 2.0
Coach ASP.NET 2.0
Le site de développement Web
Nouveautés ADO.NET 2.0
Coach VB consacré à ADO.NET 2.0
Le tour de France d'accès aux données de 2005
Le site d'accès aux données
Le tour de France des Windows Forms 2.0
Centre de développement Windows
Windows Forms 2.0
Les breakings changes (article en anglais)

Une version du CLR 64 bits voit également le jour. Ce qui veut dire que toutes les applications développées sur la plate-forme .NET 32 Bits sont garanties de fonctionner de la même manière sans recompilation du binaire sur la plate-forme 64 Bits. Une application Web de type ASP.NET par exemple peut tirer profit sans aucun effort de développement de toute la puissance du 64 Bits.

Pour en savoir plus sur le 64 Bits

Mais un des ajouts les plus remarquables dans cette version, reste l'ajout des génériques, dont les spécifications étaient déjà présentes dans le document de la CLI, mais pas encore implémentées. C'est chose faite avec cette nouvelle mouture du CLR v2.0.50757.42 qui voit le jour.

Retrouvez les vidéos de Mitsu Furuta sur le sujet
Introduction au générique

A noter que la version des nouveautés de la plate-forme reste synchrone avec la version du CLR.

Les binaires redistribuables sont disponibles V 2.0
Les binaires redistribuables sont disponibles ici V 2.0 SP1
Le kit de développement

Liste des systèmes d'exploitation supportés par la plate-forme .NET v2.0:

Windows 2000 Service Pack 3; Windows 98; Windows 98 Second Edition; Windows ME; Windows Server 2003; Windows Vista Business; Windows Vista Business 64-bit edition; Windows Vista Enterprise; Windows Vista Enterprise 64-bit edition; Windows Vista Home Basic; Windows Vista Home Basic 64-bit edition; Windows Vista Home Premium; Windows Vista Home Premium 64-bit edition; Windows Vista Starter; Windows Vista Ultimate; Windows Vista Ultimate 64-bit edition; Windows XP Service Pack 2

 

Compact Framework 2.0

Une version SP 2 est disponible ici.

Informations complémentaires sur le compact Framework 2.0.

Pour en savoir plus les nouveautés du compact Framework 2.0.

Le compact framework 2.0 cible les systèmes suivants :

Windows Mobile 5 et 6 et Windows CE 4.X, 5.0, et 6.0

Plate-forme .NET Version 3.0 et Version 3.0 SP1

En novembre 2006, Microsoft décide d'ajouter de nouvelles fonctionnalités à la plate-forme .NET. Ces fonctionnalités portent sur :

Windows Presentation Foundation Fournit des classes pour la création d'applications client intelligentes de nouvelle génération associant une interface utilisateur, des documents et des données multimédia.
Windows Workflow Foundation Offre un modèle de programmation, un moteur et des outils pour créer des applications de workflow qui modélisent des processus métier.
Windows Communication Foundation Offre un modèle de programmation et un runtime unifiés pour la création d'applications orientées service.
CardSpace Offre une technologie permettant de simplifier et d'améliorer la sécurité du travail en ligne avec des informations d'identité personnelles.

Toutes les nouveautés de la plate-forme .NET 3.0 sont basées sur la version 2.0 du CLR (qui reste en V2.0.0757.42).

Les binaires des versions 3.0 et 3.0 SP1, sont disponibles en téléchargement ici et/ou ici.

 

Si vous souhaitez en profitez, il vous faut impérativement télécharger la version 2.0 ici.

Retrouvez la voix de nos experts sur les nouveautés de la plate-forme .NET 3.0 :

Introduction aux nouveautés de la plate-forme 3.0  
Déploiement de la V3.0  
Tour de France Windows Presentation Foundation  
Article sur WPF  
Introduction à Windows Communication Foundation

https://www.microsoft.com/france/vision/WebcastMsdnTechDays.aspx?EID=a0ef2ae5-45f5-4d67-b66e-02cb62541a8f


https://www.microsoft.com/france/Vision/List.aspx?Did=b2873510-dc97-4f45-b64d-a3dd3c0db48f&Pid=a9f5fbd5-15cd-4339-8e75-4e60f0c9a894&ord=adate&index=20

https://msdn.microsoft.com/msdnmag/issues/06/10/WCFEssentials/

Introduction à Windows Communication Foundation (article en anglais)  
Articles consacrés à Cardspace (anciennement Infocard)

https://msdn.microsoft.com/fr-fr/magazine/cc163434.aspx

https://social.msdn.microsoft.com/search//Default.aspx?brand=msdn&query=Cardspace

https://msdn.microsoft.com/fr-fr/magazine/cc159298.aspx

Introduction à Windows Workflow Foundation  
Article sur WF  

Si vous souhaitez allez plus loin retrouvez nos ateliers virtuels.

La disponibilité de la version 3.0 coïncide avec la sortie de Windows Vista, mais n'est en aucun cas assujettie à ce système d'exploitation seul. Par contre, vous noterez dans la liste ci-dessous que des systèmes tels que Windows 98, Windows NT et Windows 2000 ne sont plus supportés.

Liste des systèmes d'exploitation supportés :

Windows Serveur 2008 ; Windows Server 2003 Service Pack 1; Windows Vista ; Windows XP Service Pack 2

Plate-forme Version 3.5

Disponible en téléchargement ici, elle est également disponible avec Visual Studio 2008. Elle inclut le Framework .NET 2.0 SP1 et .NET 3.0 SP1.

Construite sur la base de la version 3.0 de la plate-forme .NET dont elle reprend toutes les spécificités, elle apporte son lot de nouveautés également. Attention, le moteur d'exécution CLR n'ayant pas foncièrement changé, il reste à la version 2.0 avec une build réellement mineure. Le CLR est désormais en V2.0.50757.1378 ce qui ne doit pas impacter vos développements fait sur la version V2.0.50757.42.

D'ailleurs toutes les nouveautés apportées à cette version ont été introduites dans de nouveaux assemblages, et ceci afin de garder une compatibilité optimum.

  • Intégration de la technologie Linq

  • Ajout d'ASP.NET Ajax

  • Ajout de nouveaux protocoles pour le développement de services WCF

  • De nouvelles classes dans la librairie de classes qui adressent les demandes les plus courantes

Introduction à LINQ

https://msdn.microsoft.com/fr-fr/magazine/cc163400.aspx

https://msdn.microsoft.com/fr-fr/netframework/aa904594.aspx

https://msdn.microsoft.com/en-us/library/bb308959.aspx

Parallèle Linq  
AJAX le site officiel  

Retrouvez Mitsu Furuta dans son tour de France des nouveautés de l’accès aux données (incluant Linq)

Tour de France Accès aux données

Liste des systèmes d'exploitation supportés par la Plate-forme .NET Version 3.5 :

Windows Server 2003; Windows Vista; Windows XP

 

Plate-forme Version 3.5 SP1

Disponible depuis peu en téléchargement à cette adresse.

Voici ce qu’elle apporte de nouveau :

  • ASP.NET Dynamic Data, qui fournit une infrastructure élaborée permettant un développement piloté par les données rapide, sans écriture de code, et un nouvel ajout à ASP.NET AJAX qui assure la prise en charge de la gestion de l'historique de navigation (prise en charge du bouton Précédent). Pour plus d'informations, consultez Nouveautés dans ASP.NET et le développement Web.
  • Améliorations principales apportées au Common Language Runtime, dont notamment une meilleure disposition des images natives .NET Framework, le choix de la vérification des noms forts pour les assembly d'un niveau de confiance suffisant, des performances de démarrage d'application améliorées, du code mieux généré qui améliore le temps d'exécution des applications de bout en bout et le choix de code managé à exécuter en mode de randomisation du format d'espace d'adresse (ASLR, Address Space Layout Randomization) s'il est pris en charge par le système d'exploitation. En outre, les applications managées qui sont ouvertes à partir de partages réseaux ont le même comportement que les applications natives lorsqu'elles sont exécutées avec un niveau de confiance totale.
  • L'amélioration des performances apportée àWindows Presentation Foundation, notamment un démarrage plus rapide et de meilleures performances pour les effets Bitmap. Une meilleure prise en charge des applications métier, la prise en charge de l'écran de démarrage natif, la prise en charge du nuanceur de pixels DirectX et le nouveau contrôle WebBrowser constituent des fonctionnalités supplémentaires de WPF.
  • Les éditeurs d'application ClickOnce peuvent décider d'opter pour la signature et le hachage appropriés de leurs scénarios, les développeurs peuvent installer par programme des applications ClickOnce qui affichent une personnalisation particulière, et les boîtes de dialogue d'erreur ClickOnce prennent en charge les liens vers des sites d'assistance technique spécifiques aux applications sur le Web.
  • Entity Framework est une évolution de l'ensemble de technologies d'accès aux données ADO.NET existantes. Il permet aux développeurs de programmer en se servant de bases de données relationnelles en termes de modèles de domaine spécifiques aux applications plutôt que de modèles de base de données sous-jacente. Pour plus d'informations, consultez Mise en route d'Entity Framework. Entity Framework introduit des fonctionnalités supplémentaires, notamment la prise en charge de nouveaux types SQL Server 2008, la sérialisation de graphiques par défaut d'entités et la source de données d'entité. Dans cette version, Entity Framework prend en charge les nouvelles fonctionnalités de flux de fichiers et de date dans SQL Server 2008. Le travail de la sérialisation des graphiques aide les développeurs souhaitant générer des services Windows Communication Foundation (WCF) qui modélisent des graphes complets en tant que contrats de données. La source de données d'entité fournit une expérience traditionnelle des sources de données pour les générateurs d'applications ASP.NET qui veulent utiliser Entity Framework.
  • LINQ to SQL inclut une prise en charge des nouvelles fonctionnalités de flux de fichiers et de dates dans SQL Server 2008.
  • L'infrastructure des services de données ADO.NET se compose d'une combinaison de modèles et de bibliothèques, ce qui permet d'exposer les données sous la forme d'un service de données REST (Representational State Transfer) flexible qui peut être utilisé par des clients Web sur un réseau d'entreprise ou sur Internet. Cette infrastructure effectue la création de services de données sur n'importe quelle source de données. Un modèle de vue conceptuelle du schéma de stockage sous-jacent peut être facilement exposé via une forte intégration à ADO.NET Entity Framework. Les services créés à l'aide de l'infrastructure des services de données ADO.NET, ainsi que les services Windows Live (dev.live.com) compatibles, sont facilement accessibles à partir de n'importe quelle plateforme. Pour les applications clientes s'exécutant sur des plateformes Microsoft, un jeu de bibliothèques clientes est fourni pour assurer l'interaction avec des services de données simples. Par exemple, les clients .NET Framework peuvent utiliser LINQ pour interroger des services de données et une couche objet .NET Framework simple afin de mettre à jour des données dans le service.
  • Windows Communication Foundation simplifie désormais l'utilisation du sérialiseur DataContract en fournissant une meilleure prise en charge de l'interopérabilité, en améliorant le débogage dans les scénarios de confiance partielle et en étendant la prise en charge du protocole de syndication pour une utilisation plus large dans les applications Web 2.0.
  • Le fournisseur de données .NET Framework pour SQL Server (SqlClient) ajoute une nouvelle prise en charge des fonctionnalités de flux de fichiers et de colonnes fragmentées dans SQL Server 2008
Entity Framework Vidéo des techdays 2008
Mise en route d’entity Framework Nouveautés dans ASP.NET et le développement Web
ASP.NET Dynamic Data Nouveautés dans ASP.NET et le développement Web

 

Compact Framework 3.5

Les nouveautés du compact Framework 3.5 portent sur :

  • WCF over email

  • Linq

  • Un sous ensemble de WPF

Disponible avec Visual Studio 2008

Site Windows Mobile

Le compact framework 3.5, cible les systèmes suivants :

Windows Mobile 5 et 6 et Windows CE 5.0, et 6.0.

Micro framework .NET

Le .NET Micro Framework apporte un environnement riche, basé sur la technologie .Net, pour les systèmes embarqués miniaturisés peu coûteux et disposant de peu de ressources hardware. Nécessitant seulement quelques centaines de Ko de RAM et un processeur 32 bits sans MMU (moins coûteux), le.NET Micro Framework a été développé "from scratch" pour vous aider à développer des applications en utilisant les outils de développement Visual Studio.

Retrouvez notre spécialiste Olivier Bloch à l'adresse suivante

Ainsi que le site U.S

Le kit de développement

Microsoft Silverlight 2.0

Basé sur un sous ensemble de la plate-forme 3.5, Microsoft Silverlight est multi-navigateur, multi OS, et permet de développer les futures générations d'application média et RIA pour le Web.

Pour l'instant ce n'est qu'une version Alpha, aucune date de disponibilité n'est annoncée.

Attention, une version 1.0 de Microsoft Silverlight, à l'heure où j'écris ces lignes, est disponible depuis peu, mais elle n'est pas basée sur la plate-forme .NET.

Tableau récapitulatif des différentes versions de la plate-forme .NET

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