Несколько советов по разделению вашего проекта на несколько проектов:
Одна из причин разделения проекта на несколько библиотек классов - возможность повторного использования. Я еще не видел, чтобы часть приложения BLL или DAL повторно использовалась в другом приложении. Об этом нам рассказывали в учебниках 90-х годов! Но большинство, если не все современные приложения слишком специфичны, и даже на одном предприятии я никогда не видел, чтобы одни и те же части BLL или DAL повторно использовались в нескольких приложениях. В большинстве случаев то, что у вас есть в этих библиотеках классов, предназначено исключительно для обслуживания того, что пользователь видит в этом конкретном приложении, и это не то, что можно легко повторно использовать (если вообще).
Другая причина для разделения проекта на несколько библиотек классов связана с возможностью развертывания. Если вы хотите независимо создавать версии и развертывать эти части, имеет смысл пойти по этому пути. Но это часто вариант использования фреймворков, а не корпоративных приложений. Entity Framework - хороший пример. Он состоит из нескольких сборок, каждая из которых выполняет различные функции. У нас есть одна основная сборка, которая включает в себя основные артефакты, у нас есть еще одна сборка для общения с базой данных SQL Server, еще одна для SQLite и так далее. Благодаря этой модульной архитектуре мы можем ссылаться и загружать только те части, которые нам нужны.
Представьте себе, если бы Entity Framework была только одной сборкой! Это будет одна гигантская сборка с большим количеством кода, который нам не понадобится. Кроме того, каждый раз, когда группа поддержки добавляла новую функцию или исправляла ошибку, всю монолитную сборку приходилось скомпилировать и развернуть. Это сделало бы эту сборку очень хрупкой. Если мы используем Entity Framework поверх SQL Server, почему обновление из-за исправления ошибки SQLite должно влиять на наше приложение? Не должно быть! Вот почему он разработан по модульному принципу.
В большинстве существующих веб-приложений мы версируем и развертываем все эти сборки (Web, BLL и DAL) вместе. Итак, разделение проекта на 3 проекта не добавляет никаких значений.
Слои концептуальны. У них нет физического представления в коде. Наличие папки или сборки под названием BLL или DAL не означает, что вы правильно разложили свое приложение на уровни, и не означает, что вы улучшили ремонтопригодность. Ремонтопригодность - это чистый код, небольшие методы, небольшие классы, каждый из которых несет единственную ответственность, и ограниченную связь между этими классами. Разделение проекта с жирными классами и жирными методами на проекты BLL / DAL не улучшает ремонтопригодность вашего программного обеспечения. Сборки - это единицы управления версиями и развертывания. Разделите проект на несколько проектов, если вы хотите повторно использовать определенные его части в других проектах или если вы хотите независимо создавать версии и развертывать каждый проект.
Источник: https://programmingwithmosh.com/csharp/should-you-split-your-asp-net-mvc-project-into-multiple-projects/
person
Ali Bayat
schedule
12.10.2018