Mam nadzieję, że proste pytanie dotyczące względności. Zaczynam pracę nad nowym projektem wewnętrznym, który ma zapewnić wykonalność naprawionych urządzeń w budynkach.
Baza danych jest przechowywana zdalnie na serwerze WWW i będzie dostępna za pośrednictwem interfejsu API sieci Web (wyjście JSON) i chroniona za pomocą protokołu OAuth. Interfejs GUI jest wykonywany w WPF, a kod biznesowy w C #.
Z tego widzę różne warstwy Prezentacja / Aplikacja / Magazyn danych. Będzie kod do zarządzania wszystkimi uwierzytelnionymi wywołaniami do API, klasa reprezentująca byty (obiekty biznesowe), klasy do konstruowania bytów (obiekty biznesowe), części do GUI WPF, części modeli widoków WPF i tak dalej.
Czy najlepiej jest to utworzyć w jednym projekcie, czy podzielić je na pojedyncze projekty?
W moim sercu mówię, że powinno to być wiele projektów. Zrobiłem to wcześniej w obie strony i stwierdziłem, że testowanie jest łatwiejsze dzięki jednemu projektowi, jednak w przypadku wielu projektów rekurencyjne zależności mogą się pojawić. Zwłaszcza gdy klasy mają interfejsy ułatwiające testowanie, zauważyłem, że rzeczy mogą stać się niezręczne.