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.
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)
|
|||
---|---|---|---|
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 :
- le Framework. NET, un composant logiciel développé à la base pour le système d'exploitation Windows et nécessaire à la majorité des produits. NET.
- . NET Passport
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
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 :
- Common Type System (CTS)
- Common Language System (CLS)
- Metatdata
- Virtual Execution System (VES)
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 appdomain
s (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 appdomain
s. Les appdomain
s 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.
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
- Support intégré pour les contrôles ASP. NET. (Il fallait anciennement installer un composant supplémentaire. )
- Modification de la sécurité : Autorise les assemblages Windows Forms à s'exécuter dans un environnement de confiance modéré à partir d'Internet et ajoute la notion de de Code Acces Security dans les applications ASP. NET.
- Support pour ODBC et les bases de données Oracles. (Il fallait anciennement installer un composant supplémentaire. )
- . NET Compact Framework - Il s'agit d'une version du. NET Framework compatible avec Windows CE
- Support pour IPv6
- Divers changements dans les API
. NET Framework 2.0
Disponible avec Visual Studio 2005, Microsoft SQL Server 2005 et BizTalk 2006.
- Le. NET Framework 2.0 en version redistribuable est disponible gratuitement sur le site de Microsoft et a été publié le 22 janvier 2006.
- Le kit de développement (SDK) peut être téléchargé gratuitement sur le Site de Microsoft.
- Il est inclus avec Visual Studio 2005 et Microsoft SQL Server 2005
- La version 2.0 est la dernière version compatible avec Windows 2000, Windows 98 et Windows ME
- Inclus avec Windows Server 2003 R2 (non installé par défaut).
Changement depuis la version 1.1
- Ajout de divers API
- Support 64-bit pour les plates-formes matérielles x64 et IA64.
- Support des Generics inclus dans le CLR. NET.
- Nouveaux Web Controls pour ASP. NET.
- Nouveaux contrôles de gestion de données.
- Nouvelles possibilités de personnalisation des fonctionnalités ASP. NET telles que les thèmes, skins et webparts.
- . NET Micro Framework - une version du. NET Framework lié au projet Smart Personal Object Technology (SPOT).
. 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 :
- Windows Presentation Foundation (WPF), anciennement Avalon; Il s'agit d'un nouveau sous-système d'interface utilisateur basé sur XML et le dessin vectoriel. WPF utilise les cartes graphiques 3D et Direct3D. WPF SDK
- Windows Communication Foundation (WCF), anciennement Indigo; WCF est un système de messagerie orienté services qui permet au programmes de communiquer localement ou à distance (d'un façon analogue au web-services).
- Windows Workflow Foundation (WF) permet la construction de transactions ou tâches automatisées avec workflows.
- Windows CardSpace , anciennement InfoCard est un composant logiciel destiné à mémoriser de façon sécurisée les informations numériques relatives à une personne et apporte une interface unifiée pour le choix des identités pour une transaction spécifique.
. 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
- Ajout de nouvelles fonctionnalités ont été intégrées aux compilateurs des langages C# 3.0 et VB. NET 9.0
- Ajout du support pour les arbres d'expression et les méthodes lambda.
- Méthodes d'extension
- Types anonymes avec les inférences statiques de types
- LINQ
- LINQ to Objects
- LINQ to XML
- LINQ to SQL
- Support pour la pagination dans ADO. NET
- Une API de synchronization ADO. NET pour synchroniser les données en cache local et côté serveur
- Une API asynchrone pour les entrées/sorties réseau
- Une pile de protocoles pour le peer to peer, et du code managé pour PNRP
- Des APIs managées pour utiliser WMI et Active Directory
- Amélioration des moteurs d'execution de WCF et WF ce autorise WCF de fonctionner avec les données aux formats POX et JSON. Ces moteurs permettent aussi d'exposer les workflows WF comme des services WCF.
- ASP. NET AJAX est inclus
- Un nouvelle espace de nom System. CodeDom
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
- La totalité du code source du framework n'est pas encore disponible (cependant cela devrait arriver dans un futur proche) [1]. Il est aujourd'hui possible de télécharger une bonne partie de la source du framework [2].
- . NET ne fonctionnant pleinement que sous Windows, il est très difficile de changer de système d'exploitation comme Mac OS X ou Linux, ce qui créé une relation de dépendance à un seul fournisseur : Microsoft. Cependant, le projet Mono [3] est en train pallier ce problème.
- Le nombre de projets open source basé sur. NET est très faible comparativement à PHP ou Java, ce qui implique de partir de zéro lors de développement de logiciels, par conséquent une augmentation des coûts de développements.
- 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. NET 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 aisément retro analysé que s'ils étaient écrit en code natif, par conséquent il y a un risque en ce qui concerne la perte de secrets ainsi qu'un risque de passer outre les mécanismes de contrôle de licence. Cependant, plusieurs techniques pour rendre le code impénétrable ont déjà été développées pour empêcher ça. En fait Visual Studio 2005 inclus un tel outil (dotfuscator) produit par PreEmptive Solutions.
- Dans un environnement managé tel que le CLR du. NET Framework ou la JVM Java, les exécutions récurrentes du ramasse-miettes pour récupérer la mémoire suspend l'exécution de l'application pour un intervalle de temps imprédictible (typiquement quelques millisecondes). Ceci rend l'environnement non utilisable pour certaines applications qui doivent répondre dans des intervalles de temps très faibles (voir Système temps réel).
- Puisque le framework n'est pas installé avec les vieilles versions de Windows, une application qui a besoin du 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 54Mo pour le. NET 3.0 et 197Mo pour la version 3.5) et par la fiabilité des installateurs du. NET Framework pour les utilisateurs finaux. Ce problème est en partie résolu par l'introduction du. Net Client Profile[12], qui ne pèse que 26.5Mo.
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 :
- Shared Source Common Langage Infrastructure [4] est une implémentation shared source du CLR du. NET Framework. Elle est compatible avec Microsoft Windows XP, FreeBSD et Mac OS X 10.2.
- Portable. NET (partie de DotGNU) apporte une implémentation de la CLI, une partie des bibliothèques de classes de bases et un compilateur C#. Il supporte une large variété de processeurs et de systèmes d'exploitations.
- Mono est une implémentation de la CLI et de portions des bibliothèques de classes de bases (BCL) et apporte quelques fonctionnalités complémentaires. Mono est un logiciel développé sous la double licence : logiciel libre et logiciel propriétaire. Mono est développé par Novell et inclut un support pour ASP. NET, ADO. NET et pour les bibliothèques Windows Forms. Un compilateur C# et VB. NET en version beta sont aussi inclus.
- CrossNet est une implémentation de la CLI est de certaines portions des bibliothèques de bases (BCL). C'est un environnement libre qui génère du code C++ non managé à partir des assemblies. NET. Ce code peut ensuite être compilé et lié dans n'importe quelle application se conformant au C++ AINSI et sur n'importe quelle plateforme.
- . NET for Symbian, une implémentation du. NET Compact Framework pur Symian (S60)
Références
- ↑ a b c Scott Guthrie, «Releasing the Source Code for the NET Framework». Consulté le 2007-10-04
- ↑ prononcé «dotte nette» en anglais car le signe typographique point dans ce cas-ci est appelé dot
- ↑ (prononcé «C charpe»)
- ↑ Assembly Manifest
- ↑ Garbage Collection : Automatic Memory Management in the Microsoft. NET Framework. Consulté le 2007-11-21
- ↑ Garbage Collection—Part 2 : Automatic Memory Management in the Microsoft. NET Framework. Consulté le 2007-11-21
- ↑ (en) WinFX name change announcement
- ↑ . NET Framework 3.0 Versioning and Deployment Q&A. Consulté le 2007-03-21
- ↑ S. Somasegar, «The world of multi and many cores». Consulté le 2007-05-11
- ↑ Parallel LINQ : Running Queries On Multi-Core Processors. Consulté le 2007-07-20
- ↑ Parallel Performance : Optimize Managed Code For Multi-Core Machines. Consulté le 2007-07-20
- ↑ http ://blogs. msdn. com/bclteam/archive/2008/05/21/net-framework-client-profile-justin-van-patten. aspx
Voir aussi
- Framework. NET
- ADO. NET
- ASP. NET
- Managed code
- Common Language Runtime
- Common Language Infrastructure
- Common Intermediate Language
- Common Type System
- Langages et outils
- Microsoft Visual Studio
- . NET Languages
- C++/CLI
- F#
- C#
- J#
- Les implémentations Open Source :
Liens externes
- (fr) Microsoft. NET - Site MSDN Contenu sur la plate-forme. NET de Microsoft
- (fr) Catégorie. NET de l'annuaire dmoz.
- (fr) La rubrique Dotnet de developpez. com Articles, Cours, Faqs, sources et critiques de livres à disponibles.
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) :Refaire la recherche |
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.