Microsoft .NET

Microsoft. NET est le nom d'un ensemble de produits et de technologies de l'entreprise Microsoft dont la majorité dépendent du framework.



Catégories :

.NET Framework - API Microsoft

Pages similaires :

  • NET Framework. Il s'agit d'un environnement de développement et... Microsoft. NET est un environnement logiciel utilisé pour créer et exécuter différents... (source : microsoft)
  • Microsoft. NET est la plate-forme Microsoft pour les services Web XML.... Windows CE, Windows Embedded,. NET Framework et. NETCompact Framework.... (source : giraudyp.perso.cegetel)
  • NET Framework 1.0 et de Visual Studio. NET sur nos PC à base de Pentium II ou... Et actuellement, Microsoft. NET est en version 3.5, a pris un peu de... (source : blogs.msdn)
. NET Framework
Développeur Microsoft
Dernière version 3.5.21022.8 (le 19 Novembre 2007) [+/−]
Environnement Windows NT 4.0, Windows 98 and above
Type Plate-forme
Licence MS-EULA, BCL under Microsoft Reference License [1]
Site web www. microsoft. com


Microsoft. NET[2] est le nom d'un ensemble de produits et de technologies de l'entreprise Microsoft dont la majorité dépendent du framework. NET, un composant du système d'exploitation Windows constituant un équivalent de machine virtuelle.

Le Framework. Net a été conçu par Anders Hejlsberg, le père de Delphi. Celui-ci a développé entre autre le langage C#[3], qui devient le futur remplaçant de Delphi.

Parmi les composants et produits de Microsoft de catégorie. NET on retrouve :

Principales caractéristiques

Interopérabilité 
Du fait de la nécessité d'interagir entre les nouvelles et les anciennes applications, le framework apporte des moyens pour accéder aux fonctionnalités qui sont implémentés dans les programmes qui s'exécutent en dehors de l'environnement. NET. La possibilité d'accéder aux composants COM est apportée par les espaces de noms System. Runtime. InteropServices et System. EnterpriseServices. L'accès aux autres fonctionnalités est apporté grâce à P/Invoke.
Common Runtime Engine 
Les langages de programmation du framework sont compilés dans un langage intermédiaire connu sous le nom de Common Intermediate Language, ou CIL (anciennement connu sous le nom de Microsoft Intermediate Language, ou MSIL). Ce langage n'est pas interprété, mais compilé à la volée. La combinaison de ces concepts est appelée la Common Language Infrastructure ou CLI. L'implémentation de la CLI est le Common Language Runtime (CLR).
Indépendance du langage 
La spécification du Common Type System (ou CTS) définit la totalité des types de données et structures de programmation supportés par la CLR mais aussi comment ils peuvent ou non interagir entre eux. Par conséquent, le. NET Framework supporte l'échange des instances des types entre les programmes écrit avec n'importe lequel des langages. NET.
Base Class Library 
Les classes de bases (Base Class Library ou BCL), sont une partie de la bibliothèque de classes du framework (Framework Class Library ou FCL). La BCL apporte 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.
Déploiement 
Certains outils sont intégrés pour vérifier que le déploiement des logiciels n'interfère pas avec d'autres logiciels précédemment installés, et qu'ils n'apportent pas de problèmes de sécurité.
Sécurité 
Le Framework a été conçu pour résoudre les problèmes de vulnérabilités tels que les dépassements de buffer et apporte un modèle de sécurité de base pour les applications[réf.  nécessaire].
Portabilité 
Un programme écrit pour utiliser le framework devrait s'exécuter de la même façon sur n'importe quel système pour lequel le framework a été implémenté. Microsoft apporte les implémentations du framework pour Windows, Windows CE et la XBox 360 mais aussi les spécifications de la CLI (ce qui inclus le Common Type System et le Common Intermediate Language), le langage C# et C++/CLI (C++ porté pour la plate-forme. NET) à l'ECMA ainsi qu'à l'ISO, les rendant disponibles comme standard ouverts[réf.  nécessaire]. Ceci rend possible pour n'importe quelle tierce partie de créer des implémentations compatibles du Framework ou des langages. NET sur d'autres plates-formes.

Architecture

Visualisation du fonctionnement de la Common Language Infrastructure (CLI)
Visualisation du fonctionnement de la Common Language Infrastructure (CLI)

CLI

