Contact - A propos
Skip Navigation Links.

Présentation de la plateforme .NET

Descendre ! 

Qu'est-ce que .NET ?

.NET (à prononcer "dotnet") représente la nouvelle plateforme de développement logiciel de Microsoft qui ouvre la voie sur une nouvelle ère dans l'histoire du logiciel. .NET représente en fait le successeur de COM, Win32, C++, VB et ASP.
Nous pouvons considérer deux dates importantes dans l'histoire de .NET:
- Le 07 Novembre 2000, date à laquelle la plateforme a été dévoilée.
- Le 22 Novembre 2000, date de disponibilité de la première version de Visual Studio .NET et du .NET Framework.
La version 2.0 de .NET est prévue pour l'automne 2005.
Visual Studio .NET est un ensemble d'outils qui permet de développer des applications web et Windows.
Le .NET Framework est un ensemble de classes qui a pour but de faciliter le travail des développeurs. Le .NET Framework, comprend également un moteur d'exécution nommé CLR (Common Language Runtime).
Pour fixer les idées, la CLR est comparable à une machine virtuelle Java.
Nous reviendrons sur une partie consacrée à la CLR et nous aurons l'occasion de découvrir progressivement les classes du NET Framework. Nous verrons également que l'un des principaux points forts de .NET est de simplifier considérablement le développement d'application.

La plateforme .NET en bref

La plateforme .NET, c'est donc un ensemble de classes de bases utilisables dans nos programmes. Il existe actuellement environ 1400 classes. Le .NET Framework 2.0 prévoit 1500 nouvelles classes et améliorations des classes actuelles.
La technologie .NET, c'est aussi un ensemble extensible de langages de développement. La nouvelle grande star est le C#, langage standardisé par l'ECMA. Nous utiliserons le C# dans nos exemples. Les langages C#, VB.NET, J# et C++ représentent les principaux langages de la plateforme .NET.
Le 22 Novembre 2000, Microsoft a également proposé une standardisation du CLI (Common Langage Infrastructure) à l'ECMA. Le CLI représente la spécification à respecter pour réaliser la couche logicielle responsable de l'exécution des applications .NET. Par exemple, la CLR représente l'implantation Microsoft de la spécification CLI. La spécificité de cette couche logicielle est de ne connaître qu'un langage, le CIL (Common Intermediate Language). Le langage CIL est rapidement présenté dans l'article sur les assemblages.

Les concepts novateurs de .NET

Nous présentons ici quelques nouveaux concepts apportés par .NET. Je vous présenterai d'autres innovations dans mes futurs articles.

Un modèle unique pour le développement d'applications web et Windows
Avec .NET, on ne fait plus de différences entre le développement Web et le développement classique Windows.
Par exemple, il y a un mois j'ai créé une application Windows. Aujourd'hui, je souhaite créer une application Web. Je me rends compte qu'une partie du code C# de mon application Windows pourrait servir dans mon application Web. Que faire ?
Je tente de faire un copier-coller du code dont j'ai besoin et je teste. Que ce passe-t-il ?! Ca marche, c'est magique !
Enfin, ça fait surtout gagner du temps.

L'interaction entre les langages
Nous voici maintenant face à un problème qui peut donner lieu à de véritables drames humains !
J'ai récemment rejoint Toto et son équipe de développeurs. Comme nous le savons tous, Toto aime bien mettre la pagaille. Toto ne code qu'en VB mais j'ai réussi à le convaincre d'apprendre le VB.NET. J'ai ensuite tenté de le convertir au C# mais là c'était trop pour lui, je me suis violemment fait jeter :-/
Heureusement, j'ai bien calculé mon coup. En effet, le fait que Toto code ses modules en VB.NET (ou avec un langage de la plateforme .NET) ne pose aucun problème. Notre application fonctionnera très bien avec mes modules en C# et ses modules en VB.NET. Pourquoi ? Rappelons que la CLR ne connaît que le langage CIL. Donc, les compilateurs VB.NET et C# ne produisent que du code CIL. Autrement dit, les codes issus de la compilation d'un programme VB.NET et d'un programme C# sont absolument identiques. Désormais, Toto n'embêtera plus personne.

