Interaction en 2 executables [Résolu]

Signaler
Messages postés
3
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
31 août 2009
-
Messages postés
3
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
31 août 2009
-
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

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
90
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
*/
Messages postés
15
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
26 août 2009

tu devrais voir du coté d'un bon viel objet COM
Messages postés
3
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
31 août 2009

Mmmh... Merci pour ta réponse Spyroo, mais pourrais tu être plus précis, je ne suis pas expert en la matière
Messages postés
15
Date d'inscription
jeudi 19 janvier 2006
Statut
Membre
Dernière intervention
26 août 2009

=)
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
Messages postés
1160
Date d'inscription
vendredi 23 juillet 2004
Statut
Membre
Dernière intervention
21 octobre 2010
18
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é
Messages postés
3
Date d'inscription
vendredi 23 mai 2008
Statut
Membre
Dernière intervention
31 août 2009

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