Question sur l'architecture Domain-driven design
Question sur l'architecture Domain-driven design
J'ai un site de gestions de questions. Et j'utilise l'architecture Domain-driven design.
Je l'ai fait il y a quelque temps, je ne retrouve plus la documation qui m'a inspiré.
J'ai des doutes si je l'ai bien fait ?
J'ai d'autres tables dans ma base de donnée. Je peux utiliser les mêmes class où dois-je en créer des nouvelles pour chaque table, ou juste faire un repository différent par table ?
J'ai aussi des interactions métiers entre les tables, où dois-je les incorporer ?
Par exemple, si j'ai mon user qui fait partit d'un groupe il peut récuperer certaine question et pas d'autre. (voir des choses plus complexe)
Merci pour votre aide
Boostrap sur la partie WEB
Code:
1 2 3 4 5 6 7
| public class Bootstrap
{
public static QuestionController GetQuestionController()
{
return new QuestionController(new QuestionService(new EntityQuestionRepository("MaChaineDeConnexion"))); ;
}
} |
Controller
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| public class QuestionController
{
private readonly IQuestionService _service;
public QuestionController(IQuestionService service)
{
_service = service;
}
public IEnumerable<QuestionPOCO> GetQuestions()
{
return _service.GetQuestions();
}
} |
Service
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| public interface IQuestionService
{
IEnumerable<QuestionPOCO> GetQuestions();
}
public class QuestionService : IQuestionService
{
private IQuestionRepository _repository;
public QuestionService(IQuestionRepository repository)
{
_repository = repository;
}
public IEnumerable<QuestionPOCO> GetQuestions()
{
return _repository.GetQuestions();
}
} |
Repository
Code:
1 2 3 4
| public interface IQuestionRepository
{
IEnumerable<QuestionPOCO> GetQuestions();
} |
DAL
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| public class EntityQuestionRepository : IQuestionRepository
{
private readonly DataContext _dataContext;
public EntityQuestionRepository(string connectionString)
{
_dataContext = new DataContext(connectionString);
}
public IEnumerable<QuestionPOCO> GetQuestions()
{
var questions = (from q in _dataContext.QuizQuestions
select q).AsEnumerable();
//CONVERTION des entity question en QuestionPOCO
return QuestionFactory(questions);
}
} |