Microsoft .NET - Définition

Source: Wikipédia sous licence CC-BY-SA 3.0.
La liste des auteurs de cet article est disponible ici.

Introduction

Microsoft .NET
Logo microsoft net.png
Développeur Microsoft
Dernière version [Microsoft 4.0.30319.1 (4.0)] [+/-]
Environnement Windows NT 4.0, Windows 98 et supérieurs
Type Plate-forme
Licence MS-EULA, BCL sous Microsoft Reference License
Site Web www.microsoft.com/net

Microsoft .NET est le nom donné à un ensemble de produits et de technologies informatiques de l'entreprise Microsoft pour rendre des applications facilement portables sur Internet. Le but est de fournir un serveur web local permettant de gérer des services et évitant d'externaliser des données privées sur un service web de stockage ou un hébergement web tiers.

.NET se base sur plusieurs technologies :

  • des protocoles de communication basées sur le Framework .NET et non plus sur les modèles COM ou OLE ;
  • un langage plus simple que C/C++, VB.NET, Java, J# comme le langage C# ;
  • une bibliothèque compatible Framework .NET et non plus MFC, GDI… ;
  • une machine virtuelle basée sur la CLI multi-langage ;
  • MSBuild : un outil de gestion de projet avec plusieurs compilateurs ;
  • Visual Studio : un IDE de développement utilisant la métaprogrammation et compatible avec Visual C++ ;
  • Windows Live ID, Framework .NET : un ensemble de bibliothèques de haut niveau ;
  • une portabilité pour les systèmes d'exploitation Windows et Windows Mobile ;
  • des composants facilitant le développement de services (MapPoint) et d'applications locales ou web (ASP.NET).

Le Framework .NET a été conçu par Anders Hejlsberg, le père de Delphi. Celui-ci a développé entre autres le langage C#.

Principales caractéristiques de .NET

Interopérabilité 
Du fait de la nécessité de pouvoir interagir avec les anciennes applications, le framework fournit des moyens pour accéder aux fonctionnalités en dehors de l'environnement .NET. La possibilité d'accéder aux composants COM est fournie par les espaces de noms System.Runtime.InteropServices et System.EnterpriseServices. L'accès aux autres fonctionnalités est fourni grâce à P/Invoke.
Common Runtime Engine 
Les langages de programmation du framework sont compilés dans un langage intermédiaire appelé Common Intermediate Language, ou CIL (anciennement connu sous le nom de Microsoft Intermediate Language, ou MSIL). Ce langage n'est pas interprété, mais subit une compilation à la volée et une compilation au niveau de la Common Language Runtime (CLR). La CLR est l'implémentation de la CLI.
Indépendance du langage 
La spécification du Common Type System (ou CTS) définit l'ensemble des types de données et structures de programmation supportés par la CLR ainsi que leurs interactions. Par conséquent, le .NET Framework supporte l'échange des instances des types entre les programmes écrits dans un des langages .NET.

Avantages et inconvénients

  • Microsoft ne fournit les implémentations du framework .NET que pour ses systèmes d'exploitations tel que Windows, Windows CE et la Xbox 360. Le portage sur d'autres systèmes d'exploitations est possible car les spécifications de la CLI sont disponibles (mais pas des frameworks). Les classes de bases Base Class Library (BCL), sont une partie de la bibliothèque de classes du framework (Framework Class Library ou FCL). La BCL fournit des classes qui encapsulent un certain nombre de fonctions courantes, comme la lecture et l'écriture de fichiers, le rendu graphique, l'interaction avec les bases de données, la manipulation de documents XML, etc. Le code source de la BCL a été rendu disponible pour faciliter le débugage des sessions dans Visual Studio 2008.
  • La totalité du code source du framework n'est pas encore disponible. Il est actuellement possible de télécharger une bonne partie de la source du framework.
  • .NET ne fonctionnant pleinement que sous Windows, il est très difficile de changer de système d'exploitation ce qui crée une relation de dépendance au seul fournisseur Microsoft. Cependant, le projet Mono essaie de pallier ce problème.
  • Les applications fonctionnant avec du code managé en utilisant les environnements tels que le CLR du Framework Microsoft ou la JVM Java ont tendance à nécessiter plus de ressources systèmes que des applications fournissant les mêmes fonctionnalités mais qui accèdent plus directement aux ressources. Cependant, certaines applications ont montré de meilleures performances en utilisant le .NET Framework qu'en utilisant leur version en code natif. Ceci peut être attribué aux optimisations du runtime rendu possible par un tel environnement, à l'utilisation de fonctions performantes au sein du framework, à la compilation à la volée du code managé ou encore à certains aspects de la CLR.
  • Les langages compilés à la volée produisent du code qui peut être plus facilement rétro-analysé que s'ils étaient écrits en code natif, par conséquent il y a un risque en ce qui concerne la perte de secrets et le risque de passer outre les mécanismes de contrôle de licence. Plusieurs techniques pour rendre le code impénétrable ont déjà été développées pour empêcher ça. Visual Studio 2005 inclut un tel outil (dotfuscator).
  • Dans un environnement managé, les exécutions récurrentes du ramasse-miettes pour récupérer la mémoire suspendent l'exécution de l'application pour un intervalle de temps imprévisible (typiquement quelques millisecondes). Ceci rend l'environnement non utilisable pour certaines applications qui doivent répondre dans des intervalles de temps garantis (système temps réel).
  • Puisque le framework n'est pas porté sur les anciennes versions de Windows, une application utilisant un framework doit vérifier qu'il est présent, et s'il n'est pas présent, l'application doit guider l'utilisateur pour l'installer. Cette contrainte peut dissuader certains utilisateurs d'utiliser l'application.
  • Les versions récentes du framework (3.5 et supérieures) ne sont pas pré-installées quelle que soit la version de Windows. Certains développeurs sont dérangés par la taille importante du framework (environ 54 Mio pour le .NET 3.0 et 197 Mio pour la version 3.5) et par le manque de fiabilité des installateurs. Ce problème est en partie résolu par l'introduction d'une version allégée .Net Client Profile, et qui ne pèse que 26,5 Mio.
Page générée en 0.109 seconde(s) - site hébergé chez Contabo
Ce site fait l'objet d'une déclaration à la CNIL sous le numéro de dossier 1037632
A propos - Informations légales
Version anglaise | Version allemande | Version espagnole | Version portugaise