簡體   English   中英

.NET桌面應用程序(服務)三層應用程序

[英].NET Desktop Application (Service) 3-tier application

我剛剛開始設計一個供應用程序或服務使用的.NET庫(但這與三層體系結構無關嗎?),我正在努力尋找適當的關注點並在同時以適當的方式將DAL與BL鏈接起來。

我一直在尋找教程等,但是它們都指向ASP.NET和Entity Framework,但是我想使用ADO.NET(DataSet,DataTables)來構建用於桌面應用程序/ Windows服務使用的庫。

任何人都可以通過提供示例/示例性樣例或教程/指南來為我指明正確的方向嗎?

@編輯

我在想這樣的事情:

DbManager-抽象類XDbManager-X是從DBManager派生的提供程序,SQL等,是單例類(我更喜歡靜態的,但是它們不能實現接口或從類派生)DbConnection-DbManager方法返回的對象,包含用於查詢的方法

BaseDbo-數據庫對象XDbo的抽象類-X是DBO的名稱,使用DbManager => DbConnection進行查詢(保存,檢索,檢索集,存儲集?這是我有點困惑的地方,我需要一些持久性數據集來保存,更新,從表中檢索數據-應該將它們實現為從數據集派生的數據庫對象嗎?)

BaseBo-業務對象的抽象類XBo-處理和處理數據等的業務對象類。

在上面說,我找不到“鏈接”這兩層的正確方法。

我還需要在這里使用SOAP Web服務,是否應該在業務層上實現? 還是應該引入一個新的子層?

如果您的應用程序設計正確,則使用EF或ADO.Net沒什么大不了的:這就是DAL抽象的重點。 也就是說,您仍然可以使用以下方法:

public IEnumerable<User> GetAllUsers()
{
    ....
}

這將返回您的所有用戶。 它的實現方式(即實體框架或ADO.Net)並不重要。 唯一的區別是您的DAL將無法返回IQueryable<T> (即,延遲執行將不起作用,否則您將需要在ADO.Net之上使用另一個抽象層)。

與ASP.Net與桌面應用程序相同:這也應該相差不大。 您應該使用WCF服務而不是ASP.Net MVC控制器。 您可以從WCF生成的客戶端代理中調用方法,而不是直接從控制器中調用BL。

您可以閱讀的有關3層應用程序的所有內容也都適用於您的用例。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM