Comprendre le CLR

[Résolu]
Signaler
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
-
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
-
Bonjour;
Bon, je veux apprendre plus sur le fonctionnement du CLR.
Je sais que quand on exécute un programme fait en .net, une partie de l'executable (qui est au format PE) s'occupe de 'hoster' le CLR et de lui transférer le contrôle ensuite.
J'ai aussi entendu dire que le CLR était un serveur COM.
C'est assez mélangeant et la seule manière de m'y retrouver est de revenir aux bases.
Je connais un peu C++ (ça va vite me revenir quand je serais dessus) et je voudrais m'initier à la programmation COM.
Malheuresement, sur Internet, je ne trouve pas de documents. Sur Amazon, des livres complexes mais pas d'introduction.
Alors, je viens ici pour vous demander des références et une liste d'étapes que je devrais idéalement suivre pour améliorer ma connaissance de la plateforme .net.

Mon but idéalement est d'être en mesure d'hoster moi-même une assembly (.exe ou .dll)
Merci les gars
[:D] @++

4 réponses

Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Pour ce qui est de charger le CLR ça se passe avec CorBindToRuntimeEx ( mscoree.dll ).


Quand tu parles de t'initer à COM c'est pour utiliser COM ou pour créer des composants COM ? Dans le premier cas c'est relativement simple, y a 2 ou 3 chose à savoir ( CoCreateInstance, QueryInterface, AddRef etc.. ). Par contre créer un serveur COM là c'est autre chose.. faut definir les interfaces dans unfichier MIDL etc.. je connais pas assez mais je crois qu'en C++ y a un framework ATL qui simplifie ( un peu ) tout ça.
Messages postés
2368
Date d'inscription
mardi 17 avril 2001
Statut
Modérateur
Dernière intervention
26 décembre 2007
21
As tu jeté un oeil sur Rotor l'implementation open-source ?

::|The S@ib|:: MVP C#.NET
Messages postés
475
Date d'inscription
jeudi 19 juin 2003
Statut
Membre
Dernière intervention
3 novembre 2008
1
Merci Lutinore.
Étant donné que je veux juste avoir une idée de ce qu'est COM afin de mieux comprendre l'origine des technos d'aujourd'hui, leur utilisation me suffit.
Il y a plusieurs utilitaires qui viennent avec la plateforme .net qui s'occupe de convertir les objets COM en une assembly .net (comment il s'appellait deja -tlbimp ou qqch du genre).

[:D] @++
Messages postés
3246
Date d'inscription
lundi 25 avril 2005
Statut
Modérateur
Dernière intervention
27 octobre 2012
41
Oui tlbimp.exe, la classe TypeLibConverter et aximp.exe c'est exactement la même chose qu'avec Visual Studio quand tu rajoutes une référence COM à ton projet, à part que tu as quelques options comme, modifier le namespace ou générer le code C#.

Par contre pour certains composant COM qui n'ont pas de librairie de type  il faut redefinir les interface s avec des attributs .NET.