La meilleure façon de communiquer entre les 2 .Net applications?
Si je contrôle les deux applications, ce qui est le meilleur moyen de communiquer entre les 2 exe qui est écrit dans VB.Net. Par exemple, je veux supprimer un fichier XML à partir d'une seule application, et de le ramasser avec les autres, mais je ne veux pas de sondage pour le fichier. J'ai entendu parler de canaux nommés, mais j'ai trouvé que c'était compliqué. Quel est le plus efficace moyen de faire cela?
Êtes-vous sûr que vous entendez par "plus efficace" plutôt que de "bonnes pratiques"? Si vous voulez vraiment "plus efficace" que vous devriez probablement rester à l'écart de tout XML.
"Plus efficace" serait certainement commence avec pas à l'aide de deux processus distincts.
"Plus efficace" serait certainement commence avec pas à l'aide de deux processus distincts.
OriginalL'auteur ajl | 2010-04-10
Vous devez vous connecter pour publier un commentaire.
La façon la plus simple est probablement d'utiliser Windows Communication Foundation. Cette l'article a un exemple de code écrit en VB.NET.
OriginalL'auteur Mark Byers
Vous n'avez pas de sondage pour le fichier. Utiliser un FileSystemWatcher.
J'ai lu que le FileSystemWatcher n'est pas toujours fiable et vous pouvez parfois perdre quelques changements. Si vous suivez cette voie, vous pouvez toujours scrutin temps en temps pour vérifier que vous n'avez pas raté quelque chose. Source: stackoverflow.com/questions/239988/...
Quelque chose de construit sur la FileSystemWatcher pourrait avoir des problèmes avec des conditions de course. Il pourrait encore être la solution la plus simple mais @ajl être sûr de trouver quelque chose pour éviter cela. Peut-être utiliser une ".partielle" extension de fichier sur des fichiers XML qui sont encore en cours d'écriture par le premier programme et le deuxième programme pourrait éviter de fichiers avec l'extension.
OriginalL'auteur newdayrising
La manière la plus simple serait d'utiliser WCF. L'application du récepteur pourrait héberger un simple service WCF et l'expéditeur peut envoyer le fichier.
OriginalL'auteur John Saunders
.NET 4 inclut le support pour fichiers mappés en mémoire. Avec ces derniers vous pouvez même éviter la nécessité d'utiliser le système de fichiers. Toutefois, si le processus ne sont pas en cours d'exécution sur la même machine, vous devrez utiliser une autre méthode (comme mentionné par d'autres, WCF serait une bonne).
OriginalL'auteur R. Martinho Fernandes
Si vous pouvez modifier le .exe fichier ici est la façon la plus simple:
Ajouter un FileSystemWatcher Objet dans une de la .exe et un Filtre à un fichier Spécifique, par exemple “Commands.txt”
D'étoiles/arrêter la surveillance, définir le chemin d'accès et le EnableRaisingEvents propriété à True ou à False
Cet Événement est déclenché lorsque les modifications du fichier:
Cette façon, vous n'obtiendrez un événement lorsque le fichier est modifié, et pas besoin d'utiliser les minuteries ou quoi que ce soit d'autre.
L'autre .exe fichier, il suffit d'écrire les commandes ou le message que vous souhaitez envoyer:
Cet exemple écrit le courant datetime écraser le fichier à chaque fois.
Fait!
OriginalL'auteur Daniel