为Java和.NET实现单个数据访问层

时间:2011-09-04 06:06:20

标签: java .net orm

我的应用程序是用Java,.NET和C ++编写的。它们都使用通用数据库。

每个应用程序都有自己的访问数据库的方式,因此事情非常不一致。

我正在考虑使用ORM编写数据访问层,并让所有应用程序都使用它。

问题是如何实现这个ORM数据访问层:

  1. 使用Hibernate制作Java包;
    使用.NET和C ++应用程序中的Java包

  2. 使用Entity Framework创建.NET类库;
    使用Java应用程序中的类库

  3. 在任何一种情况下,是否可以轻松地从其他平台访问包/类库?有关路径的任何建议吗?

    通过XML在两个平台之间进行通信是最好的方式吗?

    聚苯乙烯。我已经看过this question,但我认为我的问题是那个问题的超集。

    聚苯乙烯。制作网络服务是一种选择,但我不想编写/使用网络服务。

3 个答案:

答案 0 :(得分:2)

的iKVM

这将允许您在.NET和Java之间共享代码。我喜欢世界上大多数理智的人更喜欢在.NET中编写数据访问位,但是如果你有现成的Java代码,你想提供.NET服务,这是可用的

http://www.ikvm.net/

RESTful Web Service ++

这是最明智,最明显的最快起床和跑步方式。同样,您可以使用Jersey,ASP.NET MVC,NancyFx或您想要启动和运行的任何REST应用程序服务器。

我建议您使用NancyFx和ServiceStack.Text。这是两个非常简单的非常纯粹的实现,并且非常快速,如果您在数据库之上将其用作统一DAL,那么这就是您想要的。

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

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

泽西岛:http://jersey.java.net/

ZOMG T3h H0rror - COM + / DCOM

如果您不能使用RESTful Web服务,并且假设您只使用Windows,这实际上是可行的。这也是最麻烦的,取决于您的要求是多么疯狂。话虽这么说,我之前已经看过这个,并且看到它工作得很好,特别是如果你的基础设施中有不同的细分市场,你可以使用传统的C / C ++组件。

答案 1 :(得分:1)

  

通过XML在两个平台之间进行通信是最好的方式吗?

这会产生性能问题 - 但会以独立于语言的方式提供统一的数据层。如果你选择采用这种方法,你可以考虑开源WSO2 Data Services Server ......

...谢谢

答案 2 :(得分:0)

听起来有点像数据库可以被认为是各种应用程序在不同程度上消耗的服务。

如何编写Web服务层以将所有访问操作包装到数据库并为其启用服务?您可以在该层中使用ORM,并让所有应用程序与Web服务包装器进行交互。如果您可以将它部署在与数据库相同的服务器上,则不会获得额外的网络开销。

我认为这将是一个不错的跨平台方法,您不必依赖跨越平台边界的库,并且您已经为所有当前/未来的应用程序提供了与数据库通信的标准方法。