Dzień dobry,
Chciałbym się doradzić bardziej doświadczonych programistów w sprawie architektury mojego projektu.
Projektuje aplikacje webową i chciałbym to zrobić w sposób który umożliwi późniejszy łatwiejszy rozwój czy też podpięcie innych projektów do modelu danych.
A więc tak założyłem dwa projekty
-WAS.Repository
-WAS.WebApplication
W Repository znajduje się model danych wygenerowany za pomocą EF ( podejście database first) oraz klasa WASDao w której znajdują się metody dostępowe.
public class WASDao
protected List<Document> getCurrentDocumentList(string arg){
using(var db = new WASContex()){
.......
}
}
....itd...
W WebApplication klasa CommonServices dziedziczy po klasie DAO a następnie udostępnia Controllerowi poszczególne metody. Klasa ta ponadto zajmuje się mapowanie klas modelu na ViewModele.
public class CommonServices : WASDao
[Authorize(Roles="Admin")]
public List<DocumentViewModel> GetCurrentDocumentList(string arg){
var model = getCurrentDocumentList(arg);
return mapper.Map<DocumentViewModel>(model);
}
....itd...
I tutaj pojawia się moje pytanie czy moje podejście jest prawidłowe ? Czy metody z klasy DAO powinny zwracać obiekty z modelu danych czy może jednak powinienem najpierw zrzutować to do klas DTO ?
Pozdrawiam