簡體   English   中英

DDD服務和WCF服務之間有什么區別?

[英]What is the difference between a DDD service and a WCF service?

我有一個DDD類庫。 在其中,我具有以下結構:

> Core
> - DataAccess ( my LINQ repositories)
> - Domain ( my data objects)
> - Impl (my services)

我最近在解決方案中添加了WCF項目。 該項目將向iPhone客戶端公開JSON網絡方法。 WCF方法不太復雜-GetCustomers / GetCustomerDetails / GetAlerts GetAlertDetails / GetProblems / GetProblemDetails / GetInventory / GetInventoryDe​​tails,GetDataPoints / GetDataPointDetails等

我注意到的是,WCF中的大多數方法都由DDD模型中的服務層公開。 因此,我發現自己正在做很多這樣的代碼:

public List<Alert> GetAlerts()
{
    AlertSerice _as = new AlertService;
    List<Alert> alerts = _as.GetAlerts();

    return alerts;
}

這對我來說不合適。 我想知道是否應該刪除Impl文件夾(包含所有DDD服務)並重新編譯。 然后,將DLL作為引用添加到我的WCF項目中,並將以前的DDD服務編碼為WCF方法?

WCF是否真的只需要Domain和DataAccess層?

提前致謝。

AlertSerice _as = new AlertService;
List<Alert> alerts = _as.GetAlerts();

似乎您可能錯誤地使用了域服務。

在DDD中,當一個操作必須涉及多個聚合根時,將使用域服務。

GetAlerts似乎是顯然屬於AlertRepository的功能(不僅屬於該功能,而且是該Repository的核心功能)。

對於WCF服務,它們是公共端點。 他們的工作是接收來自客戶端的請求,並在域或查詢上執行命令。 這種服務的重點通常是轉換-從原始類型的輸入參數到DTO的輸出。

從體系結構的角度來看,使用不同的服務層公開數據可以實現一定程度的抽象以及隔離受保護的方法和內部方法,您只需插入其他服務處理程序(服務配置)即可以二進制或XML格式公開數據。 您需要花費時間的地方是確保明確定義抽象級別,並確保在訪問服務層的層之間實現代碼訪問規則和安全性。

暫無
暫無

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

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