English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية 
.NET
Colin Fahey

1. Définition de .NET

« .NET » Le terme se réfère à ce qui suit collecte de technologies:
(1) Framework Class Library (FCL)
(2) Intermediate Language (IL)
(3) Common Language Runtime (CLR)

1.1 Framework Class Library (FCL)

Le Framework Class Library (FCL) est un vaste ensemble de classes de soutien:
* Conteneurs (Array, String, List, ...)
* Multithreading (threads, thread piscines)
* La mise en réseau (prises de courant, des protocoles, les clients, serveurs)
* Fichier opérations
* Les flux de données
* L'analyse (les expressions régulières, XML manutention)
* Opérations mathématiques
* Gestion des exceptions
* Caractéristiques du langage (réflexion, trace de la pile, code dynamique)
Le Framework Class Library (FCL) est mis en œuvre pour de nombreuses plates-formes ( Windows, Linux, MacOS, ...  ).
Ainsi, un seul programme qui utilise le Framework Class Library (FCL) peuvent être développées sans une connaissance approfondie des différences entre la plate-forme cible.
Le Framework Class Library (FCL) contient des modèles utiles des concepts fondamentaux de l'informatique (comme « thread, socket, flux, » etc.)
Dans un sens, le Framework Class Library (FCL) donne à chaque système d'exploitation moderne, de haut niveau, interface de programmation cohérente.
Le Framework Class Library (FCL) est un des plus avancés, globale, uniforme conçu et bien documenté collections des fonctions et des types de données disponibles pour les programmeurs.
Malheureusement, le multimédia aspects suivants ne font pas partie du Framework Class Library (FCL): l'enregistrement audio, lecture audio, enregistrement vidéo, lecture vidéo, rendu 3D, joystick d'entrée, d'un dispositif de contrôle ( CD/DVD, ...  ), etc
Microsoft a .NET une version du DirectX bibliothèques pour leur Windows système d'exploitation.
Il ya C# emballages de OpenGL, OpenAL, GLUT, SDL, etc, mais ce n'est pas tout à fait aussi simple que de telles fonctions multimédia être inclus dans le noyau et Framework Class Library (FCL) inclus à l'utilisateur « lors de l'exécution » des bibliothèques.
L'un des problèmes de développement de programmes qui utilisent les bibliothèques est que l'ensemble des utilisateurs finals, il faudra l'appui pour la bibliothèques.
Si ce n'est pas commode pour télécharger et installer les librairies nécessaires, un utilisateur peut choisir de ne pas utiliser un programme exigeant ces bibliothèques.
Un utilisateur final peut également être réticents à attendre pour une bibliothèque à télécharger à partir d'un emplacement en ligne.
Si un développeur programme exige un utilisateur final à trouver, acquérir et installer les bibliothèques, le tout sans l'aide d'un programme particulier, alors l'utilisateur peut choisir de ne pas utiliser le programme.
Par exemple, de nombreux open-source projets exigent des utilisateurs finals de trouver, de télécharger et d'installer, de nombreuses autres bibliothèques de l'open-source projets (exemples: openssl, zlib, libpng, libjpg, glut, ...), ce qui prend du temps consommateurs, compliqué, frustrant, et peut aboutir à des utilisateurs finals de choisir à la recherche d'autres programmes ou de produits.
Le service « Windows Update » apparemment aide déployer version 1.1 du .NET run-time pour les bibliothèques Windows utilisateurs.
Ces run-time bibliothèques sont inclus avec le système d'exploitation Windows XP.
Par conséquent, la création d'Windows programmes qui exigent .NET 1.1 semble tout à fait raisonnable.
Aussi, le run-time pour les bibliothèques Microsoft's la mise en œuvre de la .NET Framework Class Library mai (FCL) être librement redistribué, afin que les développeurs puissent fournir ces bibliothèques aux utilisateurs finals qui ne sont pas déjà les bibliothèques.
Le Windows Vista système d'exploitation fourni avec la .NET 3.0 run-time bibliothèques (une combinaison des .NET Framework Class Libraries et plusieurs nouvelles bibliothèques comme la « Windows Presentation Foundation » (WPF)).
Par conséquent, le déploiement .NET 2.0 et .NET 3.0 programmes pour Windows Vista n'exige pas les installeurs de l'.NET run-time bibliothèques.

