Nouveautés de .NET Framework 4

Cette rubrique contient des informations sur les améliorations et les fonctionnalités clés dans le .NET Framework version 4. Cette rubrique ne fournit pas d'informations complètes sur toutes les nouvelles fonctionnalités et peut faire l'objet de modifications.

Le .NET Framework 4 offre un modèle de sécurité amélioré. Pour plus d'informations, consultez Modifications de sécurité dans le .NET Framework 4.

Les nouvelles fonctionnalités et améliorations du .NET Framework 4 sont décrites dans les sections suivantes :

  • Déploiement et compatibilité des applications

  • Nouvelles fonctionnalités et améliorations principales

  • Managed Extensibility Framework

  • Calcul parallèle

  • Réseau

  • Web

  • Client

  • Données

  • Windows Communication Foundation

  • Windows Workflow Foundation

Pour obtenir les listes des nouveaux espaces de noms, types et membres ajoutés à des types existants, consultez Nouveaux types et membres dans le .NET Framework 4.

Visual Studio 2010 Service Pack 1 (SP1) inclut une mise à jour du .NET Framework 4.

Déploiement et compatibilité des applications

Le .NET Framework 4 est hautement compatible avec les applications générées avec les premières versions du .NET Framework, à l'exception de certaines modifications apportées pour améliorer la sécurité, la conformité aux normes, l'exactitude, la fiabilité et les performances.

Le .NET Framework 4 n'utilise pas automatiquement sa version du common language runtime pour exécuter des applications générées avec les versions antérieures du .NET Framework. Pour exécuter des applications plus anciennes sur le .NET Framework 4, vous devez compiler votre application avec la version du .NET Framework cible spécifiée dans les propriétés de votre projet dans Visual Studio. Vous pouvez également spécifier le runtime pris en charge avec le <supportedRuntime>, élément dans le fichier de configuration de l'application.

Si l'application ou le composant ne fonctionne pas après l'installation du .NET Framework 4, signalez un bogue sur le site Web Microsoft Connect. Vous pouvez tester la compatibilité comme décrit dans la rubrique Compatibilité des applications .NET Framework 4 (page éventuellement en anglais) et découvrir de nouvelles fonctionnalités via les Procédures pas à pas relatives à Visual Studio 2010 et .NET Framework 4 (page éventuellement en anglais).

Pour obtenir des instructions relatives à la migration vers le .NET Framework 4, consultez Guide de migration du .NET Framework 4 et Compatibilité de versions dans le .NET Framework

Les sections suivantes décrivent les améliorations de déploiement.

Client Profile

.NET Framework 4 Client Profile prend en charge un plus grand nombre de plateformes que les versions antérieures et fournit un déploiement rapide pour vos applications. Plusieurs nouveaux modèles de projet ciblent à présent le Client Profile par défaut. Pour plus d'informations, consultez .NET Framework Client Profile.

Exécution côte à côte in-process

Cette fonctionnalité permet à une application de charger et de démarrer plusieurs versions du .NET Framework dans le même processus. Par exemple, vous pouvez exécuter des applications qui chargent des compléments (ou des composants) basés sur le .NET Framework 2.0 SP1 et des compléments basés sur le .NET Framework 4 dans le même processus. Les composants plus anciens continuent à utiliser la version du .NET Framework plus ancienne, et les nouveaux composants utilisent la nouvelle version de celui-ci. Pour plus d'informations, consultez Exécution côte à côte in-process.

Bibliothèque de classes portable

Lorsque vous installez Visual Studio 2010 Service Pack 1 (SP1) et les Outils de bibliothèque portable, vous pouvez créer des bibliothèques de classes portables qui s'exécutent sur un grand nombre de plateformes .NET Framework sans nécessiter de recompilation. Pour plus d'informations, consultez Bibliothèques de classes portables.

Retour au début

Nouvelles fonctionnalités et améliorations principales

Les sections suivantes décrivent les nouvelles fonctionnalités et améliorations fournies par le Common Language Runtime et les bibliothèques de classes de base.

