2010-09-04 5 views
0

J'ai besoin d'un moyen d'échanger des données entre un processus et un service Windows. Le processus (application de formulaire de Windows, application de console, à l'avenir également une solution Web) doit instruire et interagir avec le service Windows. Je veux savoir quel est le meilleur moyen d'y parvenir. Je vais écrire la solution en C#, la version .NET Framework n'a pas d'importance. Dans le passé, j'ai utilisé Remoting (Activator), l'interface WCF avec les contrats, InterChange Exchange IPC et une implémentation de canal nommé. Quelle est votre expérience? D'autres moyens?Windows Service/Processus - échange de données/instructions

Répondre

0

Je choisirais WCF. C'est l'approche la plus moderne et probablement la mieux soutenue pour le moment. Il a "remplacé" les anciennes technologies dans la plupart des scénarios. La caractéristique intéressante du WCF est que si vous devez déplacer votre service vers un autre protocole, vous pouvez le faire simplement en configuration.

Si vous pensez que le service Windows sera toujours exécuté sur le même ordinateur que l'autre application, vous pouvez utiliser WCF avec netNamedBinding. Si vous décidez de déplacer votre service vers une autre machine, vous devrez changer la configuration (probablement en netTcpBinding) car les canaux nommés dans WCF sont limités uniquement à IPC.

0

Mes expériences antérieures ont toujours été sur un IPCChannel, principalement parce que le seul code auquel j'ai dû participer impliquait toute forme de communication inter-processus. Cela ne m'a jamais causé de problèmes et le code fonctionne très joyeusement au fur et à mesure que je tape.

La seule vraie réponse à cette question est celle qui vous convient le mieux.