Ich arbeite daran, Projekte zu strukturieren und stoße auf Zwiebelarchitektur. Soweit ich es verstehe, handelt es sich eher um eine domänenzentrierte Fokusarchitektur als um einen datenbankgestützten Typ.Wieso in der Onion Architecture den Service anstelle des Repositorys verfügbar machen?
Ich suche nach einigen GitHub Projekte mehr über die Architektur zu studieren und zu lernen, so fand ich dieses https://github.com/chetanvihite/OnionArchitecture.Sample
Ich habe eine harte Zeit Verständnis mit:
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();
}
}
}
Wie er benutzt es ist durch Konstruktorinjektion.
private readonly IUserService _service;
public HomeController(IUserService service)
{
_service = service;
}
Setzen Sie immer einen Dienst wie
IUserService
zu einer App, die es verbraucht? Aber ich habe bemerkt,IUserRepository
hat die gleichen Methoden wieIUserService
?Wenn Sie sagen Infrastructure betrifft, bedeutet es, oder beinhaltet es eine Datenbank? Oder nicht unbedingt? Wenn nicht, was sind Beispiele für Infrastrukturprobleme?
- Haben Sie eine Empfehlung zu kostenlosen Projekten/github-Projekten, die ich herunterladen kann, um mehr über Zwiebelarchitektur zu erfahren oder zu lernen? Ich verstehe besser auf Beispiele
P. S. Als ich Zwiebel Architektur lerne, es immer, wenn nicht immer, zumindest erwähnt es über DDD. Also ich denke, ich werde DDD auch lernen :)
Ein sehr guter Artikel über die verschiedenen Arten von Dienstleistungen in DDD, mit einigem Code: http://gorodinski.com/blog/2012/04/14/services-in -domain-driven-design-ddd/ – guillaume31