Vous êtes sur la page 1sur 6

27/10/2011

Microsoft .NET - Wikipdia

Microsoft .NET
Microsoft .NET est le nom donn Microsoft .NET un ensemble de produits et de technologies informatiques de l'entreprise Microsoft pour rendre des Dveloppeur Microsoft applications Dernire [Microsoft 4.0.30319.1 (4.0)] (12 Avril 2010) [+/facilement version (//fr.wikipedia.org/w/index.php? portables sur title=M od%C3%A8le:Derni%C3%A8re_version_stable/M icrosoft_.NET&action=edit) ] Internet. Le but est de fournir un Environnement Windows NT 4.0, Windows 98 et suprieurs serveur web local Type Plate-forme permettant de Licence MS-EULA, BCL sous Microsoft Reference License grer des services Site web www.microsoft.com/net (http://www.microsoft.com/net/) et vitant d'externaliser des donnes prives sur un service web de stockage ou un hbergement web tiers. .NET se base sur plusieurs technologies : des protocoles de communication bass sur le Framework .NET et non plus sur les modles COM ou OLE ; une bibliothque compatible Framework .NET et non plus MFC, GDI ; une machine virtuelle base sur la CLI multi-langage ; MSBuild : un outil de gestion de projet avec plusieurs compilateurs ; Visual Studio : un IDE de dveloppement utilisant la mtaprogrammation et compatible avec Visual C++ ; Windows Live ID, Framework .NET : un ensemble de bibliothques de haut niveau ; une portabilit pour les systmes d'exploitation Windows et Windows Mobile ; des composants facilitant le dveloppement de services (MapPoint) et d'applications locales ou web (ASP.NET). Le Framework .NET a t conu par Anders Hejlsberg, le pre de Delphi. Celui-ci a dvelopp entre autres le 2 langage C# .
1

Sommaire
1 Principales caractristiques de .NET 2 Architecture 2.1 CLI, CIL et CLR 2.1.1 CLR et Scurit 2.1.2 CLR et Gestion de la mmoire 3 Inconvnients fr.wikipedia.org/wiki/Microsoft_.NET
1/6

27/10/2011

Microsoft .NET - Wikipdia

3 Inconvnients 4 Notes et rfrences 5 Voir aussi 5.1 Articles connexes 5.2 Liens externes

Principales caractristiques de .NET


Interoprabilit Du fait de la ncessit de pouvoir interagir avec les anciennes applications, le framework fournit des moyens pour accder aux fonctionnalits en dehors de l'environnement .NET. La possibilit d'accder aux composants COM est fournie par les espaces de noms System.Runtime.InteropServices et System.EnterpriseServices. L'accs aux autres fonctionnalits est fourni grce P/Invoke. Common Runtime Engine Les langages de programmation du framework sont compils dans un langage intermdiaire appel Common Intermediate Language, ou CIL (anciennement connu sous le nom de Microsoft Intermediate Language, ou MSIL). Ce langage n'est pas interprt, mais subit une compilation la vole et une compilation au niveau de la Common Language Runtime (CLR). La CLR est l'implmentation de la CLI. Indpendance du langage La spcification du Common Type System (ou CTS) dfinit l'ensemble des types de donnes et structures de programmation supports par la CLR ainsi que leurs interactions. Par consquent, le .NET Framework supporte l'change des instances des types entre les programmes crits dans un des langages .NET. Version 1.0 1.1 2.0 3.0 Numro de version 1.0.3705.0 Date de sortie 13 fvrier 2002 Visual Studio Visual Studio .NET 2002 Visual Studio .NET 2003 Visual Studio 2005 Par dfaut dans Windows Windows XP versions Tablette et Media Center Windows Server 2003 Windows Server 2003 R2 Windows Vista, Windows Server 2008 Visual Studio 2008 Visual Studio 2010 Visual Studio '11' (Nom de code) Windows 7, Windows Server 2008 R2 Windows Server 2008 R2 SP1 Windows 8, Windows Server 8

1.1.4322.573 24 avril 2003 2.0.50727.42 7 novembre 2005 3.0.4506.30 6 novembre 2006 19 novembre 2007 12 avril 2010 13 septembre 2011 (Developer Preview)

3.5 4.0 4.5

3.5.21022.8 4.0.30319.1 4.5

fr.wikipedia.org/wiki/Microsoft_.NET

2/6

27/10/2011

Microsoft .NET - Wikipdia

