Реализация единого уровня доступа к данным для Java и .NET - PullRequest
6 голосов
/ 04 сентября 2011

У меня есть приложения, написанные на Java, .NET и C ++. Все они используют общую базу данных.

Каждое приложение имеет свой собственный способ доступа к базе данных, и поэтому все довольно противоречиво.

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

Вопрос в том, как реализовать этот уровень доступа к данным ORM:

  1. Создание пакета Java с использованием Hibernate;
    использовать пакет Java из приложений .NET и C ++

  2. Создание библиотеки классов .NET с использованием Entity Framework;
    использование библиотеки классов из приложений Java

В любом случае, легко ли получить доступ к библиотеке пакетов / классов с другой платформы? Любые предложения по пути, чтобы принять?

Является ли обмен данными через XML между двумя платформами лучшим способом?

Ps. Я уже видел этот вопрос , но я думаю, что мой вопрос является супер-набором этого вопроса.

Ps. Создание веб-сервиса - вариант, но я бы предпочел не писать / не использовать веб-сервис.

Ответы [ 3 ]

2 голосов
/ 04 сентября 2011

iKVM

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

http://www.ikvm.net/

Веб-служба RESTful ++

Это самый разумный и, очевидно, самый быстрый способ начать работу.Опять же, вы можете использовать что-то вроде Jersey, ASP.NET MVC, NancyFx или любой другой сервер приложений REST, который вы хотите запустить и запустить.

Я бы порекомендовал вам использовать NancyFx и ServiceStack.Text.Это две очень простые и очень чистые реализации, которые чрезвычайно быстрые, что вам и нужно, если вы используете его как унифицированный DAL поверх вашей базы данных.

Nancy: https://github.com/NancyFx/Nancy/

ServiceStack.Text: https://github.com/ServiceStack/ServiceStack.Text

Джерси: http://jersey.java.net/

ZOMG T3h H0rror - COM + / DCOM

Это фактически возможная возможностьесли вы не можете использовать веб-службы RESTful, а также при условии, что вы работаете исключительно в Windows.Это также будет самым неприятным в зависимости от того, насколько безумны ваши требования.Тем не менее, я видел, как это делалось раньше, и видел, что это работает довольно хорошо, особенно если у вас есть устаревшие компоненты C / C ++, живущие в разных сегментах вашей инфраструктуры.

1 голос
/ 04 сентября 2011

Является ли обмен данными через XML между двумя платформами лучшим способом?

Это приведет к проблемам с производительностью, но обеспечит унифицированный слой данных в независимом от языка режиме. Вы можете рассмотреть сервер служб данных WSO2 с открытым исходным кодом , если вы решите продолжить этот подход ...

Спасибо ...

0 голосов
/ 04 сентября 2011

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

А как насчет написания слоя веб-службы, чтобы обернуть все операции доступа и включить службу?база данных?Вы можете использовать ORM на этом уровне, и все ваши приложения взаимодействуют с оболочкой веб-службы.Если вы сможете развернуть его на том же сервере, что и база данных, у вас не возникнет много дополнительной нагрузки на сеть.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...