[英]Implementing a single Data Access Layer for Java and .NET
我的應用程序是用Java,.NET和C ++編寫的。 它們都使用通用數據庫。
每個應用程序都有自己的訪問數據庫的方式,因此事情非常不一致。
我正在考慮使用ORM編寫數據訪問層,並讓所有應用程序都使用它。
問題是如何實現這個ORM數據訪問層:
使用Hibernate創建一個Java包;
使用.NET和C ++應用程序中的Java包
使用Entity Framework創建.NET類庫;
使用Java應用程序中的類庫
在任何一種情況下,從其他平台訪問包/類庫是否容易? 有關路徑的任何建議嗎?
通過XML在兩個平台之間進行通信是最好的方式嗎?
PS。 我已經看過這個問題 ,但我認為我的問題是那個問題的超級集合。
PS。 制作網絡服務是一種選擇,但我寧願不寫/使用網絡服務。
這將允許您在.NET和Java之間共享代碼。 我喜歡世界上大多數理智的人更喜歡在.NET中編寫數據訪問位,但是如果你有現成的Java代碼,那么你想要提供.NET服務,這是可用的
這是最健全的,顯然是最快的起床和跑步方式。 同樣,您可以使用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/
如果您不能使用RESTful Web服務,並且假設您只使用Windows,這實際上是一種可行的可能性。 這也是最麻煩的,取決於您的要求是多么瘋狂。 話雖這么說,我之前已經看過這個,並且看到它工作得很好,特別是如果您的基礎架構中存在不同段的傳統C / C ++組件。
這聽起來有點像數據庫可以被認為是您的各種應用程序消耗到不同程度的服務。
如何編寫Web服務層以將所有訪問操作包裝到數據庫並為其啟用服務? 您可以在該層中使用ORM,並讓所有應用程序與Web服務包裝器進行交互。 如果您可以將它部署在與數據庫相同的服務器上,則不會獲得額外的網絡開銷。
我認為這將是一個不錯的跨平台方法,您不必依賴跨越平台邊界的庫,並且您已經為所有當前/未來的應用程序提供了與數據庫通信的標准方法。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.