Architecture
CLI, CIL et CLR
Le framework .Net repose sur la Common Langage Infrastructure (ou CLI). Son but est de fournir un langage indpendant de la plate-forme, aussi bien pour le dveloppement que pour l'excution. Elle inclut des fonctions pour grer les erreurs, le ramasse-miettes, la scurit et l'interoprabilit avec les objets COM. L'implmentation de la CLI par Microsoft est appele Common Language Runtime (ou CLR). Voir aussi : Dynamic Language Runtime et Machine virtuelle de haut niveau. CLR et Scurit
Visualisation du fonctionnement de la La scurit est gre par le CAS (Code Access Security). CAS Common Language Infrastructure (CLI) est bas sur un systme de preuves associes une assembly particulire. La preuve est l'origine de lassembly (Installation en local, tlchargement partir d'Internet ou d'un Intranet, ). CAS utilise cette preuve pour dterminer les permissions donnes au code. Un code peut demander une autorisation pour le code qu'il appelle. La demande d'autorisation sait quand le CLR parcourt la pile d'appel : chaque assembly de chaque mthode dans la pile est vrifie. Si au moins une de ces assembly n'est pas autorise avoir la permission demande une exception est leve.

Quand une assembly est charge, le CLR effectue divers tests dont la validation et la vrification. Pendant la validation, le CLR vrifie que lassembly contient un code et des mtadonnes valides. Aprs, il vrifie que les tables internes sont correctes. La vrification vrifie que le code ne fait rien de dangereux. Le code non-sr sera excut uniquement si lassembly a la permission skip verification. Le .NET Framework utilise des appdomains (domaine d'application) comme mcanisme pour isoler le code d'un processus. Un appdomain peut tre cr et du code charg ou dcharg d'un appdomain indpendamment des autres appdomain. Les appdomains peuvent aussi tre configurs indpendamment avec diffrents privilges de scurit. Ceci peut aider amliorer la scurit d'une application en sparant le code potentiellement dangereux du reste. Cependant, le dveloppeur doit sparer l'application en plusieurs sousdomaines, ce qui n'est pas la charge du CLR. CLR et Gestion de la mmoire Le CLR prend en charge la gestion de la mmoire (allocation et libration). L'allocation de la mmoire pour les instances des types .NET (objets) est effectue de faon continue partir du tas. Aussi longtemps qu'il existe une rfrence vers un objet (directe ou indirecte via un graphe), l'objet est considr comme tant utilis par le CLR. Ds qu'il n'y a plus de rfrence sur un objet (ie, il ne peut plus tre ni atteint ni utilis), le ramasse-miettes en anglais : Garbage Collector, qui s'excute priodiquement sur un processus lger diffrent de celui de l'application, passe librer l'objet de la mmoire. Le ramasse-miettes du .NET est non-dterministe : il s'excute seulement aprs qu'une certaine quantit de
fr.wikipedia.org/wiki/Microsoft_.NET 3/6

27/10/2011

Microsoft .NET - Wikipdia

mmoire a t alloue ou s'il y a un dfaut de mmoire. Il n'y a pas moyen de dterminer quand les conditions de dclenchement du ramasse-miettes sont satisfaites. Chaque application .NET possde un ensemble d'lments racines qui sont des pointeurs maintenus par le CLR et qui pointent sur les objets du tas grs. Ceci inclut des rfrences aux objets statiques, ceux dfinis comme variables locales, aux paramtres dfinis dans la 3 porte courante du code et enfin aux registres processeurs . Quand le ramasse-miettes s'excute, il suspend l'application et, pour chaque objet rfrenc dans la racine, il numre rcursivement, grce aux mtadonnes .NET et la rflexion, tous les objets qu'il peut atteindre et les marque. Il numre ensuite tous les objets sur le tas (qui taient initialement allous de faon continue) en utilisant la rflexion ; tous les objets qui n'ont pas t marqus sont alors considrs comme des dchets. C'est la phase de marquage. Cependant, ce procd laisse des morceaux de mmoire libre entre les objets encore rfrencs ; ces objets sont ensuite compacts en utilisant memcpy pour rendre l'espace mmoire utilis nouveau continu. Les adresses des pointeurs sont mises jour en consquence. Aprs ces oprations, l'application reprend son excution. En ralit, le ramasse-miettes est bas sur un systme de gnration. Chaque objet se voit affect une gnration ; les objets nouvellement crs appartiennent la gnration 0. Les objets qui restent aprs la premire passe du ramasse-miettes se voient promus la gnration 1 et les objets qui restent aprs une deuxime passe sont promus la gnration 2 (niveau maximum). Les objets ayant un niveau de gnration lev sont moins souvent analyss par le ramasse-miettes que les objets ayant un faible niveau de gnration. Cet algorithme espre amliorer l'efficacit du ramasse-miettes, car les vieux objets ont tendance avoir une 4 dure de vie plus longue que les nouveaux objets .

Inconvnients
Microsoft ne fournit le framework .NET que pour ses systmes d'exploitations tel que Windows, Windows CE et la Xbox 360. Le portage sur d'autres systmes d'exploitations est possible car les spcifications de la CLI sont disponibles (mais pas des frameworks). Les classes de bases Base Class Library (BCL), sont une partie de la bibliothque 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 donnes, la manipulation de documents XML, etc. Le code source de la BCL a t rendu disponible pour faciliter le dbugage des sessions dans Visual Studio 2008. 5 La totalit du code source du framework n'est pas encore disponible . Il est actuellement possible de 6 tlcharger une bonne partie de la source du framework . .NET ne fonctionnant pleinement que sous Windows, il est trs difficile de changer de systme d'exploitation ce qui cre une relation de dpendance au seul fournisseur Microsoft. Cependant, le projet Mono essaie de pallier ce problme. Les applications fonctionnant avec du code manag en utilisant les environnements tels que le CLR du Framework Microsoft ou la JVM Java ont tendance ncessiter plus de ressources systmes que des applications fournissant les mmes fonctionnalits mais qui accdent 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 7 vole du managed code ou encore certains aspects de la CLR . Les langages compils la vole produisent du code qui peut tre plus facilement rtro-analys que s'ils taient crits en code natif [rf. ncessaire], par consquent il y a un risque en ce qui concerne la perte de secrets et le risque de passer outre les mcanismes de contrle de licence. Plusieurs techniques pour rendre le code impntrable ont dj t dveloppes pour l'empcher. Visual Studio 2005 inclut un tel outil (dotfuscator). Puisque le framework n'est pas port sur les anciennes versions de Windows, une application utilisant un framework doit vrifier qu'il est prsent, et s'il n'est pas prsent, l'application doit guider l'utilisateur pour
fr.wikipedia.org/wiki/Microsoft_.NET 4/6

27/10/2011

Microsoft .NET - Wikipdia

l'installer. Cette contrainte peut dissuader certains utilisateurs d'utiliser l'application. Les versions rcentes du framework (3.5 et suprieures) ne sont pas pr-installes quelle que soit la version de Windows. Certains dveloppeurs sont drangs 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 problme 8 est en partie rsolu par l'introduction d'une version allge .Net Client Profile , et qui ne pse que 26,5 Mio.

Notes et rfrences
1. prononc dotte nette en anglais car dot est l'quivalent anglophone du mot point. 2. (prononc C charpe ) 3. (en)Garbage Collection: Automatic Memory Management in the Microsoft .NET Framework (http://msdn.microsoft.com/msdnmag/issues/1100/GCI/) . Consult le 21 novembre 2007 4. (en)Garbage CollectionPart 2: Automatic Memory Management in the Microsoft .NET Framework (http://msdn.microsoft.com/msdnmag/issues/1200/GCI2/default.aspx) . Consult le 21 novembre 2007 5. [1] (http://blogs.msdn.com/pascal/archive/2007/10/03/le-source-code-du-framework-net-sera-enfindisponible.aspx) 6. [2] (http://www.microsoft.com/downloads/details.aspx?FamilyId=8C09FD61-3F26-4555-AE173121B4F51D4D&displaylang=en) 7. http://www.codeproject.com/KB/cross-platform/BenchmarkCppVsDotNet.aspx 8. http://blogs.msdn.com/bclteam/archive/2008/05/21/net-framework-client-profile-justin-van-patten.aspx

Voir aussi
Articles connexes
Implmentation Microsoft Framework .NET ADO.NET ASP.NET Managed code Common Language Runtime Common Intermediate Language Common Type System Langages .NET Languages Common Language Infrastructure C++/CLI C# F# Microsoft Small Basic IronPython J# JScript .NET Visual Basic .NET Outils Microsoft Visual C# Borland Delphi .NET Microsoft Visual Studio
fr.wikipedia.org/wiki/Microsoft_.NET 5/6

27/10/2011

Microsoft .NET - Wikipdia

Windows PowerShell Les implmentations Open Source : Mono DotGNU Portable.NET

Liens externes
Microsoft .NET - Site MSDN (http://msdn.microsoft.com/fr-fr/netframework/default.aspx) Contenu sur la plate-forme .NET de Microsoft (fr) Catgorie .NET (http://www.dmoz.org/World/Fran%c3%a7ais/Informatique/Programmation/DotNet/) de lannuaire dmoz (fr) La rubrique Dotnet de developpez.com (http://dotnet.developpez.com/) Articles, Cours, FAQs, sources et critiques de livres disponibles. (fr) Dotnet-France.com (http://www.dotnet-france.com/) Grande communaut .NET francophone (cours, tutoriels, articles, blogs, prparations aux certifications, forums, ...).
(fr)

Ce document provient de http://fr.wikipedia.org/w/index.php?title=Microsoft_.NET&oldid=71269660 . Dernire modification de cette page le 20 octobre 2011 18:49. Droit d'auteur : les textes sont disponibles sous licence Creative Commons paternit partage lidentique ; dautres conditions peuvent sappliquer. Voyez les conditions dutilisation pour plus de dtails, ainsi que les crdits graphiques. En cas de rutilisation des textes de cette page, voyez comment citer les auteurs et mentionner la licence. Wikipedia est une marque dpose de la Wikimedia Foundation, Inc., organisation de bienfaisance rgie par le paragraphe 501(c)(3) du code fiscal des tats-Unis.

fr.wikipedia.org/wiki/Microsoft_.NET

6/6

Vous aimerez peut-être aussi