Communication entre 2 applications .NET
Le
Gilles TOURREAU
Bonjour,
J'ai 2 applications que j'ai réalisé en .NET (App1 et App2).
Je voudrais piloter App1 via App2 (Un peu comme une application .NET
qui pilote Excel).
Existe-il un moyen de récupérer une instance d'une classe d'une autre
application .NET ?
Pour information, je peux modifier les codes sources de mes 2
applications si nécessaire
En vous remerciant par avance de vos lumières !
Cordialement
--
Gilles TOURREAU
Responsable Informatique
gilles.tourreau@pos.fr
Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr
J'ai 2 applications que j'ai réalisé en .NET (App1 et App2).
Je voudrais piloter App1 via App2 (Un peu comme une application .NET
qui pilote Excel).
Existe-il un moyen de récupérer une instance d'une classe d'une autre
application .NET ?
Pour information, je peux modifier les codes sources de mes 2
applications si nécessaire
En vous remerciant par avance de vos lumières !
Cordialement
--
Gilles TOURREAU
Responsable Informatique
gilles.tourreau@pos.fr
Société P.O.S
Spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr

Poser une question


Les technologies COM devraient répondre au problème. Il faudra
modifier les 2 codes sources.
http://msdn.microsoft.com/library/d...s/csref/ht ml/vcwlkCOMInteropPart1CClientTutorial.asp
Olivier
On 24 jan, 11:49, Gilles TOURREAU
L'utilisation de COM n'est pas dans la philosophie .Net et devrait être
évitée sauf contrainte forte. Là où l'on parlait de COM dans le monde Win32,
on parle de .Net Remoting dans le monde .Net, voire de Web Services. Le
choix entre Web Services et .Net Remoting dépend de nombreux critères mais
pour une communication en local entre 2 applications, .Net Remoting fait
parfaitement l'affaire.
http://www.dotnet-tech.com/tutoriels/remoting/
http://www.c2i.fr/code.aspx?IDCodeX9
Vous pouvez également utiliser pour la communication entre les 2 applis, les
mécanismes d'IPC habituels: sockets, pipes,... Mais pour parler d'objet à
objet, .Net Remoting est mieux adapté.
--
Patrick Philippot - Microsoft MVP
MainSoft Consulting Services
www.mainsoft.fr
il faut faire du Remoting puisque les deux applis sont .Net c'est le
plus naturel. Si le pilotage doit pouvoir se faire aussi depuis des
softs non .net il faut alors préférer la technique des web service.
Maintenant il existe aussi des tas d'autres possibilités comme utiliser
les named pipes, ou une liaison tcp/ip.
--
///\3rL1n____
suivants par rapport a COM :
- Sous DCOM si le second exe n'est pas lance, la creation d'un objet
lancera automatiquement l'exe. C'est tres pratique. La il va falloir
gerer le cas de qui lance l'exe, si c'est toi il faudra connaitre le
chemin de ce fichu exe, etc.
- sous DCOM la gestion des identites, cest a dire sous quel compte est
lance l'exe, est plus simple pour le cas mentionnee.
- sous DCOM on s'emmerde pas la vie si un port TCP/IP est deja pris par
une autre appli. Je sais qu'on peut mettre cela dans un fichier config
mais en pratique les fichiers config c'est vite la pagaille et on finit
par quasiment tout foutre dans une base de donnees => plus de dev. Le
choix d'une channel IPC est a envisager mais cela veut dire qu'il faut
absolument que les 2 exes soient toujours sur la meme machine.
- C'est infiniment plus lent que COM.
- + divers problemes que tu trouveras tres vite.
--
Michael
----
http://michael.moreno.free.fr/
http://port.cogolin.free.fr/
Je vous remercie pour votre réponse (ainsi que pour les autres réponses
des autres personnes)...
Mais en fait je cherche quelque de très simple :
J'ai 2 applications .NET (En Forms pour être précis) qui sont executés en
local.
Il n'y aura pas de communication entre ces 2 applications via un réseau
quelconque...
L'application App1 se lance et créer une instance de la classe "App1Class".
L'application App2 se lance :
- Essaye de voir si l'application App1 est lancé (si pas lancé, message
d'insulte à l'utilisateur)
- Récupère l'instance App1Class qui a été crée par App1
- Utilise les méthodes public de App1Class...
Je cherche juste à faire ceci...
Je trouve que Remoting et le WebService demande trop de programmation
supplémentaire (sérialiser des objets...etc)
Par contre (là je n'y connais pas grand chose) le COM ne nécessite pas
aussi de "formater" les méthodes de façon à ce qu'elle puisse être appellé
depuis n'importe quel autre type d'application ? Ne faut'il pas en plus
ajouter "un proxy" pour appeler ce service ?
En vous remerciant par avance de vos lumières...
Cordialement
--
Gilles TOURREAU
Responsable Informatique
S.A.R.L. P.O.S
Le spécialiste en motoculture depuis + de 30 ans !
http://www.pos.fr