2012-08-06 77 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。