Кросс-язык C # и разработка Java - PullRequest
2 голосов
/ 23 октября 2009

Можете ли вы дать мне несколько советов о том, как наилучшим образом обеспечить совместимость двух приложений (одно на C #, другое на Java) и для обмена данными? Есть ли какие-нибудь ошибки, с которыми вы столкнулись?

Сценарий является двухточечным: один хост является поставщиком услуг, а другой - потребителем услуг.

Ответы [ 9 ]

3 голосов
/ 23 октября 2009

JSON для описательных данных и XML для общих типов данных. Если это недостаточно эффективно для вас, вам нужно свернуть свои собственные кодеки для обработки разницы в порядке следования байтов между C # и Java .

3 голосов
/ 23 октября 2009

Взгляните на protobuf формат обмена данными. Также доступна реализация .NET .

2 голосов
/ 23 октября 2009

Если у вас есть Java в качестве веб-сервера, вы можете использовать Jax-WS (https://jax -ws.dev.java.net / ) для создания веб-сервисов и WCF для .Net для подключения к Java Вебсервер ..

2 голосов
/ 23 октября 2009

Вместо того, чтобы сосредоточиться на конкретной технологии, лучший совет, который я могу дать, - уделить время сосредоточению внимания на интерфейсе между ними (будь то веб-служба, база данных или что-то еще полностью). Если это веб-служба, например, сфокусируйтесь на создании четкого документа WDSL. Интерфейс, интерфейс, интерфейс. По большей части старайтесь игнорировать конкретные технологии на каждом конце, за исключением некоторого прототипирования, чтобы оба языка поддерживали ваш выбор.

Кроме того, за пределами основных контрольно-пропускных пунктов, не сосредотачивайтесь на эффективности. Сосредоточиться на ясности. Скорее всего, у вас будет две команды (то есть разные люди), работающие на любом конце этого интерфейса. Убедиться, что они правильно его используют, гораздо важнее, чем сделать все немного быстрее.

1 голос
/ 23 октября 2009

Мы используем C # / VB.Net для наших веб-интерфейсов и Java для нашего толстого клиента. Мы используем XML и веб-сервисы для связи между базой данных и серверами приложений. Работает очень хорошо.

1 голос
/ 23 октября 2009

Вы можете использовать что-то вроде XML (что не всегда так эффективно) или вам нужно придумать собственный проприетарный двоичный формат (эффективный, но гораздо больше работы). Я бы начал с XML, и если пропускная способность становится проблемой, вы всегда можете переключиться на проприетарный двоичный формат.

Что-то вроде SOAP (Википедия) поддерживается как C #, так и Java.

0 голосов
/ 23 октября 2009

Если вы используете XML, вы можете фактически передать доступ к данным в виде операторов XPath, которые могут храниться в общем ресурсе, используемом обоими приложениями. Это начало.

0 голосов
/ 23 октября 2009

Это такой широкий вопрос, но я бы рекомендовал сосредоточиться на стандартах, применимых к обеим платформам; XML или другая стандартная форма сериализации, использующая REST для сервисов, если им требуется взаимодействие.

0 голосов
/ 23 октября 2009

Убедитесь, что вы используете четко определенный протокол для передачи данных, и напишите тесты, чтобы гарантировать, что приложения отвечают в соответствии с контрактом.

...