3

我正在研究N層體系結構,以便在iOS,Android和C#ASP.NET MVC項目上共享盡可能多的代碼。跨平臺代碼共享的最佳實踐

我已經分隔我的幾層的解決方案:

  • 接口
  • DAL(實體框架6型號/ dB一)
  • BLL
  • 介紹

我已經從我的DAL中分離出BLL,所以BLL不知道DAL。它由PL注入。那是因爲我想分享我的BLL,因爲它在多個平臺上都是一樣的。這次注射的缺點是我的PL需要參考我的DAL。在這種情況下可能需要這樣做,因爲iOS和Andriod不支持EF到本地數據庫,至少不是我知道的。

我不確定在這方面走的是正確的道路。另一種方法是創建一些引用我的BLL的web服務。這種解決方案的缺點是需要互聯網連接。 Id在這個項目中沒有這個要求。

目前我懷疑我會左轉還是右轉。有沒有人有任何提示或知道關於這個問題的一些好文章?

回答

1

聽起來好像你在手動注入依賴關係而不是使用IoC容器,這就是表示層調用BLL時需要傳遞對DAL的引用的原因。

在IoC容器中註冊您的類型並使用它來實例化BLL,它會自動將引用注入到DAL中。這樣,只有建立IoC容器的引導代碼才需要知道具體的類型。

關於您使用的特定IoC容器,您有很多選項。我最近將大量現有代碼整合到使用Unity的移動應用程序中,效果良好。