J'ai implémenté avec succès l'application interop beftween Win32 et la DLL .Net gérée comme décrit here. Mais je lis aussi here qu'il est possible d'héberger tout le CLR à l'intérieur du processus non géré. Donc, ma question est: pourquoi voudriez-vous faire cela? C'est un peu plus complexe que de simplement utiliser un objet - quels avantages vous en retirer pour ce prix de complexité accrue? Edit: ce que j'ai compris de 2 premières réponses, c'est que vous avez la possibilité de personnaliser le CLR pour vos besoins - ce qui signifie que si vous écrivez une application d'entreprise simple, vous n'aurez jamais besoin d'héberger. L'hébergement est pour les choses système-lourds, comme le navigateur ou SQL Server.Hébergement CLR contre l'utilisation de ClrCreateManagedInstance - quels sont les avantages?
Répondre
L'hébergement du CLR n'est généralement pas une opération que vous effectuez pour interopérer du code managé avec Win32. il y a généralement 3 méthodes de Interop:
- Runtime Callable Wrapper (RCW) - appeler un objet COM de .NET
- COM Callable Wrapper (CCW) - faire un objet .NET apparaît comme un objet COM
- P/Invoke
Celles-ci ont été prises en charge depuis la première version de .NET. Le but de l'hébergement du CLR est de vous permettre d'intégrer le code .NET dans une application non gérée. Par exemple, il existe un module qui peut héberger .NET dans Apache sur Win32 lui permettant d'exécuter des pages .aspx. De même, SQL Server voulait que les personnes puissent écrire des procédures stockées étendues et des fonctions avec du code managé. Dans le passé, vous pouviez les écrire en C/C++, mais s'ils hébergeaient le CLR, ils pouvaient en fait permettre aux gens d'écrire ceux-ci avec C#. Le travail pour mettre le CLR dans un état où il pourrait être intégré en toute sécurité a vraiment poussé les délais, et ainsi des choses comme le contrôle de la mémoire et la sécurité sont nés. SQL Server a des exigences de stabilité sérieuses et vous ne pouvez pas avoir .NET bascule le bateau.
L'API d'hébergement a changé de manière significative de .NET 1.x à 2.x, mais a été plus stable depuis le 2.0 CLR a vécu dans .NET 3.0, 3.5 etc.
Vous pouvez avoir une application héritée et que vous souhaitez permettre à 3e parties à l'utilisation des installations de .net à partir de votre application, mais surtout d'une manière tels que contrôlé contrôle où les ensembles sont chargés à partir. Here est un exemple.
Microsoft SQL Server l'utilise extensivly pour remplacer la sécurité, le chargement d'assembly, la gestion de la mémoire, la gestion des threads et quoi d'autre. Un bon livre sur ce sujet est "Personnalisation de Microsoft .NET Framework Common Language Runtime".
- 1. Quels sont les avantages de Struts
- 2. Quels sont les avantages/inconvénients de py2exe
- 3. Quels sont les avantages des différentes endiannesses?
- 4. Quels sont les avantages et les inconvénients de l'utilisation d'OpenID?
- 5. CLR Hébergement - paramètres Bad
- 6. Quels sont les avantages de l'utilisation de OnAsyncPostBackError sur Page_Error
- 7. Quels sont les avantages de l'utilisation de plpgsql dans postgresql
- 8. Quels sont les avantages du design pour les programmeurs?
- 9. Quels sont les avantages et les inconvénients d'avoir plusieurs héritages?
- 10. Quels sont les avantages de LePUS3 par rapport à UML?
- 11. Quels sont les plus grands avantages de LLVM?
- 12. Quels sont les avantages des contrôles de contenu MS Word?
- 13. Quels sont les avantages de Blocking Queue en Java?
- 14. Quels sont les avantages/inconvénients de l'utilisation d'un CTE?
- 15. Quels sont les outils du bytecode CLR/.NET?
- 16. log4net, la journalisation, quels sont les plus grands avantages
- 17. Quels sont les avantages d'utiliser Prolog dans d'autres langues?
- 18. Quels sont les avantages d'utiliser un concept comme IStableable?
- 19. Quels sont les avantages de l'utilisation de génériques dans les signatures de méthodes?
- 20. Quels sont les avantages de l'utilisation des espaces de noms dans les pages Webform?
- 21. Quels sont les avantages et les inconvénients de l'utilisation d'un «index partiel»?
- 22. Quels sont les avantages et les inconvénients du service Msmqdistributor de Enterprise Library?
- 23. Quels sont les avantages et les inconvénients de LinkedHashMaps vs. LinkedHashSets?
- 24. Quels sont les avantages et les inconvénients des différents types de champs date/heure dans MySQL?
- 25. Web Service Security: Quels sont les avantages et les inconvénients de WSE3.0 et WCF?
- 26. Quels sont les avantages et les inconvénients de l'utilisation du pattern Front Controller?
- 27. Quels sont les avantages de l'utilisation de plusieurs instances de serveur Web OHS 11g?
- 28. Quels sont les avantages de l'utilisation de l'interface utilisateur jQuery par rapport aux plugins?
- 29. Quels sont les avantages de l'utilisation de la passerelle SMS pour envoyer/recevoir des messages texte?
- 30. Quels sont les avantages du transformateur à variation de phase de R6RS Scheme?
Bonne liaison, merci. Pourtant, ma question était plus autour de pourquoi vous avez besoin de plus de contrôle. –