Посоветуйте по поводу организации проектов.

Pruvetik
Дата: 16.04.2014 17:35:34
Хочу спросить у вас, как лучше организовать библиотеки классов.

Имеется набор самописных полезных классов.
Их уровень: от абстрактных классов выполняющих сложную логику, использующуюся лишь в нескольких проектах, до кучи мелки вспомогательных классов, которые используются во многих (но не всех), типа оберток для логгирования и прочее.

Как все это организовать ?


1. В одну DLL сборку ? Чтобы она росла и одна единственная добавлялась ко всем проектам ? не будет кучи мелкоты, но зато получим монолит, довольно сложный в развитии...

2. Или все же разбить на кучу библиотек ?
В частности вынести узкоспециализированные классы, уникальные для 2-3 проектов,в отдельную библиотеку, и использовать ее только в тех проектах, где действительно нужно.
Остальные мелкие классы тоже можно распихать по отдельным библиотекам. Или мелкие классы можно закинуть в отдельную общую сборку и просто разделить по неймспейсам.
Получится этакая сборка со множеством множеством классов, которые когда либо были написаны и показали свою пользу.

3. Добавлять во все свои Решения ссылку на проект, где и хранятся все полезные классы.
Отличие в том, что ссылку имеем не на DLLку, а прямо на исходный код, и можем его править изо всех проектов. Ведь все равно, при необходимости придется править эту общую библиотеку. Какая разница в каком виде добавлять ее в свои проекты, в виде скомпилированной сборки или в виде исходных кодов.


В принципе я опасаюсь кучи появления мелких сборок с какими-то общими классами, используемыми в нескольких проектах. Хотя с другой стороны, возможно, именно так и надо. Когда появится новый проект, в него придется кидать ссылку на пяток мелких либ, где лежат нужные абстрактные классы.


Что выбрать ? Поделитесь опытом.