Interaction en 2 executables

Résolu
gregbsk Messages postés 3 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 31 août 2009 - 26 août 2009 à 11:35
gregbsk Messages postés 3 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 31 août 2009 - 31 août 2009 à 17:51
Bonjour à tous,

je vais essayer d'être le plus clair possible.
Mon problème est le suivant :

Je développe sous visual studio 2005 en C#
Ma solution se compose de 2 projets Windows Application.
Pour chacun de mes projets j'ai généré un executable.
Mon 1er exe appèle le second via un boutton de sa Form principale
j'aimerai faire interagir mes 2 executables, en insérant par exemple un nouveau contrôle dans ma 1ère Form suite à un click dans ma 2è Form.
J'arrive à appeler les méthodes publiques de mon 1er projet en référençant dans mon second projet mais cela ne suffit pas j'aimerai prendre la main sur mon 1er exe en cours...
Je retrouve sans problème le Process de mon 1er exe mais je sais pas quoi en faire...

J'espère avoir été assez clair
Merci par avance de votre aide !


gregbsk

6 réponses

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
26 août 2009 à 23:11
Bonjour,

Oula, pas besoin de s'embarquer là dedans à mon avis.
Le post cité par spyroo était une réponse à un problème bien particulier : utiliser un code .NET depuis du code ASP (et là COM vient de suite à l'esprit) et une volonté clairement énoncée de l'utiliser comme un objet COM qu'on a l'habitude de manipuler dans ce contexte.

Quand les 2 côtés sont dans la même techno (.NET ici) et qu'on maitrise les 2 sources, il y a quand même des moyens de communication interprocessus plus adaptés.

J'ai du mal à m'imaginer la finalité mais ça a l'air d'être ici une "simple" situation client/serveur (ou peer to peer).

Il peut être intéressant (si possible, vu le contexte VS2005) de regarder du côté de choses comme WCF (Windows Communication Foundation), pour le côté plutôt sympatique de la chose et le fait qu'on se garde assez facilement une marge de manoeuvre en cas d'évolution de la solution vers un hébergement des 2 composantes sur des machines distinctes, sans pour autant recoder la partie communication.
Sinon peut être regarder du côté du Remoting (que je n'ai jamais réellement pratiqué donc je ne m'avancerais pas plus), ou au pire tomber à un niveau plus bas en utilisant des canaux du type pipes anonymes, pipes nommés voire même sockets & co.

N'ayant pas vraiment saisi le but, je donne des idées de manière assez vaste.



/*
coq
MVP Visual C#
CoqBlog
*/
3
spyroo Messages postés 15 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 26 août 2009
26 août 2009 à 15:39
tu devrais voir du coté d'un bon viel objet COM
0
gregbsk Messages postés 3 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 31 août 2009
26 août 2009 à 16:15
Mmmh... Merci pour ta réponse Spyroo, mais pourrais tu être plus précis, je ne suis pas expert en la matière
0
spyroo Messages postés 15 Date d'inscription jeudi 19 janvier 2006 Statut Membre Dernière intervention 26 août 2009
26 août 2009 à 16:24
=)
Ben en gros les ActiveX/objets COM+ permette de faire parler 2 appli entre elles.

tu peux regarder ce post, coq a mis qq liens

http://www.csharpfr.com/forum/sujet-OBJET-COM-CSHARP_736544.aspx
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
leprov Messages postés 1160 Date d'inscription vendredi 23 juillet 2004 Statut Membre Dernière intervention 21 octobre 2010 17
27 août 2009 à 09:22
vu que tes sous VS2005, pas de WCF, donc remoting pourrait faire l'affaire.
Sinon, des pipe ou des message windows.
Remoting est le meilleur compromis entre simplicité de mise en place, et extensibilité
0
gregbsk Messages postés 3 Date d'inscription vendredi 23 mai 2008 Statut Membre Dernière intervention 31 août 2009
31 août 2009 à 17:51
Merci beaucoup pour vos réponses,

j'en suis venu à cette solution :

Mes 2 exe utilisent un fichier xml commun.

Dans mon 1er exe j'utilise un timer qui écoute à intervalles réguliers ce qui se passe. Je lui ai rajouté une petite tache celle de lire ce xml.

De son côté mon 2è exe va écrire dans un noeud prévu à l'avance ce qu'il va mettre à jour.

Le 1er exe est ainsi au courant et peut traiter l'info sans problème.

En esperant avoir été clair....

meric encore !

gregbsk
0
Rejoignez-nous