Czy istnieją jakieś wytyczne dotyczące decydowania, kiedy klasa powinna znajdować się we własnym zestawie / bibliotece DLL? Często widzę dwie szkoły myślenia:
1) Każda „grupa” klas należy do własnej biblioteki DLL, np. Repozytoria, usługi, DTO, infrastruktura itp.
2) Wszystko powinno znajdować się w jednej bibliotece DLL, ale oddzielone przez przestrzenie nazw / foldery, np. Mieć bibliotekę DLL „Core” z dodatkowymi przestrzeniami nazw, np. Core.Repositories, Core.Services, Core.DTO itp.
W pracy zbieramy wszystko w jednym Zgromadzeniu o nazwie „Biznes”. Istnieje kilka folderów, ale nie ma prawdziwej separacji - obiekty biznesowe (z logiką, z których niektóre nie powinny nawet być klasami) są beztrosko umieszczane w folderze „BusinessObjects”. Rzeczy używane w więcej niż jednej klasie znajdują się w folderze „Core”. Narzędzia znajdują się w folderze „Narzędzia”, infrastruktura dostępu do danych to folder „Dane” - masz pomysł.
W przypadku nowego modułu, nad którym pracuję, chcę / muszę mieć oddzielną warstwę dostępu do danych (pomyśl podstawową implementację repozytorium), ale nie chcę po prostu wrzucać jej do folderu „BusinessObjects” z innymi 160 (!) zajęcia tam. Jednocześnie martwię się o utworzenie nowej biblioteki klas, ponieważ wszyscy są przyzwyczajeni do upychania klasy w jednej bibliotece; folder / przestrzeń nazw może jednak działać.