Le cœur du. Net Framework repose dans la Common Langage Infrastructure (ou CLI). Le but de la CLI est de apporter un langage indépendant de la plate-forme, autant pour le développement que pour l'exécution. La CLI inclut des fonctions pour gérer les erreurs, le ramasse-miettes, la sécurité et l'interopérabilité avec les objets COM. L'implémentation Microsoft de la CLI est appelée Common Langage Runtime (ou CLR). Le CLR est composé des 4 parties suivantes :

Assemblies

Le code CIL est hébergé par les assemblage. NET (ou assembly). Les assembly. NET sont enregistrés au format executable portable (PE) courant sur la plate-forme Windows pour tous les fichiers DLL ou EXE. Les assembly sont formées d'un ou plusieurs fichiers et un d'entre eux doit contenir un document appelé manifest. Le manifest[4] contient les metadata de l'assemblage. Le nom complet d'une assembly, (à ne pas confondre avec le nom du fichier sur le disque) contient son nom simple, son numéro de version, sa culture et sa clé publique. La clé publique est unique et est générée à partir du hachage de l'assembly après sa compilation. Par conséquent, deux assembly avec la même clé publique sont garanties d'être identiques. Une clé privé peut aussi être spécifiée. Elle est seulement connue du créateur de l'assembly et peut être utilisée pour le nommage fort de l'assembly. Ceci permet de garantir que l'assembly est du même auteur lors de la compilation d'une nouvelle version.

Metadata

Toute la CIL est autodescriptive. Ceci est réalisé avec métadonnées. NET. La CLR vérifie les métadonnées pour s'assurer que la bonne méthode est appelée. Les métadonnées sont le plus souvent générées par les compilateurs des langages, mais les développeurs peuvent aussi créer leurs propres métadonnées via l'utilisation d'attributs personnalisés. Les métadonnées contiennent aussi des informations à propos des assemblys et sont aussi utilisées pour implémenter la capacité de réflexion du. NET Framework.

Bibliothèques de classes

La BCL (Base Class Library) est quelquefois appelée à tort Framework Class Librairy (FCL) (qui est un ensemble de classes comprenant les namespaces Microsoft. *), est une bibliothèque de classes disponible pour tout les langages utilisant le. NET Framework. Cette bibliothèque apporte des classes qui encapsulent un certain nombre de fonctionnalités courantes telles que la lecture et l'écriture de fichiers, le rendu graphique, les interactions avec les bases de données, la manipulation de documents XML, etc...

Sécurité

Le. NET Framework a son propre mécanisme de sécurité. Ses deux'composants'principaux sont CAS (Code Access Security) et la validation et vérification. CAS est basé sur un système de preuves associées à une assembly spécifique. Typiquement, la preuve est l'origine de l'assembly (Installation en local, téléchargement à partir d'Internet ou d'un Intranet,... ). CAS utilise cette preuve pour déterminer les permissions données au code. Un code peut demander une autorisation pour le code qu'il appelle. La demande d'autorisation sait que le CLR parcours la pile d'appel : chaque assembly de chaque méthode dans la pile est vérifiée. Si au moins une de ces assembly n'est pas autorisée à avoir la permission demandée une erreur est levée.

Lorsque une assembly est chargée, le CLR effectue divers tests. Deux d'entre eux sont la validation et la vérification. Pendant la validation, le CLR vérifie que l'assembly contient un code et des métadonnées valides. Après cela, il vérifie que les tables internes sont correctes. En fait la vérification n'est pas si exacte que cela, elle vérifie juste que le code ne fait rien de non-sure (unsafe). Le code non-sure sera exécuté seulement si l'assembly a la permission'skip verification'.

