2012-08-06 82 views
1

我有幾個關於Onion Architecture和MVC的問題。洋蔥建築問題?

1)域服務和應用程序服務有什麼區別?
2)Service/Repository/UnitOfWork模式如何適應這種架構?
3)你認爲這個架構是一個MVC應用程序的好計劃嗎?

對此的任何想法將不勝感激。

+1

我確定會有一個關於差異的答案,但是這裏有一個關於#3的說明:隨着時間的推移,對於我來說,「典型」的MVC應用似乎比「領域 - 業務 - 邏輯」 。最後一次它成爲具有「用戶」服務認證的項目,「內容」服務獲取數據並保存原始存儲庫。 – mikalai 2012-08-07 17:22:06

回答

2
  1. DomainService是您在域中使用的服務。 ApplicationService是您在域中向其他圖層公開的服務。

  2. 什麼服務?存儲庫通常在您的域模型中定義爲接口。您的域模型僅與界面一起工作。具體的存儲庫通過依賴注入加載並位於基礎結構或持久層中。

例如

public class RegistrationService : IRegistrationService 
{ 
    private IUserRepository mUserRepository; 

    public RegistrationService(IUserRepository userRepository) 
    { 
     mUserRepository = userRepository; 
    } 

    public void Register(string name, string password) 
    { 
     var user = new User(name, password); 
     mUserRepository.Add(user); 
    } 
} 

(希望語法正確)

在這個例子中RegistrationService是的DomainService。 另一方面,WCF服務是一個ApplicationService。