Я пишу приложение для Windows Forms, которое растет и становится все более обширным.
Сначала я думал, что это отдельный проект для Графические компоненты и один для бизнес-логики и один для доступа к данным были бы лучшим подходом.
По мере того, как приложение расширяется, я начинаю думать, что более модульный подход будет чище ... например, проект, содержащий пользовательские элементы управления, бизнес-логика и доступ к данным для каждой категории данных.
Например ... объекты DAL, относящиеся к Продуктам, вместе со связанными бизнес-объектами и пользовательскими элементами управления в одном проекте. Это должно привести к большему количеству проектов внутри решения, каждый из которых является самодостаточным.
Однако это может вызвать больше сложностей, поскольку данные часто связаны (таблица продуктов связана с таблицей поставщиков, таблицей заказов и деталями). таблица списков и т. д.) Поэтому было бы трудно полностью абстрагировать каждую категорию.
В Интернете есть сотни статей по архитектуре программного обеспечения, но не так много, которые помогут вам перевести эту архитектуру в решения, проекты и код.
Может ли кто-нибудь указать мне правильное направление?