Le. NET Framework utilise des appdomains (domaine d'application) comme mécanisme pour isoler le code d'un processus. Un appdomain peut être crée et du code chargé ou déchargé d'un appdomain indépendamment des autres appdomains. Les appdomains peuvent aussi être configurés indépendamment avec différents privilèges de sécurité. Ceci peut aider à perfectionner la sécurité d'une application en séparant le code potentiellement non-sure du reste. Cependant, le développeur doit séparer l'application en plusieurs sous-domaines, ceci n'est pas à la charge du CLR.

Gestion de la mémoire

Le CLR du. NET Framework décharge le développeur du fardeau qu'est la gestion de la mémoire (allocation et libération une fois fini) ; Le CLR effectue cette gestion elle-même. L'allocation de la mémoire pour les instances des types. NET (objets) est effectuée de façon continue à partir du tas. Aussi longtemps qu'il existe une référence vers un objet, qu'elle soit directe ou indirecte via un graphe, l'objet est reconnu comme étant utilisé par le CLR. A partir du moment où il n'y a plus de référence sur un objet, et par conséquent qu'il ne peut plus être atteint ou utilisé, il devient un déchet. Cependant, il continue d'utiliser la mémoire qui lui a été allouée. Le. NET Framework possède un composant appelé Ramasse-miettes (ou Garbage Collector en anglais) qui s'exécute périodiquement sur un thread différent de celui de l'application. Il énumère tous les objets inutilisés et récupère la mémoire qui leur était allouée.

Le ramasse-miettes du. NET est non déterministe. Le ramasse-miettes s'exécute uniquement après qu'une certaine quantité de mémoire ait été allouée ou s'il y a un problème de manque de mémoire. Par conséquent, il n'y a pas moyen de déterminer lorsque est-ce que les conditions de déclenchement du ramasse-mette sont satisfaites et celui-ci s'exécute de façon non-déterministe. Chaque application. NET possède un ensemble d'éléments racines qui sont des pointeurs maintenus par le CLR et qui pointent sur les objets du tas managé. Ceci inclut des références aux objets statiques, à ceux définis comme variables locales, aux paramètres définis dans la portée courante du code et enfin aux registres processeurs. [5]. Lorsque le ramasse-miettes s'exécute, il met en pause l'application et pour chaque objet référencé dans la racine, il énumère récursivement tous les objets qu'il peut atteindre et les marque. Il utilise les métadonnées. NET et la réflexion pour découvrir les objets encapsulés par un autre objet et les parcourt récursivement. Il énumère ensuite tous les objets sur le tas (qui étaient originellement alloués de façon continue) en utilisant la réflexion et tous les objets qui n'ont pas été marqués sont reconnus comme des déchets. C'est la phase de marquage. Puisque la mémoire détenue par ces déchets n'a plus d'importance, elle est reconnue comme de l'espace libre. Cependant, ce procédé laisse des bouts de mémoire libres entre chaque objet encore référencé par l'application. Ces objets sont ensuite compactés ensemble en utilisant memcpy pour déplacer ces objets et rendre l'espace-mémoire utilisé à nouveau continu. Chaque pointeur rendu invalide par le déplacement de l'objet sur lequel il pointait et mis à jour avec le nouvel emplacement par le ramasse-miettes. Après ces opérations, l'application poursuit son cours.

En réalité, le ramasse-miettes utilisé par le. NET Framework est basé sur un système de génération. Les objets se voient attribués une génération; les objets nouvellement crées appartiennent à la génération 0. Les objets qui survivent à la première passe du ramasse-miettes se voient promus à la génération 1 et les objets qui survivent à une deuxième passe sont promus à la génération 2. Le. NET n'utilise pas d'autre niveau de génération. Les objets ayant un niveau de génération élevé sont moins fréquemment analysés par le ramasse-miettes que les objets ayant un faible niveau de génération. Cet algorithme perfectionne l'efficacité du ramasse-miettes, car les vieux objets ont tendance à avoir une durée de vie plus longue que les nouveaux objets. Par conséquent, moins d'objets ont besoin d'être analysés et compactés. [6]

Standards et licences

En août 2000, Microsoft, Hewlett-Packard, et Intel ont travaillé sur la standardisation de la CLI et du langage de programmation C#. Depuis décembre 2001, ces deux standards ont été ratifiés par l'ECMA (ECMA 335 et ECMA 334). L'ISO a suivi en avril 2003 (ISO/IEC 23271 et ISO/IEC 23270).

L'ECMA et l'ISO ont demandés à Microsoft ainsi qu'à tous ses partenaires qui détiennent les spécifications de la CLI et de C# de les rendre disponible sous le contrat de licence raisonnable et non discriminatoire Microsoft Reference Licence. En plus de cela, ces compagnies se sont accordés pour apporter ces spécifications sans redevance.

Néanmoins, ceci ne s'applique pas pour la partie du. NET Framework qui n'est pas couverte par l'ECMA et l'ISO, ce qui inclus les Windows Forms, ADO. NET, et ASP. NET. Les spécifications que Microsoft détient dans ces domaines peuvent dissuader les tentatives non-Microsoft d'implémentation du Framework complet.

Le 3 octobre 2007, Microsoft à annoncé qu'une grosse partie du code source des classes de bases du. NET Framework (Ce qui inclus ASP. NET, ADO. NET etWindows Presentation Foundation) seront disponibles avec la sortie de Visual Studio 2008 fin 2007 sous la licence Shared source[1] Les codes sources des autres bibliothèques (Windows Communication Foundation (WCF), Windows Workflow Foundation (WF) et Language Integrated Query (LINQ) seront ajoutés plus tard. Le fait de apporter le code source sous la licence Microsoft Reference Licence veut dire qu'il est apporté à des fin de débogage seulement, principalement pour supporter le débogage des classes de bases sous Visual Studio.

Versions

Microsoft a commencé le développement du. NET Framework à la fin des années 1990 sous le nom de Next Generation Windows Services (NGWS ou Prochaine génération de services Windows). À la fin de l'an 2000 la première version bêta du framework (. Net 1.0) est disponible.

La pile de composants du T Framework
La pile de composants du . NET Framework
Version Version Number Release Date
1.0 1.0.3705.0 05-01-2002
1.1 1.1.4322.573 01-04-2003
2.0 2.0.50727.42 07-11-2005
3.0 3.0.4506.30 06-11-2006
3.5 3.5.21022.8 19-11-2007

. NET Framework 1.0

Première version du. Net Framework. Elle est disponible depuis le 13 février 2002 et fonctionne sur les plates-formes Windows Windows 98, NT 4.0 2000, XP.

. NET Framework 1.1

C'est la première évolution majeure du. NET Framework. Elle est disponibles sous la forme d'un composant redistribuable ou d'un kit de développement et a été publié le 3 avril 2003. C'est aussi une partie de la seconde version de Microsoft Visual Studio. NET (connue sous le nom de Visual Studio. NET 2003). C'est la première version du. NET Framework à faire partie d'un système d'exploitation Windows Windows Server 2003.

Changements depuis la version 1.0

. NET Framework 2.0

Disponible avec Visual Studio 2005, Microsoft SQL Server 2005 et BizTalk 2006.

Changement depuis la version 1.1

. NET Framework 3.0

. NET Framework 3.0, anciennement WinFX[7], inclus des nouvelles APIs de code managé. Elles font parties intégrale des systèmes d'exploitations Windows Vista et de Windows Server 2008. Ces APIs sont aussi disponibles en téléchargement pour Windows XP SP2 et Windows Server 2003. Il n'y a pas de changements majeurs inclus avec cette version. Le. NET Framework 3.0 utilise le Common Language Runtime de la version 2.0 du Framework[8]. Contrairement aux autres évolutions du Framework, il n'y a pas eu d'équivalent à cette version pour le. NET Compact Framework.

Le. NET Framework 3.0 est formé de 4 parties principales :

. NET Framework 3.5

La version 3.5 du. NET Framework est officiellement disponible (en RTM) depuis le 19 Novembre 2007. De même que la version 3.0, la version 3.5 utilise la version 2.0 de la CLR. Cette version du framework inclus le . NET Framework 2.0 SP1 qui ajoute des méthodes et des propriétés aux bibliothèques de bases de la version 2.0. Celles-ci sont nécessaires à certaines fonctionnalités du framework 3.5 telle que LINQ. Ces modifications n'affectent pas les application écrites avec la version 3.5. Un nouveau . NET Compact Framework 3.5 est aussi disponible en tandem avec cette évolution dans l'objectif de apporter de nouvelles fonctionnalités pour les appareils fonctionnant avec Windows Mobile et Windows Embeded CE. Le code source des bibliothèques de classes de bases a été partiellement dévoilé avec cette version sous la licence sources partagées. [1]

Récapitulatif des changements avec la version 3.5

SP1 (Nom de code "Arrowhead")

Le. NET Framework 3.5 SP1 va perfectionner le support pour les applications partiellement connectées et apporte un support pour le modèle MVC de Microsoft ASP. NET. Arrowhead perfectionnera les performances du démarrage à froid (démarrage lorsque aucune application ne nécessitant le. NET Framework n'a encore été lancée) à hauteur de 25 à 40%. Cette mise à jour accélérera aussi certains effets WPF telles que les ombres, mais également les performances générales. Un ensemble d'autres contrôles WPF seront aussi disponibles, et surtout un DataGrid

Développement futur

Microsoft n'a pas encore rendu public de façon précise ses plans de développement des prochaines éditions du. NET Framework, mais quelques informations générales ont été révélées. Le. NET Framework intégrera un meilleur support pour le traitement parallèle qui cible les processeurs multicores ou les systèmes distribués[9]. Il intégrera PLINQ (Parallel LINQ) [10], une implémentation parallèle du moteur [LINQ] et Task Parallel Library qui propose des méthodes de traitements parallèles[11].

. NET vs. Java et Java EE

La CLI et C# ont plusieurs similarités avec la JVM de Sun et Java. Les deux sont basés sur une machine virtuelle qui cache les détails matériels de l'ordinateur sur lequel leurs programmes s'exécutent. Les deux utilisent leur propre langage intermédiaire bytecode Common Intermediate Language (CIL, anciennement MSIL) pour Microsoft et Java byte-code pour Sun. Avec. NET, le byte-code est systématiquement compilé avant l'exécution, soit juste-à-temps (JIT), ou en avance en utilisant l'utilitaire ngen. exe. Avec Java, le byte-code est soit interprété, soit compilé en avance ou encore compilé juste-à-temps. Les deux fournissent des bibliothèques de classes extensibles qui résolvent plein de problèmes de programmation courants, et les deux résolvent énormément de problèmes de sécurités par la même approche. Les espaces de noms apportés par le. NET Framework ressemblent énormément au package de l'API Java EE autant dans le style que dans l'invocation.

. NET dans sa forme complète (à savoir l'implémentation Microsoft) est aujourd'hui disponible entièrement pour Windows et partiellement pour Linux et Mac, alors que Java est entièrement disponible sur quasi toutes les plates-formes. Depuis le début,. NET supporte plusieurs langages et demeure indépendant de la plateforme de telle sorte que tout le monde peut le réimplémenter sur d'autres plates-formes (l'implémentation Microsoft cible seulement Windows, Windows CE et la Xbox360). La plate-forme Java a été originellement construite pour supporter seulement le langage Java, mais sur plusieurs systèmes d'exploitations avec le slogan "Write once, run anywhere" (écrit une fois, tourne n'importe où). D'autres langages ont été développés pour la machine virtuelle java, mais ils ne sont pas très utilisés. L'implémentation Java de Sun est open source (ce qui inclut la bibliothèque de classes, le compilateur, la JVM mais aussi quelques autres outils associés à la plate-forme Java) sous la licence GNU GPL.

La troisième partie du projet Mono sponsorisée par Novell a été développée comme étant une implémentation open-source du. NET Framework telle que définie par les standards de l'ECMA. L'implémentation Mono a pour but de fonctionner sur Linux, Solaris, Mac OS, BSD, HP-UX et Windows. Mono inclut le runtime, la bibliothèque de classes, les compilateurs pour VB. NET et C#. La version actuelle supporte quasi toutes les APIs de la version 1.1 du. NET de Microsoft et quasi 96% des APIs de la version 2.0 (du. NET de Microsoft). L'implémentation des autres bibliothèques du. NET 3.0 et 3.5 est en cours. L'implémentation de C# 3.0 et de Linq en sont à leur début.

Inconvénients

Implémentations alternatives

Le NET Framework de Microsoft est l'implémentation dominante des technologies. NET. D'autres implémentations pour des parties du Framework existent. Puisque le moteur d'exécution est décrit par une spécification de l'ECMA et de l'ISO, les autres implémentations ne sont pas génées par des problèmes de copyright. Il est plus difficile de développer des alternatives aux bibliothèques de classes de bases (BCL) qui ne sont pas décrites dans un standard ouvert et peuvent être sujet à des problèmes de copyright. De plus certaines parties des BCL ont des fonctionnalités et un comportement spécifiques à Windows qui peuvent être problématiques lors de l'implémentation sur des machines ne fonctionnant pas sous Windows.

Des implémentations alternatives de certaines parties du framework sont listées ici :

Références

Voir aussi

Liens externes

Recherche sur Google Images :



"NET Framework, ouvrez Windows ..."

L'image ci-contre est extraite du site msdn.microsoft.com

Il est possible que cette image soit réduite par rapport à l'originale. Elle est peut-être protégée par des droits d'auteur.

Voir l'image en taille réelle (904 x 559 - 80 ko - gif)

Refaire la recherche sur Google Images

Recherche sur Amazone (livres) :

Chercher sur Amazone Refaire la recherche


Ce texte est issu de l'encyclopédie Wikipedia. Vous pouvez consulter sa version originale dans cette encyclopédie à l'adresse http://fr.wikipedia.org/wiki/.NET_Framework.
Voir la liste des contributeurs.
La version présentée ici à été extraite depuis cette source le 17/11/2008.
Ce texte est disponible sous les termes de la licence de documentation libre GNU (GFDL).
La liste des définitions proposées en tête de page est une sélection parmi les résultats obtenus à l'aide de la commande "define:" de Google.
Cette page fait partie du projet Wikibis.
Accueil Recherche Aller au contenuDébut page
ContactContact ImprimerImprimer liens d'évitement et raccourcis clavierAccessibilité
Aller au menu