Se connecter avec
S'enregistrer | Connectez-vous

[.NET/Managed C++/DCOM/Visual studio] Question pour experts

Dernière réponse : dans Programmation
Expert Programmation

Bonjour,

J'ai réalisé un petit composant DCOM (service exe) en Managed C++, je n'ai pas eu de problème, car j'ai utilisé le wizard ATL, sachant que ce n'est pas un composant graphique, ni composant Web.
Ensuite, j'ai voulu faire le client en .Net et Managed C++. Sous visual studio 2003, je n'ai pas trouvé comment faire ça simplement comme on le faisait avant en MFC avec les macros AFX.
Est-ce qu'il existe un manière simple d'ajouter les liaisons avec l'interface du composant ? ou faut-il taper du code à la main ?
Si vous avez la réponse avec un client C# plutôt que le Managed C++, je suis aussi preneur ;) 

J'ai remarqué que Microsoft a mis en place un nouveau type de composant distribué qui, apparemment, devrait remplacer le DCOM, c'est le .NET Remoting. Si quelqu'un a déjà utilisé ce dernier, l'as-t-il trouvé convaincant ?
En fait en C#, je comprend qu'on utilise le .NET Remoting, mais en Managed .NET, n'est-il pas préférable de rester dans le DCOM (vis-à-vis des performances) ?

CORBA/DCOM/.NET Remoting, c'est bien joli l'interopérabilité, mais est-ce qu'on n'est pas en train de la perdre là ? déjà qu'avec DCOM et CORBA ça en fait beaucoup :D 

Merci :) 
Lassé par la pub ? Créez un compte
Expert Programmation

En fait pour ajouter une liaison, il suffit de l'importer comme un composant .NET (dans "Ajouter une référence").
Le système ajoute un wrapper RCW pour permettre la liaison client .NET serveur COM et inversement avec le wrapper CCW.
Donc, microsoft a prévu l'intéropérabilité entre COM/DCOM et .NET.
[ironique]Etonnamment, ils n'ont pas prévu la liaison vace les composants CORBA[/ironique]

En C#, pour intégrer un DCOM avec évènement de callback (le serveur envoit un évènement au client), c'est simple, l'ajout de la référence a créé une de délégation, il suffit de l'utiliser pour affecter la méthode à l'évènement.
En Managed C++, je suis encore en train de regarder car la classe de délégation.

Pour le .NET remoting, ça revient à faire un DCOM, et il suffit de faire hériter le composant de MarshalByRefObject pour le rendre distribué.

Oula ! J'avais déjà peur en voyant que c'était toi qui posait une question , mais alors la en .net => buiten voor mij !

Citation :

CORBA/DCOM/.NET Remoting, c'est bien joli l'interopérabilité, mais est-ce qu'on n'est pas en train de la perdre là ? déjà qu'avec DCOM et CORBA ça en fait beaucoup :D 


Ne t'inquiète pas ! En java c'est tout aussi bordélique ^^
Expert Programmation

Les composants sont censés indépendants des langages.
Mais bon, en pratique, en Java c'est généralement du CORBA alors qu'en C++ c'est CORBA ou DCOM (si sous windows), et en C# c'est .NET Remoting, même si on peut inverser.
Expert Programmation

Oui, c'est la couche basse des web services (que le .NET remoting peut aussi utiliser), mais bon, ça c'est normé, et tout le monde va pour l'utiliser (puisque même .NET remoting a l'air de l'implémenter).
Le problème est le même, parce que si quelqu'un sort son format, ce sera aussi indépendant du langage, mais incompatible avec le wsdl. du coup, il faudrait (comme pour les composants) faire des wrapper et alourdir tout ça. :D 
Lassé par la pub ? Créez un compte
Tom's guide dans le monde