Как я могу создать межплатформенное межпроцессное взаимодействие между .NET и Java? - PullRequest
4 голосов
/ 28 октября 2010

Я хочу разработать определенный плагин / расширение, которое должно работать в eclipse и должно интегрироваться с другим (java) плагином, но он должен собирать данные из сборок .NET (используя моно cecil ).

Итак, мой вопрос: как мне создать это отношение между кодом Java и .NET? Я знаю, что мог бы использовать mono для запуска приложения .net, например, на Linux, но у меня есть 2 проблемы, я хотел бы, чтобы плагин Java запускал приложение .NET, и вторая проблема, как позволить плагину Java делать определенные вызовы в приложение .NET.

Для этой связи между этими двумя приложениями я хотел бы быть независимым от платформы, чтобы одни и те же двоичные файлы могли работать как в Windows, OSX, так и в Linux. Другим, возможно, важным фактом является то, что результаты вызовов могут содержать довольно большую коллекцию объектов.

Или, может быть, было бы лучше / можно разместить сборку .NET внутри java и вызвать ее напрямую?

Обновление : Я думаю, что идеальный ответ решит следующие вопросы:

  • Как запустить / вызвать сборку / приложение .NET со стороны Java. (кроссплатформенный)
  • Как связаться со сборкой .NET
  • Как этот выбор влияет на модифицируемость

Ответы [ 2 ]

6 голосов
/ 28 октября 2010

Связь между приложениями.

Как разрешить Java-приложению взаимодействовать с приложением .net

Транспорт

Как передавать информацию между приложениями Java и .net.

  • Сокеты - соединения можно оставить открытыми, и обе стороны могут отправлять вещи (= выступать в роли клиента)
  • WebServices - нет открытых соединений, обработка событий будет работать не очень хорошо

Сериализация

Как преобразовать объекты во что-то, что можно легко транспортировать.

  • Простой XML - Легко начать. И Java, и .net имеют отличную поддержку XML
  • SOAP - Отлично, если вы хотите предоставить API для всех желающих. Немного сложнее.
  • Protobof - протокол сериализации Googles. Существует множество различных реализаций.
  • Специальная двоичная сериализация - Собственная библиотека сериализации

Как загрузить сборку .net из Java

Запустите Java-приложение в моно;)

http://www.ikvm.net/

1 голос
/ 28 октября 2010

Вы можете использовать Tcp / Ip, чтобы позволить им общаться

...