Diagnostics et performances

Les versions antérieures du .NET Framework ne proposaient aucune méthode pour déterminer si un domaine d'application particulier affectait d'autres domaines d'application, car les API et les outils de système d'exploitation, tels que le Gestionnaire des tâches de Windows, n'étaient précis qu'au niveau du processus. Depuis le .NET Framework 4, vous pouvez obtenir des estimations de l'utilisation des processeurs et de la mémoire pour chaque domaine d'application.

Vous pouvez surveiller l'utilisation du processeur et de la mémoire des domaines d'application. Le contrôle des ressources de domaine d'application est disponible via les API d'hébergement managées et natives ainsi que le suivi d'événements pour Windows (ETW). Lorsque cette fonction a été activée, elle collecte des statistiques sur tous les domaines d'application dans le processus pendant la durée de vie de celui-ci. Consultez la nouvelle propriété AppDomain.MonitoringIsEnabled.

Vous pouvez maintenant accéder aux événements ETW à des fins de diagnostic pour améliorer les performances. Pour plus d'informations, consultez Événements ETW du CLR et Contrôle de l'enregistrement .NET Framework. Consultez également Compteurs de performance et applications côte à côte in-process.

L'attribut System.Runtime.ExceptionServices.HandleProcessCorruptedStateExceptionsAttribute permet au code managé de gérer des exceptions qui indiquent un état de processus endommagé.

Globalisation

Le .NET Framework 4 fournit de nouvelles cultures neutres et spécifiques, des valeurs de propriété mises à jour, une meilleure gestion de chaînes et d'autres améliorations. Pour plus d'informations, consultez Nouveautés en matière de globalisation et de localisation.

Garbage collection

Le .NET Framework 4 fournit une opération garbage collection d'arrière-plan. Cette fonctionnalité remplace l'opération garbage collection simultanée des versions antérieures et fournit de meilleures performances. Pour plus d'informations, consultez Notions de base du garbage collection.

Contrats de code

Les contrats de code vous permettent de spécifier des informations contractuelles qui ne sont pas représentées par la signature seule d'une méthode ou d'un type. Le nouvel espace de noms System.Diagnostics.Contracts contient des classes qui offrent un moyen indépendant du langage pour exprimer des hypothèses de codage sous la forme de conditions préalables, post-conditions et invariants objet. Les contrats améliorent les tests avec le contrôle à l'exécution, permettent la vérification de contrat statique et prennent en charge la génération de documentation. Pour plus d'informations, consultez Contrats de code.

Assemblys d'interopérabilité au moment du design

