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