Jaki jest najlepszy wybór for.NET komunikacja między procesami? [zamknięte]

zamknięte . To pytanie jest oparte na opinii . Obecnie nie przyjmuje odpowiedzi.

chcesz poprawić to pytanie? Zaktualizuj pytanie, aby mogło być odpowiedź z faktami i cytatami przez edytując ten post .

Zamknięte 6 lat temu .

Popraw to pytanie

Czy powinienem używać nazwanych rur lub. NET Remoting, aby komunikować się z uruchomionym procesem na moim komputerze?

Author: tshepang, 2008-09-17

8 answers

WCF to najlepszy wybór. Obsługuje wiele różnych mechanizmów transportu (w tym nazwane rury) i mogą być całkowicie skonfigurowane. Gorąco polecam zajrzeć do WCF.

Oto blog, który robi WCF vs Remoting performance comparison .

Cytat z bloga:

WCF i. NET Remoting są naprawdę porównywalne pod względem wydajności. Różnice są tak małe (pomiar opóźnienie klienta), że nie ma znaczenia, który z nich jest nieco szybszy. WCF ma jednak znacznie lepszą przepustowość serwera niż Remoting. NET. Gdybym miał rozpocząć zupełnie nowy projekt, wybrałbym WCF. W każdym razie WCF robi znacznie więcej niż Remoting i za wszystkie te funkcje uwielbiam go.

Sekcja MSDN dla WCF

 58
Author: Eric Schoonover,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-14 17:31:32

Jeśli jest na jednej maszynie, Named Pipes daje lepszą wydajność i może być zaimplementowany z remoting infrastructure jak również WCF. Możesz też użyć bezpośrednio System. IO. Pipes.

 15
Author: Mark Cidade,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-05-07 14:53:06

Jeśli masz na myśli komunikację między procesami, używałem do tej pory Remoting. Net bez żadnego problemu. Jeśli oba procesy są na tej samej maszynie, komunikacja jest dość szybka.

Nazwane rury są zdecydowanie bardziej wydajne, ale wymagają zaprojektowania przynajmniej podstawowego protokołu aplikacji, co może nie być wykonalne. Remoting pozwala z łatwością wywoływać metody zdalne .

 5
Author: Dario Solera,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2009-08-14 17:32:01

Remoting w.NET Framework 2.0 dostarcza kanał IPC do komunikacji między procesami wewnątrz tej samej maszyny.

 3
Author: icelava,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 16:48:51

Jeśli używasz. NET Framework 3.0 lub nowszego, użyłbym WCF. Korzystając z WCF, możesz użyć różnych wiązań depeneding na kompromis między performance/interop / etc. tego potrzebujesz.

Jeśli wydajność nie jest krytyczna i potrzebujesz interakcji z innymi technologiami usług internetowych, będziesz chciał użyć wiązania WS-HTTP. W Twoim przypadku możesz użyć WCF z wiązaniem net-tcp lub wiązaniem nazwanym-pipe. Jedno i drugie powinno zadziałać.

Moim osobistym zdaniem podejście WCF jest bardziej czysty, jak można robić usługi oparte na kontraktach i skupić się na wiadomościach, a nie obiektach (uogólniam tutaj na podstawie domyślnych modeli programowania WCF/. NET Remoting). Nie lubię wysyłać obiektów przez przewód, ponieważ wiele informacji semantycznych ginie lub nie jest jasne. Kiedy wszystko, co robisz, to wysyłanie wiadomości, tak jak w WCF, łatwiej jest oddzielić swoje obawy między komunikacją a klasami / infrastrukturą, z której składa się pojedynczy węzeł.

 3
Author: Jason Olson,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 18:52:36

WCF zapewnia również elastyczność. Po prostu zmieniając konfigurację (Wiązanie) możesz mieć tę samą usługę na innej maszynie zamiast IPC na tej samej maszynie. Dlatego Twój kod pozostaje elastyczny.

 2
Author: Vikram I Code,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2010-07-06 10:02:26

. NET remoting nie jest protokołem samym w sobie. Pozwala wybrać, którego protocal użyć: SOAP, named-pipes, itp.

 1
Author: Joel Coehoorn,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 16:09:00

. NET remoting jest wbudowany w. NET do wewnętrznej komunikacji procesu. Jeśli tego użyjesz, będą nadal wspierać i ewentualnie ulepszać je w przyszłych wersjach. Nazwane rury nie daje obietnicy ulepszeń w przyszłych wersjach. Net

 0
Author: kemiller2002,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2008-09-17 16:07:11