Vous n'avez plus besoin de fournir des assemblys PIA (Primary Interop Assembly) pour déployer des applications qui interagissent avec des objets COM. Dans le .NET Framework 4, les compilateurs peuvent incorporer les informations de type d'assemblys d'interopérabilité, en sélectionnant uniquement les types qu'une application (par exemple, un complément) utilise réellement. La sécurité de type est vérifiée par le common language runtime. Consultez Utilisation de types COM dans du code managé et Procédure pas à pas : incorporation d'informations de type provenant d'assemblys Microsoft Office (C# et Visual Basic).

Dynamic Language Runtime

Le Dynamic Language Runtime (DLR) est un nouvel environnement d'exécution qui ajoute au CLR un ensemble de services pour les langages dynamiques. Le DLR simplifie le développement de langages dynamiques à exécuter sur le .NET Framework et l'ajout de fonctionnalités dynamiques à des langages typés statiquement. Pour la prise en charge du DLR, le nouvel espace de noms System.Dynamic est ajouté au .NET Framework.

Les arborescences d'expression sont étendues avec de nouveaux types qui représentent le flux de contrôle, par exemple, System.Linq.Expressions.LoopExpression et System.Linq.Expressions.TryExpression. Ces types nouveaux sont utilisés par le composant DLR et non par LINQ.

En outre, plusieurs nouvelles classes prenant en charge l'infrastructure .NET Framework sont ajoutées à l'espace de noms System.Runtime.CompilerServices. Pour plus d'informations, consultez Vue d'ensemble du Dynamic Language Runtime.

Covariance et contravariance

Plusieurs délégués et interfaces génériques prennent maintenant en charge la covariance et la contravariance. Pour plus d'informations, consultez Covariance et contravariance dans les génériques.

BigInteger et les nombres complexes

La nouvelle structure System.Numerics.BigInteger est un type de données Integer de précision arbitraire qui prend en charge toutes les opérations sur les entiers standard, notamment la manipulation de bits. Elle peut être utilisée dans tout langage .NET Framework. De plus, certains des nouveaux langages .NET Framework (tels que F# et IronPython) ont une prise en charge intégrée pour cette structure.

La nouvelle structure System.Numerics.Complex représente un nombre complexe qui prend en charge des opérations arithmétiques et trigonométriques avec des nombres complexes.

Tuples

Le .NET Framework 4 fournit la classe System.Tuple pour la création d'objets tuple contenant des données structurées. Il fournit également des classes de tuple génériques pour la prise en charge de tuples ayant de un à huit composants (autrement dit, des singletons aux octuples). Pour la prise en charge des objets tuple ayant neuf composants ou plus, il existe une classe de tuple générique avec sept paramètres de type et un huitième paramètre de tout type de tuple.

Améliorations de l'énumération de système de fichiers

Les nouvelles méthodes d'énumération de fichier améliorent les performances des applications qui accèdent aux répertoires de fichier volumineux ou itèrent au sein de lignes de fichiers volumineux. Pour plus d'informations, consultez Comment : énumérer des répertoires et des fichiers.

Fichiers mappés en mémoire

Le .NET Framework prend maintenant en charge les fichiers mappés en mémoire. Vous pouvez utiliser des fichiers mappés en mémoire afin de modifier des fichiers très volumineux et de créer la mémoire partagée pour la communication entre processus.

Processus et systèmes d'exploitation 64 bits

Vous pouvez identifier des processus et des systèmes d'exploitation 64 bits avec les propriétés Environment.Is64BitOperatingSystem et Environment.Is64BitProcess.

Vous pouvez spécifier une vue 32 bits ou 64 bits du Registre avec l'énumération Microsoft.Win32.RegistryView lorsque vous ouvrez des clés de base.

Autres nouvelles fonctionnalités

La liste suivante décrit d'autres nouvelles fonctions, améliorations et options. Plusieurs de ces éléments sont basés sur les suggestions de clients.

  • Pour prendre en charge la mise en forme dépendante de la culture, la structure System.TimeSpan inclut de nouvelles surcharges des méthodes ToString, Parse et TryParse, ainsi que de nouvelles méthodes ParseExact et TryParseExact.

  • La nouvelle méthode String.IsNullOrWhiteSpace indique si une chaîne est null, vide ou se compose uniquement d'espaces blancs. De nouvelles surcharges ont été ajoutées aux méthodes String.Concat et String.Join qui concatènent les membres des collections System.Collections.Generic.IEnumerable<T>.

  • La méthode String.Concat vous permet de concaténer chaque élément dans une collection énumérable sans avoir à convertir les éléments en chaînes.

  • Deux nouvelles méthodes pratiques sont disponibles : StringBuilder.Clear et Stopwatch.Restart.

  • La nouvelle méthode Enum.HasFlag détermine si un ou plusieurs champs de bits ou bits indicateurs sont définis dans une valeur d'énumération. La méthode Enum.TryParse retourne une valeur booléenne qui indique si une valeur entière ou de chaîne a pu être correctement analysée.

  • L'énumération System.Environment.SpecialFolder contient plusieurs nouveaux dossiers.

  • Vous pouvez maintenant copier facilement un flux de données dans un autre avec la méthode CopyTo dans les classes qui héritent de la classe System.IO.Stream.

  • Les nouvelles surcharges de méthode Path.Combine vous permettent de combiner des chemins d'accès de fichier.

  • Les nouvelles interfaces System.IObservable<T> et System.IObserver<T> fournissent un mécanisme généralisé pour les notifications de type Pousser.

  • Les classes System.UIntPtr et System.IntPtr incluent maintenant la prise en charge des opérateurs de soustraction et d'addition.

  • Vous pouvez maintenant activer l'initialisation tardive pour tout type personnalisé en incluant dans un wrapper le type à l'intérieur d'une classe System.Lazy<T>.

  • La nouvelle classe System.Collections.Generic.SortedSet<T> fournit une arborescence autonome qui maintient les données dans un ordre trié après les insertions, les suppressions et les recherches. Cette classe implémente la nouvelle interface System.Collections.Generic.ISet<T>.

  • Les algorithmes de compression pour les classes System.IO.Compression.GZipStream et System.IO.Compression.DeflateStream ont été améliorés afin que les données déjà compressées ne soient plus gonflées. De plus, la restriction de taille de 4 Go pour la compression de flux de données a été supprimée.

  • La nouvelle surcharge de méthode Monitor.Enter(Object, Boolean) prend une référence booléenne et lui affecte de manière atomique la valeur true seulement si l'analyseur est correctement entré.

  • Vous pouvez utiliser la méthode Thread.Yield pour que le thread appelant laisse l'exécution à un autre thread prêt à s'exécuter sur le processeur actuel.

  • La structure System.Guid contient à présent les méthodes TryParse et TryParseExact.

  • La nouvelle énumération Microsoft.Win32.RegistryOptions vous permet de spécifier une clé de Registre volatile qui n'est pas persistante après le redémarrage de l'ordinateur.

  • Les clés de Registre ne sont plus limitées à une longueur maximale de 255 caractères.

Retour au début

Managed Extensibility Framework

Managed Extensibility Framework (MEF) est une nouvelle bibliothèque dans le .NET Framework 4 qui vous aide à générer des applications extensibles et composables. MEF vous permet de spécifier des points où une application peut être étendue, d'exposer des services à offrir à d'autres applications extensibles et de créer des parties en vue de leur utilisation par des applications extensibles. Il facilite également la détectabilité des parties disponibles en fonction des métadonnées, sans que les assemblys pour les parties aient besoin d'être chargés. Pour plus d'informations, consultez Vue d'ensemble de Managed Extensibility Framework et Managed Extensibility Framework. Pour obtenir une liste des types MEF, consultez l'espace de noms System.ComponentModel.Composition.

Retour au début

Calcul parallèle

Le .NET Framework 4 présente un nouveau modèle de programmation pour l'écriture de code multithread et asynchrone qui simplifie considérablement le travail des développeurs d'applications et de bibliothèques. Le nouveau modèle permet aux développeurs d'écrire du code parallèle efficace, à grains fins et évolutif dans un idiome naturel sans devoir utiliser directement des threads ou le pool de threads. Le nouvel espace de noms System.Threading.Tasks et d'autres types associés prennent en charge ce nouveau modèle. PLINQ (Parallel LINQ), qui est une implémentation parallèle de LINQ to Objects, active des fonctionnalités semblables via la syntaxe déclarative. Pour plus d'informations, consultez Programmation parallèle dans le .NET Framework.

Retour au début

Réseau

Les améliorations de réseau sont les suivantes :

Retour au début

Web

La version 4 d'ASP.NET introduit de nouvelles fonctionnalités dans les domaines suivants :

  • Services principaux, notamment une nouvelle API qui vous permet d'étendre la mise en cache, la prise en charge de la compression pour les données d'état de session, ainsi qu'un nouveau gestionnaire de préchargement d'application (fonctionnalité de démarrage automatique).

  • Web Forms, notamment une meilleure intégration de la prise en charge du routage ASP.NET, une prise en charge améliorée des normes Web, une prise en charge des nouveaux navigateurs, de nouvelles fonctionnalités pour les contrôles de données, et de nouvelles fonctionnalités pour la gestion des états d'affichage.

  • Contrôles Web Forms, notamment un nouveau contrôle Chart.

  • MVC, notamment de nouvelles méthodes d'assistance pour les vues, une prise en charge des applications MVC partitionnées, et des contrôleurs asynchrones.

  • Dynamic Data, notamment la prise en charge des applications Web existantes, la prise en charge de l'héritage et des relations plusieurs à plusieurs, de nouveaux attributs et modèles de champs, et un filtrage amélioré des données.

  • Microsoft Ajax, notamment la prise en charge supplémentaire des applications Ajax clientes dans Microsoft Ajax Library.

  • Visual Web Developer, notamment une amélioration d'IntelliSense pour JScript, de nouveaux extraits de code pour la saisie semi-automatique des balises HTML et ASP.NET, et une compatibilité CSS améliorée.

  • Déploiement, notamment de nouveaux outils pour l'automatisation des tâches de déploiement classiques.

  • Multi-ciblage, notamment un meilleur filtrage des fonctionnalités qui ne sont pas disponibles dans la version cible du .NET Framework.

Pour plus d'informations sur ces nouvelles fonctionnalités, consultez Nouveautés dans ASP.NET 4 et Visual Web Developer.

Retour au début

Client

Windows Presentation Foundation (WPF) version 4 contient des modifications et des améliorations dans les domaines suivants :

  • Nouveaux contrôles, notamment Calendar, DataGrid et DatePicker.

  • VisualStateManager prend en charge le changement des états des contrôles.

  • Les fonctions tactiles et de manipulation vous permettent de créer des applications ayant la capacité de recevoir simultanément l'entrée de plusieurs fonctions tactiles sous Windows 7.

  • Les graphiques et l'animation prennent en charge l'arrondi de disposition, Pixel Shader version 3.0, la composition mise en cache et des fonctions d'accélération.

  • La qualité d'affichage du texte est améliorée et celui-ci prend en charge la personnalisation de la couleur du signe insertion et la sélection de couleur dans les zones de texte.

  • La liaison est prise en charge sur la propriété Command d'un élément InputBinding, sur des objets dynamiques et sur la propriété Text.

  • Les applications du navigateur XAML (XBAP) prennent en charge la communication avec la page Web, ainsi que le déploiement en mode confiance totale.

  • Les nouveaux types dans l'espace de noms System.Windows.Shell vous permettent de communiquer avec la barre des tâches Windows 7 et de passer des données au shell Windows.

  • Différentes améliorations ont été apportées au concepteur WPF et Silverlight dans Visual Studio 2010 pour vous aider à créer des applications WPF ou Silverlight.

Pour plus d'informations, consultez Nouveautés de WPF version 4.

Retour au début

Données

ADO.NET

ADO.NET fournit de nouvelles fonctionnalités pour Entity Framework, notamment les objets ignorant la persistance, les fonctions dans les requêtes LINQ et la génération de code de couche objet personnalisé. Pour plus d'informations, consultez Nouveautés dans ADO.NET.

Dynamic Data

Dans ASP.NET 4, Dynamic Data a été amélioré pour vous permettre de générer encore plus rapidement des sites Web pilotés par des données. Notamment :

  • Validation automatique basée sur les contraintes définies dans le modèle de données.

  • Possibilité de modifier facilement le balisage généré pour les champs dans les contrôles GridView et DetailsView à l'aide des modèles de champ qui font partie d'un projet Dynamic Data.

Pour plus d'informations, consultez Nouveautés dans ASP.NET 4 et Visual Web Developer.

services de données WCF

Les services de données ADO.NET ont été renommés en services de données WCF et offrent les nouvelles fonctionnalités suivantes :

  • Liaison de données.

  • Comptage des entités dans un jeu d'entités.

  • Pagination orientée serveur.

  • Projections de requête.

  • Fournisseurs de services de données personnalisés.

  • Transmission en continu de ressources binaires.

Pour plus d'informations, consultez What's New in WCF Data Services.

Retour au début

Windows Communication Foundation

Windows Communication Foundation (WCF) fournit les améliorations suivantes :

  • Activation basée sur la configuration : supprime la nécessité d'utiliser un fichier .svc.

  • Intégration de System.Web.Routing : renforce votre contrôle sur l'URL du service en vous permettant d'utiliser des URL sans extension.

  • Prise en charge de plusieurs liaisons IIS par site : vous permet de disposer de plusieurs adresses de base avec le même protocole sur le même site Web.

  • Service de routage : vous permet d'acheminer des messages en fonction de leur contenu.

  • Prise en charge de WS-Discovery : vous permet de créer et rechercher des services détectables.

  • Points de terminaison standard : points de terminaison prédéfinis qui vous permettent de spécifier uniquement certaines propriétés.

  • Services de workflow : s'intègrent à WCF et WF en fournissant des activités d'envoi et de réception de messages, la capacité à faire correspondre des messages en fonction de leur contenu et un hôte de service de workflow.

  • Fonctionnalités WCF REST :

    • Mise en cache du service HTTP Web : permet la mise en cache des réponses du service HTTP Web.

    • Prise en charge des formats HTTP Web : vous permet de déterminer dynamiquement le format le plus approprié pour une réponse d'une opération de service.

    • Page d'aide des services HTTP Web : la page d'aide automatique qui est fournie à propos des services HTTP Web est semblable à la page d'aide sur le service WCF.

    • Gestion des erreurs HTTP Web : permet aux services HTTP Web de retourner des informations d'erreur en utilisant le même format que l'opération.

    • Prise en charge du JavaScript entre domaines HTTP Web : vous permet d'utiliser JSON Padding (JSONP).

  • Configuration simplifiée : permet de réduire l'effort de configuration requis par un service.

Pour plus d'informations, consultez What's New in Windows Communication Foundation.

Retour au début

Windows Workflow Foundation

Windows Workflow Foundation (WF) fournit des améliorations dans les domaines suivants :

  • Modèle de l'activité de workflow amélioré : la classe Activity fournit l'abstraction de base de comportement de workflow.

  • Options d'activité composite étendues : les flux de travail bénéficient de nouvelles activités de contrôle de flux qui modélisent les structures classiques de contrôle de flux, comme Flowchart, TryCatch et Switch<T>.

  • Bibliothèque d'activités intégrée étendue : les nouvelles fonctionnalités de la bibliothèque d'activités comprennent de nouvelles activités de contrôle de flux, des activités de manipulation de données de membre et des activités de contrôle des transactions.

  • Modèle explicite de données d'activité : de nouvelles options de stockage ou de déplacement de données incluent des arguments directionnels et variables.

  • Options d'hébergement, de persistance et de suivi améliorées : les améliorations d'hébergement incluent l'ajout d'autres options d'exécution des flux de travail, la persistance explicite à l'aide de l'activité Persist, la persistance sans déchargement, la possibilité d'empêcher la persistance à l'aide de zones sans persistance, l'utilisation de transactions ambiantes à partir de l'hôte, l'enregistrement des informations de suivi dans le journal des événements et la reprise des flux de travail en attente à l'aide d'un objet Bookmark.

  • Meilleure capacité à étendre l'expérience du concepteur WF : le nouveau concepteur WF repose sur Windows Presentation Foundation (WPF) et fournit un modèle plus facile à utiliser lors du réhébergement du concepteur WF en dehors de Visual Studio.

Pour plus d'informations, consultez What's New in Windows Workflow Foundation.

Retour au début

Voir aussi

Concepts

Nouveautés de Visual Studio 2010

Nouveautés dans ASP.NET 4 et Visual Web Developer

Nouveautés de WPF version 4

Nouveautés dans ADO.NET

Nouveautés de Visual Basic 2010

Nouveautés de Visual C# 2010

Nouveautés de Visual C++ 2010

Nouveautés de Visual F# 2010

Autres ressources

Nouveaux types et membres dans le .NET Framework 4

What's New in Windows Communication Foundation

What's New in Windows Workflow Foundation

What's New in WCF Data Services