La création du code durant l'exécution
Avec .NET, il est possible de fabriquer à l'exécution (instruction par instruction), du code écrit en langage CIL et directement exécutable par la CLR. Nous reviendrons plus tard sur ce point.

Voici d'autres nouveautés (la liste est loin d'être exhaustive) que l'on développera après avoir défini de nombreuses notions (assemblage, culture, délégation, domaine d'application, abstraction, attributs):

  • Exécuter simultanément plusieurs versions d'une application
  • Étendre les langages de programmation
  • L'isolation des applications à l'exécution
  • Appeler indirectement des méthodes
  • Création d'unités de déploiement infalsifiables

Quels types d'applications peut-on créer avec .NET ?

Il est possible de développer 5 types d'applications avec .NET:

Voici donc une première présentation de .NET. Cette pésentation est volontairement très succinte dans un souci de clareté. Nous continuerons à découvrir .NET dans les prochains articles. Cependant, n'hésitez pas à m'écrire si quelque chose vous semble obscur.

Présentation complète de la version 1.1 du .NET Framework

Lundi 30 mai 2005

.NET 2.0

Depuis Novembre 2005, la version 2.0 de la plate-forme .NET est disponible. Comme prévu, de nombreuses nouveautés et améliorations ont été apportées à cette nouvelle version de la plate-forme.

Les nouveautés du langage C# 2.0

  • Les génériques représentent la nouveauté phare de la seconde version du langage C#. Les génériques sont conceptuellement proche des templates C++. Ils permettent de définir des modèles non typés afin de favoriser la ré-utilisation du code. Démo: webcasts sur les generics.

  • C# 2.0 permet d'éviter les collisions entre certains éléments. Pour éviter les collisions entre espaces de noms et alias, nous disposons de la notion de qualificateur d'alias d'espace de noms avec la syntaxe "::". Pour éviter les conflits entre des noms d'espaces de noms et des noms de ressources, on utilisera un qualificateur dit global "global::". Enfin, grâce aux alias dits externes (extern alias), il est possible d'utiliser simultanément deux types déclarés dans deux assemblages différents.
  • Le compilateur C# 2.0 fournit trois nouvelles options pour le mécanisme de signature retardée: /delaysign, /keycontainer et /keyfile. Ce mécanisme, qui existait déjà dans la première version de .NET, permet d'authentifier des assemblages au dernier moment (i.e. juste avant leur déploiement).
  • Toujours dans le rayon compilation, les nouvelles directives #pragma warning disable et #pragma warning restore permettent respectivement de désactiver et d'activer les avertissements du compilateur.
  • Le compilateur C# 2.0 est maintenant capable d'inférer les bons types délégués lors de la création d'un délégué. Un exemple de cette nouveauté est donné dans l'article sur les délégués.
  • Avec C# 2.0, il est possible d'étaler un type sur plusieurs fichiers sources grâce au mot-clé partial. Référence sur les MSDN: C# Programmer's Reference.
  • C# 2.0 permet d'assigner une visibilité différente aux accesseurs d'une propriété ou d'un indexeur. Par exemple, on pourra déclarer une propriété public et restreindre son accesseur set en le déclarant private.
  • C# 2.0 permet de définir des classes statiques. Une classe statique ne contient que des membres statiques et ne peut être instanciée car elle ne possède pas de constructeur d'instance. De plus, on ne peut pas dériver d'une classe statique.
  • Avec le mot-clé fixed, C# 2.0 permet de créer des tableaux de taille fixe d'éléments de type primitifs. Notons qu'il est nécessaire de compiler en mode unsafe lorsqu'on utilise le mot-clé fixed. En effet, le tableau n'est pas du type System.Array mais c'est un pointeur vers le type primitif.

Remonter en haut de la page 

© C-O 2005-2008