【发布时间】:2016-08-12 01:44:13
【问题描述】:
我正在研究如何构建项目,因此我偶然发现了 Onion Architecture。据我了解,它更像是一种以领域为中心的架构,而不是数据库驱动的类型。
我正在寻找一些github项目来学习和了解更多关于架构的信息,所以我找到了这个https://github.com/chetanvihite/OnionArchitecture.Sample
我很难理解:
namespace Domain.Interfaces
{
public interface IUserRepository
{
IEnumerable<User> GetUsers();
}
}
namespace Services.Interfaces
{
public interface IUserService
{
IEnumerable<User> GetUsers();
}
}
namespace Services
{
public class UserService : IUserService
{
private readonly IUserRepository _repository;
public UserService(IUserRepository repository)
{
_repository = repository;
}
public IEnumerable<User> GetUsers()
{
return _repository.GetUsers();
}
}
}
他如何使用它是通过构造函数注入。
private readonly IUserService _service;
public HomeController(IUserService service)
{
_service = service;
}
您是否总是将
IUserService之类的服务公开给使用它的应用程序?但我注意到,IUserRepository和IUserService有相同的方法?如果您说基础架构问题,是指还是涉及数据库?或者不一定?如果不是,有哪些基础设施问题的例子?
- 您对免费项目/github 项目有什么建议吗?我可以下载这些项目以进一步了解或研究 onion 架构?我更了解示例
附: 当我学习洋葱架构时,它总是,如果不是总是,至少它提到了 DDD。所以我想,我也会学习 DDD :)
【问题讨论】:
-
一篇非常好的文章,介绍了 DDD 中不同类型的服务,并附有代码:gorodinski.com/blog/2012/04/14/…
标签: c# domain-driven-design onion-architecture