C# i EF. Repozytorium, DbContext i inne, czyli jak to zrobić dobrze

0

Cześć.

Mam aplikację WPF która służy do produkcji na wadze, czyli to są maks 2-3 stanowiska mogące pracować równocześnie, generujące mały ruch do bazy danych(połączenie do bazy, bez żadnych API i pośredników).
Obecnie wygląda to w ten sposób, że aplikacja ma wiele klas które odpowiadają etapom, czyli ekranom które się wyświetlają użytkownikowi. W tych klasach gnieździ się logika. Każdy ekran/etap przy inicjalizacji wywołuje funkcję która zwraca IQueryable, czyli dane z bazy danych i umieszcza to w dostępnych odpowiednich miejscach. Pobieranie danych operuje na widokach sql, a wszelkie inne operacje korzystają z procedur utworzonych w bazie danych(zapisywanie, usuwanie, wyliczanie czegoś tam na podstawie pobranych danych). I teraz chciałbym to polepszyć w ramach praktyki, douczania, a także poprawy jakości tej aplikacji. Niestety moja wiedza nie jest jakaś duża, doświadczenie to głównie utrzymanie tej aplikacji, więc tutaj if, tam coś dorobić, a nie chcę tego zrobić źle. Z jednej strony Repozytorium wydawałoby się odpowiednie, z drugiej strony jest hejt żeby nie używać wzorców jeśli się tego dobrze nie ogarnia, z trzeciej strony wyczytałem, że EF sam w sobie ma niby dbcontext który ma służyć za repozytorium(czy coś takiego), a repozytorium to kolejna niepotrzebna warstwa w przypadku tego ORM.
Dlatego zwracam się z pomocą żeby to ładnie zaprojektować.

Chciałbym docelowo pozbyć się pakietu który odpowiada za zapis, usuwanie i inne i robić to z poziomu aplikacji aby to było łatwo debugowalne i utrzymywalne.
Repozytorium też ułatwia testy z tego co wiem, dlatego też kierowałem się ku temu rozwiązaniu żeby sobie wrzucić jakiegoś mocka i móc dopisać testy, bo obecnie wszystko jest przeklikiwane, a wprowadzone zmiany w bazie danych powodują problemy przy kolejnych testach(oczywiście da się wycofać, ale mock powinien mi wystarczyć).
Widoki raczej zostaną, bo są zbyt rozbudowane żeby to zrzucać na linq po stronie aplikacji.

Więc pytanie jak to ugryźć, bo ja z racji małego doświadczenia ciągle wymyślam inne koncepcje, a nie wiem która byłaby najlepsza.

0

A dlaczego uważasz, że problemem jest brak właśnie repozytorium, a nie coś innego?

1 użytkowników online, w tym zalogowanych: 0, gości: 1