Еще можно воспользоваться очередями...
На C# написать простейшую программу для этого - дело 3х-4х строк.
Суший пустяк, только msmq поставить придется. Еще можно написать простейшую программу - 3-4 строки, не больше - для передачи данных по SOAP через IIS (его тоже придется поставить, конечно). Но все-таки путь настоящего джедая - это ловить SendMessage под .NET. Гарантирует незаменимость написавшего надолго.
Если серьезно, то .net remoting для обмена данными между двумя программами (обе под .NET) - то, что доктор прописал.
Еще можно воспользоваться очередями...
На C# написать простейшую программу для этого - дело 3х-4х строк.
Суший пустяк, только msmq поставить придется. Еще можно написать простейшую программу - 3-4 строки, не больше - для передачи данных по SOAP через IIS (его тоже придется поставить, конечно). Но все-таки путь настоящего джедая - это ловить SendMessage под .NET. Гарантирует незаменимость написавшего надолго.
Если серьезно, то .net remoting для обмена данными между двумя программами (обе под .NET) - то, что доктор прописал.
remoting достаточно тормозной протокол... имхо сообщения или pipes.
Но все-таки путь настоящего джедая - это ловить SendMessage под .NET. Гарантирует незаменимость написавшего надолго.
Если серьезно, то .net remoting для обмена данными между двумя программами (обе под .NET) - то, что доктор прописал.
Да, если на обоих концах - .NET (правда, MS сейчас говорит, что WCF будет заменять remoting). А что из-под флеша лучше использовать - не знаю. Интеграция с С/С++ dll у них прямо в документации расписана, а как там сделать dll под .NET, еще разбираться надо.
Не знаю насчет незаменимости того, кто будет ловить SendMessage под .NET. В документации сходу находится класс NativeWindow. Скажу честно, я его никогда не использовал, а remoting использовал, но я думаю, что мне бы проще было для простенькой программы разобраться с ловлей сообщений, чем вспоминать, как конфигурируется remoting.
remoting достаточно тормозной протокол... имхо сообщения или pipes.
Сдается мне, что не тормознее WCF
Кстати, pipes - это выход, причем далеко не самый худший К тому же, shared memory здесь еще не упоминали, как мне кажется. Правда это уже будет unmanaged код, но что зато быстрее, чем все вышеперечисленные способы, особенно для тяжелых данных - но тогда обе программы должны крутиться на одном хосте, конечно.
Еще неплохо бы sockets использовать, если программы на разных хостах, а требуется быстро передать данные. Все ваши MSMQ, WCF, remoting и иже с ними - есть не что иное, как высокоуровневые слои над теми же TCP/UDP.
А вообще - всем читать про IPC
Когда я говорю, у всех такое ощущение, что я - брежу.
remoting достаточно тормозной протокол... имхо сообщения или pipes.
Сдается мне, что не тормознее WCF
Кстати, pipes - это выход, причем далеко не самый худший К тому же, shared memory здесь еще не упоминали, как мне кажется. Правда это уже будет unmanaged код, но что зато быстрее, чем все вышеперечисленные способы, особенно для тяжелых данных - но тогда обе программы должны крутиться на одном хосте, конечно.
Еще неплохо бы sockets использовать, если программы на разных хостах, а требуется быстро передать данные. Все ваши MSMQ, WCF, remoting и иже с ними - есть не что иное, как высокоуровневые слои над теми же TCP/UDP.
А вообще - всем читать про IPC
Я хотел WM_COPYDATA упомянуть но потом подумал что гемороя там будет слишком много
remoting достаточно тормозной протокол... имхо сообщения или pipes.
Сдается мне, что не тормознее WCF
Кстати, pipes - это выход, причем далеко не самый худший К тому же, shared memory здесь еще не упоминали, как мне кажется. Правда это уже будет unmanaged код, но что зато быстрее, чем все вышеперечисленные способы, особенно для тяжелых данных - но тогда обе программы должны крутиться на одном хосте, конечно.
я на 2.0 работаю, с новыми приблудами (3.х и еже с ним) еще на работал.
shared memory == unnamed piped, или я не прав?
в 3.х пайпы уже встроены (system.io.pipes), на днях читал в апрельском msdnmag.
Сообщение от Power
Еще неплохо бы sockets использовать, если программы на разных хостах, а требуется быстро передать данные. Все ваши MSMQ, WCF, remoting и иже с ними - есть не что иное, как высокоуровневые слои над теми же TCP/UDP.
А вообще - всем читать про IPC
тебя послушать Леха, так для того чтобы передать 3 байта между аппами нужно писать свои драйвера
Еще неплохо бы sockets использовать, если программы на разных хостах, а требуется быстро передать данные. Все ваши MSMQ, WCF, remoting и иже с ними - есть не что иное, как высокоуровневые слои над теми же TCP/UDP.
А вообще - всем читать про IPC
тебя послушать Леха, так для того чтобы передать 3 байта между аппами нужно писать свои драйвера
Это мне напоминает разговор года три назад в fido7.russian.z1. Кто-то описал свою проблему, какую-то там коммуникацию нужно было между машинами устроить, народ начал предлагать разные решения, долго обсуждали что-то в меру навороченное, а потом кто-то сказал, что, ребята, ерунда все это, не нужно огород городить, там достаточно программку сделать, которая раз в день будет паковать все в файл и посылать его на сервер по ftp . В ответ на что автор исходного вопроса возразил: "Ну да, а в резюме я что себе напишу? Посылал файлы по ftp??".
тебя послушать Леха, так для того чтобы передать 3 байта между аппами нужно писать свои драйвера
Не, я как раз намекаю на то, что для того, чтобы передать 3 байта, не обязательно использовать такие тяжелые кувалды как remoting или WCF, которые здесь так сильно рекомендуют. Достаточно на одном конце двумя-тремя командами открыть сокет и послать эти 3 байта, а на другом - двумя-тремя командами прочитать данные с этого сокета, не заворачивая все это в мегапротоколы. Просто и доступно. Гвозди можно забивать маленьким молотком, пневматической кувадлой тоже можно, но имхо не совсем кошерно.
Касательно unnamed pipe = shared memory - я бы не сказал. Все-таки немного разные принципы
Когда я говорю, у всех такое ощущение, что я - брежу.
Не, я как раз намекаю на то, что для того, чтобы передать 3 байта, не обязательно использовать такие тяжелые кувалды как remoting или WCF, которые здесь так сильно рекомендуют. Достаточно на одном конце двумя-тремя командами открыть сокет и послать эти 3 байта, а на другом - двумя-тремя командами прочитать данные с этого сокета, не заворачивая все это в мегапротоколы. Просто и доступно. Гвозди можно забивать маленьким молотком, пневматической кувадлой тоже можно, но имхо не совсем кошерно.
Как запустить прогу, написаную под .net на компе без .net framework?
Стандартно - никак.
Хотя вроде есть 3rd party tools, типа такого, которые говорят, что умеют это делать.
Но оно тебе надо? Может, проще без дотнета написать?
Comment