2013-11-18 2 views
0

Я хочу создать приложение, которое может отправить объект другому приложению.Лучшая практика: отправка объектов через TCP/IP между платформами

Один из них будет разработан в .NET (C# Winforms), а другой в Java. Часть .NET будет работать на клиенте Windows, в то время как клиент Java работает на операционной системе Unix с небольшими ресурсами (например, с смартфоном).

Я ищу наилучшую практику для отправки этого объекта (скажем, Car) из моего приложения .NET в приложение Java.

Я предполагаю, что сначала нужно сначала сериализовать свой объект, а затем отправить его, а затем мне придется десериализовать его снова на стороне Java.

Мой главный критерий:

  • Легкий, но большинство важно: хороший/умный
  • Generic, если это возможно.

Я думал о сериализации мой класс Car и имеющие один и тот же класс-структуру на другой платформе просто десериализации его, автоматически загружаются атрибуты.

Приложение должно просто сделать это. Существует база данных, подключенная к одной из платформ, но это не является частью моей проблемы.

Я думал о JSON или XML Serializing, но я не знаю, является ли это лучшим/умным приложением.

Я рад за любые предложения.

+0

** Close-Voting: ** * Вопросы, предлагающие нам рекомендовать или находить инструмент, библиотеку или любимый ресурс вне сайта, не относятся к теме для переполнения стека, поскольку они склонны привлекать упрямые ответы и спам. Вместо этого опишите проблему и то, что было сделано до сих пор, чтобы ее решить. * –

+0

Я хочу добавить, что я не ищу инструмент, библиотеку или ресурс вне сайта. Я ищу программный подход для моего вопроса. –

+0

На стороне .Net используйте WCF. На стороне java, я не знаю, вероятно, для этого, вероятно, должен быть ужасный java-хак. –

ответ

0

Я реализовал межплатформенную платформу единого входа, использующую JSON как lingua franca между маршаллинговыми анализаторами, специфичными для платформы.

Заменяемые пространства имен и имена классов следуют за Java common practices ради удобства чтения и разрешения имен.

Перевозчик для этой конкретной реализации был прямым постоянным соединением TCP/IP, но уровень сериализации/десериализации был полностью агностик.

Некоторые особенности требуют особого ухода - например, значения DateTime. Чтобы избежать предположений с обеих сторон, в качестве ссылочного формата я принял GMT 0-based, big endian. Коллекции (массивы, списки) также заслуживали внимания.

-1

Можете пойти с SOAP с обеих сторон - Различные инструменты Java могут генерировать/обрабатывать SOAP-сервисы и то же самое с .NET.

Если вам нужна только связь по протоколу TCP/IP без накладных расходов - используйте Sockets API с обеих сторон - сериализуйте и десериализуйте объекты с обоих концов.

+0

Если я сериализую объект в .NET и десериализую его на Java мне нужно переформатировать десериализованный объект или они просто совместимы? Я мог бы сделать это со специальным классом-оболочкой, но это лучшая практика? Извините, я просто пытаюсь научиться делать это правильно. –

+0

Возможно, не прямо на объекты (хотя вы всегда можете попробовать). Я думал о сериализации в xml или json – Ben

Смежные вопросы