Le Managed C++ (ou plutôt Managed Extensions C++ : MC++) est un moyen de concilier .NET et C++, proposé par Microsoft dans les frameworks 1.0 et 1.1. Ce langage proposait grâce à la technologie Just In Time d’exécuter du code non managé (C++ standard) dans des assemblies. Le MC++ permettait ainsi aisément de profiter des facilités du .NET au sein de projet C++ standard et ceux avec un impact de performance minime (quelques % d’après Microsoft, qui n’est certes pas le plus objectif pour en juger).
Un exemple : vous possédez un ensemble de classes réalisant des fonctionnalités métiers. Si ces classes sont énormes vous n’envisagerez sans doute pas leur réécriture dans un langage purement .NET (C# …). Le MC++ était alors la solution parfaite.
Bref une très bonne initiative qui encourage réellement la transition vers le .NET de manière plus douce, cependant de nombreux défauts entachaient le C++ :
- Les assemblies générées n’étaient pas « pure » c'est-à-dire que leurs exécutions n’étaient assurées que par le framework Microsoft. Les autres frameworks (Mono par exemple) n’étaient que très partiellement capable de les exécuter.
- La syntaxe était une horreur. Même symbole pour les références d’objets managés et les pointeurs natifs, ajout de __ devant les mots clefs managés, …
- Séparation complète des fonctionnalités managées et natives.
Et bien bonne nouvelle, à l’occasion du passage à la version 2.0 du .NET (et suite aux remarques des utilisateurs) Microsoft a revu sa copie pour nous présenter le remplaçant du MC++ : Le C++/CLI (Common Language Infrastructure).
Ce nouveau langage standardisé par l’ECMA améliore grandement les choses (au détriment de la compatibilité, uniquement partielle, des projets MC++ et C++/CLI). Les points ci-dessus se voient ainsi réglés.
Bref si vous voulez profiter des facilités du .NET au sein de vos projets C++, pensez à ce nouveau langage.
Plus d’informations : http://msdn.microsoft.com/visualc/default.aspx?pull=/msdnmag/issues/04/05/visualc2005/default.aspx
No comments:
Post a Comment