Pracuję nad małym projektem ASP.NET MVC w tej chwili.
Próbuję zaimplementować Nhibernate do utrzymywania na bazie danych MS SQL Server. Spędziwszy długie godziny na studiach DDD i innych projektach znalezionych w Internecie, zdecydowałem się przejść do schematu repozytorium. Teraz mam do czynienia z dylematem.
Czy naprawdę potrzebuję repozytorium podczas korzystania z Nhinbernate?
nie byłoby lepiej mieć warstwę usługi (nie mieć warstwę usługi w tej chwili), który współdziała z Nhinbernate unikając napisać wiele razy coś takiego:ASP.NET MVC, Nhibernate i repozytoria dla małych/średnich projektów
public Domain.Reminder GetById(Guid Code)
{
return (_session.Get<Domain.Reminder>(Code));
}
public Domain.Reminder LoadById(Guid Code)
{
return (_session.Load<Domain.Reminder>(Code));
}
public bool Save(Domain.Reminder Reminder)
{
_session.SaveOrUpdate(Reminder);
return (true);
}
public bool Delete(Domain.Reminder Reminder)
{
_session.Delete(Reminder);
return (true);
}
Znalazłem stary POST Ayende, który jest przeciwko repozytoriom.
Wiem, że wokół tych tematów toczy się wielka debata, a odpowiedź zawsze jest ... zależy, ale wydaje mi się, że przy zbyt wielu warstwach abstrakcji rzeczy stają się bardziej skomplikowane i trudne do naśladowania.
Czy się mylę?
Tylko mała uwaga. Nie ma projektu małego-średniego, może on być na razie mały, ale jutro twój menadżer poprosi cię o inną funkcję, a potem kolejną i drugą, a na końcu będziesz miał ogromny projekt z architekturą małej i średniej wielkości. . Naprawdę nie lubię Big Design Up Front, ale czasami trzeba myśleć trochę dalej. – goenning
Zgadzam się z tobą całkowicie, ale tak naprawdę nie widzę korzyści w korzystaniu z repozytorium, jeśli nie z tego, że mogę nie używać nihbernate w przyszłości. Generuje mnóstwo dodatkowej pracy, której obecnie nie mogę usprawiedliwić. – LeftyX