1.2 Intermediate Language (IL)

Le Intermediate Language (IL) est un petit ensemble de simple, processeur indépendant du système d'exploitation indépendant des instructions qui sont suffisantes pour exprimer complètement les structures de données et les fonctions des différents haut-niveau ( C++, C#, F#, Visual Basic, Java, Ocaml, ...  ) langages de programmation.
Le code source écrit en langage de haut niveau peuvent être compilés à un correspondant « Intermediate Language ».
Code « Intermediate Language » un formulaire peut facilement être combiné avec d'autres dans un code « Intermediate Language ».
Un programme d'ordinateur (aussi appelé « logiciel) » comprennent le code source écrit en différents langages de haut niveau (par exemple, C#, C++, et Visual Basic).
Tout le code source peut être compilé (transformé) à un format « Intermediate Language » pour faciliter la combinaison avec d'autres code compilé.
Programmes « Intermediate Language » dans un formulaire est généralement convertis à la machine des instructions spécifiques (par exemple, CPU instructions) très peu de temps avant l'exécution (par exemple, « Just-In-Time » (JIT) de conversion de IL à CPU instructions).
Mais un programme de mai également être exécutées dans le cadre d'un Virtual Machine (VM) conçu pour interpréter Intermediate Language (IL) instructions.
Code écrit en différents langages de haut niveau ( C#, F#, Ocaml, C++, Visual Basic, ...  ), peuvent être compilés à Intermediate Language (IL) formulaire en utilisant un compilateur approprié sur toute plateforme prise en charge ( Windows, Linux, MacOS X, ...  ), et le fichier résultant, dotés d'une composante Intermediate Language (IL) code est indépendant de la plateforme et peut exécuter sur n'importe quelle plate-forme ayant un la mise en œuvre de la .NET Common Language Runtime (CLR).
Intermediate Language (IL) Le code généré par le compilateur est essentiellement indépendant de la plate-forme sur laquelle le compilateur a été exécuté.

1.3 Common Language Runtime (CLR)

Le Common Language Runtime (CLR) est le mécanisme responsable de l'exécution de code présenté dans le Intermediate Language (IL).
Le Common Language Runtime (CLR) offre différents services.
Le Common Language Runtime (CLR) mai convertir Intermediate Language (IL) code d'instructions qui sont originaires de la plate-forme (par exemple, CPU instructions).
La conversion de la Intermediate Language (IL) à la plate-forme spécifique (par exemple, CPU-spécifique) des instructions mai arriver à l'avance de toute exécution (c'est-à-dire, un « Ahead-Of-Time » (AOT) de conversion), ou se produire progressivement mai, que le programme exécute (c'est-à-dire, « Just-In-Time » (JIT) de conversion) .
Le Just-In-Time (JIT) conversion peut utiliser l'évolution des statistiques sur l'exécution du programme, afin d'optimiser le converti (exemple: l'identification fréquemment utilisés boucles et les branches, et l'optimisation en fonction de leur comportement observé (qui dépend elle-même sur les données actuelles et des événements)).
Le Common Language Runtime (CLR) gère mémoire allouée au nom du programme.
Par conséquent, la CLR assure que le programme ne manque pas de l'accès mémoire allouée tout en référence à celles-mémoire persiste, et veille à ce que les allocations mémoire sont annulés, et que la mémoire est disponible pour un nouvel avenir, l'allocation après le programme dispose de toutes les références à ces allocations .
Le Common Language Runtime (CLR) détecte lorsque le programme n'a plus une référence à une allocation de mémoire, et l'allocation de mémoire est marqué pour Désalloue.
Le Common Language Runtime (CLR) utilise toute une gamme de la « collecte » des « ordures » algorithmes (exemple: « mark-and-sweep ») d'identifier et de récupérer les blocs de mémoire ne sont plus accessibles par un programme.
Common Language Runtime (CLR) Le programme traite des exceptions.
Le Common Language Runtime (CLR) applique les politiques de sécurité.
Le Common Language Runtime (CLR) utilise le mécanisme de « P/Invoke » plate-forme de chargement des bibliothèques et invoquer (appel) fonctions au sein de ces bibliothèques.

2. .NET ( FCL, IL, CLR ) mises en œuvre par Microsoft

2.1 Introduction

Le .NET paradigme ( FCL, IL, CLR ) a été mis en place par Microsoft.
La version la plus récente, « 3.0 », a été publié en 2006.10.
.NET 3.0 est composé des .NET 2.0 Framework Class Libraries et plusieurs nouvelles bibliothèques, telles que la « Windows Presentation Foundation » (WPF) associés à l'« Silverlight » (anciennement WPF/E, anciennement Sparkle, ...) plug-in pour navigateur Firefox et Internet Explorer.
Microsoft divise le logiciel .NET 2.0 à deux paquets:
(1) .NET Framework Version 2.0 Redistributable Package
Le package redistribuable est requis par les utilisateurs finals à exécuter des programmes conçus pour les .NET paradigme.  Ce forfait doit également être installé par les développeurs avant d'installer et d'utiliser le .NET Software Development Kit (SDK) mentionnées ci-dessous.
(2) .NET Framework Version 2.0 Software Development Kit
Le kit de développement logiciel (SDK) est requise par les développeurs de compiler le code source C# à Intermediate Language (IL) fichiers de programme.
Ce paquet contient divers outils de développement et de la documentation.

2.2 .NET Framework Version 2.0 Redistributable Package

Le package redistribuable est requis par les utilisateurs finals à exécuter des programmes conçus pour les .NET paradigme.
Ce forfait doit également être installé par les développeurs avant d'installer et d'utiliser le .NET Software Development Kit (SDK) mentionnées ci-dessous.
La page Internet suivante est le principal .NET page de téléchargement:
http://msdn.microsoft.com/netframework/downloads/updates/default.aspx
La section nommée « .NET Framework Version 2.0 Redistributable Package » a des liens pour trois plates-formes matérielles: « Download x86 version », « Download x64 version », « Download IA64 version ».
Par exemple, suivant le lien « Download x86 version », conduit à une page intitulée « Microsoft .NET Framework Version 2.0 Redistributable Package (x86) »
(Nom du fichier: dotnetfx.exe; Version: RC1; Date de publication: 3/22/2006; Langue: anglais; Taille du téléchargement: 22.4 MB)
Version en cache localement (seulement pour la référence; potentiellement obsolètes):
microsoft_dot_net_runtime_libraries_v2_0.exe
.NET Framework Version 2.0 Redistributable Package
23510720 octets
MD5: 93a13358898a54643adbca67d1533462
(Le nom du fichier a été changé ici depuis le fichier original nom de « dotnetfx.exe » de ne pas confondre avec la version d'installation 1.1 également nommé « dotnetfx.exe ».)

2.3 .NET Framework Version 2.0 Software Development Kit (SDK)

Le kit de développement logiciel (SDK) est requise par les développeurs de compiler le code source C# à Intermediate Language (IL) fichiers de programme.
Ce paquet contient divers outils de développement et de la documentation.
La page Internet suivante est le principal .NET page de téléchargement:
http://msdn.microsoft.com/netframework/downloads/updates/default.aspx
La section nommée « .NET Framework Version 2.0 Software Development Kit » a des liens pour trois plates-formes matérielles: « Download x86 version », « Download x64 version », « Download IA64 version ».
Par exemple, suivant le lien « Download x86 version », conduit à une page intitulée « .NET Framework 2.0 Software Development Kit (SDK) (x86) »
(Nom du fichier: setup.exe; Version: 2.0; Date de publication: 11/7/2005; Langue: anglais; Taille du téléchargement: 354.0 MB)
Version en cache localement (seulement pour la référence; potentiellement obsolètes):
microsoft_dot_net_sdk_v2_0.exe
.NET Framework Version 2.0 Software Development Kit (SDK) (x86)
371230904 octets
MD5: 1a52cb6000c4390b6265671e031f9d64
(Le nom du fichier a été changé ici depuis le fichier original nom de « setup.exe » à ne pas confondre avec tous les autres fichiers d'installation nommé « setup.exe ».)

3. Microsoft Visual C#: un programme Integrated Development Environment (IDE)

3.1 Introduction

Un Integrated Development Environment (IDE) programme permet à un développeur de modifier le code source et d'exécuter divers outils (par exemple: compilateur, débogueur, ...) dans le cadre d'une seule, en unifiant programme, rempli d'utiles indications visuelles et des contrôles.
« Microsoft Visual C# 2005 Express Edition » est un non-coût (pas de paiement requis) IDE disponible pour téléchargement à partir de Microsoft.
Pour les non-élaboration de bases de données, il est presque impossible de distinguer ce sans frais produit à partir de l'homologue de détail, « Microsoft Visual C# 2005 ».
Il m'arrive souvent de ces deux produits, professionnelle et récréative, et je n'ai pas encore remarqué aucune différence pratique entre les produits.
microsoft_vcsharp_2005_express_ide.gif

3.2 De liens officiels

Le site Internet principal de la page:
http://msdn.microsoft.com/vstudio/express
La page concernant « Visual C# Express Edition »:
http://msdn.microsoft.com/vstudio/express/visualcsharp
Cliquez sur le bouton « Download Now » sur le côté droit de la page pour choisir une option de téléchargement.
(Une méthode est de lancer un programme d'installation qui téléchargera les fichiers de Microsoft au cours de chaque installation.
Une deuxième méthode consiste à télécharger un plein CD-ROM « ISO » image, qui permette aux futurs installation hors ligne.
Le ISO image, « VCS.iso » (451,837,952 d'octets; CRC 55884F2C) pour 32 bits x86 anglais, mai être gravés sur un CD-ROM utilisant « Nero 7 Ultra », par exemple.  )

4. .NET ( FCL, IL, CLR ) mise en œuvre par le Mono Project

4.1 Introduction

Le .NET paradigme ( FCL, IL, CLR ) a été mis en œuvre par les participants dans un groupe connu sous le nom de Mono Project.

4.2 De liens officiels

Site du projet:
http://www.mono-project.com
Page de téléchargement de logiciels:
http://www.mono-project.com/Downloads

4.3 Version en cache localement

Localement version en cache de l'installateur (seulement pour la référence; potentiellement obsolètes):
mono-1.2.4-gtksharp-2.8.3-win32-3.exe
Mono 1.2.4 with Gtk# 2.8.3 Installer for Windows 2000 and above
51323790 octets
MD5: 95cbd476c0555a9a40f47e58e2283cbe

4.4 .NET 2.0 développement Mono

Le « mcs » compilateur, et la documentation, à partir de Novembre 2006, pour la plupart se rapportent à C# 1.0 et FCL 1.1.
Toutefois, la « mcs » compilateur est capable de compiler C# 2.0 code qui ne contient pas de générique ou génériques à base de caractéristiques, mais limite la API à 1.0.
Pour ce faire C# 2.0 plein développement, avec FCL 2.0 bibliothèques, utilise le compilateur « gmcs ».
Voir la page suivante sur le site Mono:
http://www.mono-project.com/CSharp_Compiler

5. SharpDevelop: un open-source Integrated Development Environment (IDE) programme

5.1 Introduction

Un Integrated Development Environment (IDE) programme permet à un développeur de modifier le code source et d'exécuter divers outils (par exemple: compilateur, débogueur, ...) dans le cadre d'une seule, en unifiant programme, rempli d'utiles indications visuelles et des contrôles.
SharpDevelop est un excellent open-source IDE programme pour C# / .NET développement.
Cela ressemble étroitement IDE la Microsoft Visual C# IDE, et, à certains égards, la SharpDevelop IDE a amélioré la Microsoft produit.
Toutefois, Microsoft Visual C# a certaines caractéristiques (exemple: débogage) SharpDevelop que le programme ne possède pas (au moment d'écrire ces lignes).
sharp_develop_2_ide.gif

5.2 De liens officiels

Le simple site Internet la page principale:
http://www.sharpdevelop.com
La page concernant « The Open Source Development Environment for .NET »:
http://www.sharpdevelop.com/OpenSource/SD/Default.aspx
La page de téléchargement, qui a des détails sur la 1.1 et 2.0 versions de SharpDevelop:
http://www.sharpdevelop.com/OpenSource/SD/Download

5.3 Version en cache localement

Localement version en cache de l'installateur (seulement pour la référence; potentiellement obsolètes):
SharpDevelop2_2.0.1.1710_Setup.exe
SharpDevelop2 (2.0.1.1710)
4338287 octets
MD5: 6626832c202a6c25a399c9e9081f20d4

6. C# utiles / .NET / IL outils

6.1 SciTech Software « .NET Memory Profiler »

dot_net_memory_profiler_graph.gif
dot_net_memory_profiler_table.gif
Ce profileur indique les allocations mémoire, et d'autres allocations de ressources, un programme compilé .NET ou l'assemblage fait de l'exécution.
Le temps réel graphique permet à une personne à voir, en détail, comment les actions du programme (tels que les actions déclenchées par l'utilisateur ou d'autres événements) à porter atteinte à l'allocation de mémoire et la collecte des ordures.
Le temps réel tableau indiquant vue permet à une personne d'apprendre des détails sur les allocations de mémoire.
Ce profileur instantanément et de façon spectaculaire, a révélé le gaspillage dans l'utilisation de la mémoire en temps réel Direct3D programme j'avais développé.
Un modèle de la hausse soudaine des rampes et des gouttes (en raison de « la collecte des ordures ménagères) » dans l'utilisation de la mémoire graphiques correspondent parfaitement avec périodique, à très brève pause dans le dessin 3D de mon programme.
Le profileur m'a permis de découvrir que souvent la répartition des objets temporaires est une accumulation de beaucoup de mémoire, ce qui déclenche souvent la collecte des ordures, et en prenant suffisamment de temps pour chaque collecte des ordures de causer un peu de dessin périodes à manquer.
Le profileur en temps réel le tableau de répartition des types d'objets révélé les types d'objets qui consommait le plus de mémoire, et qui allocations mémoire consommée au plus haut taux (en octets par seconde), des allocations et qui a le plus haut taux d'élimination.
Étudier en temps réel des graphiques, et en temps réel des tableaux, m'a permis de mettre l'accent sur l'étude de la manière dont certains types de données sont utilisées dans mon code.
Modification du code pour éviter de fréquentes allocations temporaires objets peuvent grandement réduire le taux global de l'allocation de mémoire et de l'élimination, et peut donc réduire la fréquence de la collecte des ordures déclenchement.
(Je crois « Bytes/sec » est une très révélateur statistiques en temps réel l'utilisation de la mémoire, en plus de « Live instances ».
) En voyant tous ces cours de mise à jour très rapidement dans un format tableur, et la possibilité de choisir comment les lignes sont triées et modifier le paramètre de tri à tout moment, fait l'expérience d'étudier en temps réel programme très attrayant et informatif.
Allocation de mémoire réponses à l'utilisateur d'interagir avec un programme en cours d'exécution peuvent être étudiés, ainsi que l'essai peut rapidement s'adapter aux réactions de réduire le plus intéressant.
http://memprofiler.com/download.aspx
(Par exemple, la version 2006 July a les attributs suivants: version 2.6.89; 4.3 MB; USA $127.00; Téléchargement de 14 jours limite version, sans frais, pour l'évaluation.)

6.2 FxCop: .NET analyseur de code / critique

FxCop analyse .NET compilé un programme (ou compilé, assemblage) et génère un rapport indiquant les éventuels problèmes avec le code source original.
Possible les problèmes de performance et des problèmes de sécurité sont identifiés.
Convention de codage possibles violations sont identifiés.
FxCop n'a pas besoin d'accéder au code source original pour effectuer l'analyse.
Seul le programme compilé .NET (qui contient IL) est nécessaire.
Néanmoins, le rapport FxCop offre des hyperliens vers des numéros de ligne dans le code source original.
Si le Microsoft Visual C# 2005 IDE est active, en cliquant sur l'hyperlien dans le rapport FxCop entraînera la IDE de se déformer à l'origine des fichiers et numéro de ligne.
FxCop a, à mon avis, une façon plutôt maladroite de l'intégration avec les Microsoft Visual C# 2005 IDE.
Cependant, une fois qu'il est mis en place, FxCop un produit très intéressant et potentiellement précieux rapport.
Le rapport contient des conseils détaillés sur la façon d'améliorer le code source original.
Je pense que cela vaut la peine d'analyser un programme en utilisant FxCop sur une base périodique.
Je ne serais pas surpris si certains projets de développement de logiciels ou les entreprises ont besoin dans tout le code écrit par les développeurs de céder ou pas d'alertes critiques par FxCop.
Les règles peuvent être ajoutés ou retirés du FxCop base de données, en fonction des besoins.
FxCop est un open-source, programme libre.
http://www.gotdotnet.com/team/fxcop

6.3 « Reflector for .NET »: decompiler / analyseur

De Lutz Roeder's site Internet:
"Reflector is the class browser, explorer, analyzer and documentation viewer for .NET. Reflector allows to easily view, navigate, search, decompile and analyze .NET assemblies in C#, Visual Basic and IL."
« Reflector » peut aider une personne à étudier comment tiers bibliothèques sont écrits.
Parfois, il serait très utile de savoir exactement comment une méthode dans un ensemble est mise en œuvre.
Si une méthode comporte un inattendus ou de manière mystérieuse, alors « Reflector » peut être utilisé pour voir la mise en œuvre.
En voyant la mise en œuvre, le programmeur peut travailler autour de problèmes spécifiques causés par la mise en oeuvre de méthodes de bibliothèque.
Un ami m'a dit que « Reflector » aidé à en apprendre davantage sur le comportement de mal documentées méthodes Microsoft dans la mise en œuvre de la Framework Class Libraries (FCL).
« Reflector » pourrait être utile lorsque la documentation de la bibliothèque une méthode ne comporte que quelques mots, tels que les « définit la valeur » ou « gestionnaire d'événements. »
Si une fonction de bibliothèque ne parvient pas invocation pour une raison inconnue (lorsque tous les paramètres semblent valide), puis en utilisant « Reflector » à examiner la mise en œuvre de la fonction de bibliothèque pourrait révéler la raison de l'échec.
« Reflector » effectue certains « l'ingénierie inverse » d'un programme .NET ou de l'ensemble.
Autres services collectifs, y compris éventuellement « Reflector » lui-même, peuvent permettre de code source des programmes ou des ensembles construits en fonction de rendu code source.
C'est évidemment une source de préoccupation pour certains promoteurs et leurs investisseurs.
http://www.aisto.com/roeder/dotnet
(2006 July: Reflector.zip est la version 4.2.45.0)

7. Forums de discussion Internet

Google la recherche est le meilleur moyen de trouver des réponses à des questions sur n'importe quel sujet, mais les sites ci-dessous apparaissent à maintes reprises dans les résultats de recherche pour C# et .NET questions.
Les sites ci-dessous sont de taille pour explorer les nombreux frais choses que les gens l'ont fait avec C# et .NET.
« The Code Project » site a des milliers de intéressant et utile d'articles, pour C#, C++, et dans d'autres langues et paradigmes de programmation.
http://www.codeproject.com
« MSDN Code Gallery » Le site a de nombreux articles intéressants et des exemples de code liées à Microsoft technologies.
http://code.msdn.microsoft.com
Autres sites Internet liés à C# et .NET:
http://www.c-sharpcorner.com
http://www.dotnetfun.com
http://www.programmersheaven.com

8. Général note

8.1 Indépendance des plates-formes

Le Intermediate Language (IL), comme Java « byte-code, » est indépendant de la plateforme.
Toute .NET conformes compilateur génère indépendant de la plateforme Intermediate Language (IL) code pour former des programmes ou des assemblées.
Programmes emballés comme exécutables (fichiers « *.exe ») doit avoir une plate-forme dépend code spécifique à un système d'exploitation, aux fins d'être correctement interprétée et exécutable lancé dans le logiciel dans le cadre du système d'exploitation particulier.
Toutefois, le natif exécutable du logiciel fichier ne sert qu'à invoquer la .NET CLR moteur, qui présente la IL code figurant dans le fichier du logiciel pour l'exécution par le moteur CLR.
Microsoft offre une application de la .NET services publics (compilateur, ...), et une mise en œuvre de la Framework Class Library (FCL), pour la seule Windows système d'exploitation.
Le Mono Project propose la mise en œuvre de la .NET services publics (compilateur, ...), et la mise en œuvre de la Framework Class Library (FCL), pour les systèmes d'exploitation suivants: Windows, Linux, MacOS X, et BSD.

8.2 Vitesse par rapport à non-CLR C / C++

Le Common Language Runtime (CLR) aspect de .NET est le contexte dans lequel une C# programme s'exécute.
Le CLR effectue « la collecte des déchets » et permet à des programmes d'invoquer les fonctions « non gérées » dans les bibliothèques (toutes les bibliothèques pas mis en oeuvre dans Intermediate Language (IL)).
Toute la fonction n'est plus que de simples mathématiques, la manipulation pure chaîne, ou la copie pure mémoire, invoquer les fonctions « non gérées » dans les bibliothèques.
Toutes les opérations de fichier, opérations de socket, les opérations de dessin, les opérations d'entrée (souris, clavier), les opérations de production (console), plate-forme thread opérations, la précision timer, les opérations de fenêtrage, etc invoquer fonctions dans « les bibliothèques non géré. »
Malheureusement, le mécanisme d'invoquer « la non » fonctions de la CLR exige beaucoup de temps.
Par conséquent, la vitesse globale d'un programme d'exécution dans le cadre de la CLR est sensiblement plus lent que d'un programme qui pourra invoquer les fonctions « non gérées » directement.
Pour certains types de logiciels, la vitesse peut être important.
Pour certains types de logiciels, la vitesse peut faire une différence importante dans le subjectif ou psychologique expérience pour une personne qui utilise le logiciel.
Pour certains types de logiciels, la vitesse peut faire la différence entre atteindre un objectif et l'échec.
Multithreading, de plus en plus CPU vitesses et l'amélioration de la génération de code CLR installation, le logiciel permettra d'exécution dans le cadre de la CLR exécuter plus rapidement.
Toutefois, un code qui s'exécute en dehors de la CLR, plate-forme et invoque directement les bibliothèques, inévitablement exécuter beaucoup plus rapidement que le logiciel qui exécute dans le contexte de la CLR.
Les assurances données par le CLR à C# logiciels, tels que sécurité combler l'écart entre le code managé et non de code, vient à un coût qui ne devrait pas être réduite.
Par conséquent, tout programme qui est très plate-forme intensive (exemples: 3D ou un jeu de simulation, de traitement de fichier, serveur de réseau, etc) est susceptible d'exécuter un ordre de grandeur plus vite en dehors de la CLR que si elles sont exécutées dans le CLR.
La différence est énorme.
Aussi, tout programme qui effectue une quantité importante de faible niveau de manipulation de données exécuter beaucoup plus rapidement en dehors du CLR que dans le CLR.
Programmes d'exécution dans le cadre de la CLR exécuter assez rapidement pour être utile à de nombreuses fins pratiques.
Comme CPU augmentation des vitesses, et comme code de mieux profit de plusieurs CPUs, les programmes d'exécution dans le cadre de la CLR sera en mesure d'être utilisé pour d'autres tâches qui exigent un taux élevé de calcul.
Cependant, au milieu de 2008 la CLR n'est toujours pas approprié pour les jeux 3D de toute sophistication, à moins d'une très agressive les efforts sont faits pour réduire le nombre d'appels de fonction à la bibliothèque 3D (OpenGL ou Direct3D), éventuellement en utilisant des concepts tels que « programmes de shader » et « afficher des listes, » tout à réduire le nombre d'appels de fonction.
colinfahey.com
coordonnées
English  Español  Português  Français  Italiano  Deutsch  Nederlands  Svenska  Dansk  Suomi  Norsk  Русский  Polski  Română  Български  Hrvatski  Česky  中国  中國  日本語  한국어  Ελληνική  हिन्दी  العربية