2010-07-28 4 views
1

Je travaille dans .net depuis quelques années, et c'est ma première incursion dans l'IPC. Je connais les différentes possibilités de faire IPC (Named Pipes, Remoting, Gestion de Presse-papiers, messagerie Win32API), mais je ne sais pas ce qui est "juste pour moi". Je prévois d'utiliser la configuration suivante:C# IPC Recommandations et comparaisons

Site Objet: C'est la raison pour laquelle l'ipc est nécessaire. Ce sera un seul objet représentant une collection de fichiers sur une machine distante (peut être local, peut être vraiment distant). Serveur: Le processus server.exe surveillera le système de fichiers mentionné ci-dessus et mettra à jour l'objet Site. Ce processus gardera alors tous les clients \ all connectés au serveur, en donnant de nouvelles copies de l'objet Site à intervalles réguliers. (Soit à partir des mises à jour forcées du client ou des mises à jour automatiques du serveur). Client: Doit être régulièrement mis à jour sur le «site». Il veut également avoir la possibilité de modifier l'objet Site (ou au moins envoyer des messages au serveur en lui demandant de faire des modifications spécifiques.)

Version TL; DR: instance de Singleton sur le serveur (qui va modifier activement le singleton) ., avec plusieurs clients surveillance du singleton le client peut changer (ou demander au serveur de changer) le singleton

notes:.. Tout .net, pas de mélange de plates-formes que j'ai regardé dans Remoting, mais il semblait hors de contexte pour l'application que je voudrais avoir (ou je ne l'ai pas compris complètement)

Je ne suis pas sûr si ceux-ci sont mieux adaptés pour un wiki de la communauté ou non, n'hésitez pas à le branler.

Merci

+0

Cela ressemble à une affectation de niveau collégial :) – sukru

+1

Remoting prend en charge les événements, mais je ne l'utiliserais pas, sauf sur un réseau local. Vous pouvez regarder dans WCF et double liaison pour l'envoi de messages en arrière et en avant. Lire aussi SO - http://stackoverflow.com/questions/56121/ipc-mechanisms-in-c-usage-and-best-practices –

+0

Ha, je le souhaite où une cession de collège. Nous remplaçons un système vieux de 15 ans qui a fait la même chose. Notre solution consistait alors à rouler notre propre IPC basé sur Shmem. Nous espérons faire quelque chose de similaire, mais nous voulons être en mesure de le faire avec des objets. – greggorob64

Répondre

3

.NET Remoting est juste la fonctionnalité de .NET 2.0 - un ensemble de techniques et de bibliothèques qui simplifie l'utilisation des moyens de commutication inter-processus commun (canaux nommés, les sockets réseau, HTTP post/get requêtes

Dans .NET 3.0, il s'agit de WCF. Donc les paroles, quant à vous: utilisez les sockets TCP entre machines sur le réseau local sécurisé, utilisez HTTP (Soap, WebMethods, ou juste HTTP) sur Internet et IPC sur une machine pour communiquer les processus (client et serveur) La plate-forme que vous choisissez (.NET 2.0 Remoting ou .NET 3.0 WCF) - c'est à vous de choisir.

P.S .: J'utilise encore le framework .NET 2.0 Remoting.

+0

Merci pour l'info, il y a une mise en garde que nous le faisons dans Visual C++ .net, et WCF n'est pas disponible, donc je suis sûr que j'ai juste besoin de continuer à chercher comment faire pour que le remoting fonctionne. – greggorob64