Всем привет!Сразу извиняюсь, если очень глупо задал вопрос.
Суть проблемы:
Практикую трехслойную архитектуру. DAL->BLL->WEB. Все зависимости идут по порядку.
Однако, когда я добавил в слой WEB ссылку на BLL. Этот слой стал давать возможность обращаться к DAL слою. Подскажите в чем проблема. Все слои делаются на .net core 2.2.
Вам уже ответили в комментариях @PashaPash, давайте оформим ответом:
Подключая dll, вы неявно подключаете все её зависимости. Так задумано.
Также вы спрашиваете:
слой представления не должен знать о слое с данными
У вас есть слой DAL и BLL, но не выделен слой Domain.
Если вы в домен вынесете модели и интефейсы, то BLL не будет зависеть от конкретной реализации DAL, а будет вся на интерфейсах и в WEB вы можете подключать BLL и какую-то конкретную реализацию DAL (их может быть несколько - dal на EF, dal на dapper).
Конкретный пример такого приложения есть в книге Марка Симана Dependency Injection in c#
На гитхабе есть этот проект, см. тут: https://github.com/djhmateer/3Commerce.git
Делая по такому шаблону вы можете дойти до такого момента, что у вас не останется в WEB никаких ссылок на DAL, лишь только в конфигурационном файле будет строкой прописано какой DAL подключить.
На практике я обычно применяю менее строгий подход: у меня подключен проект конкретного DAL'а, но в проекте WEB ссылка на него фигурирует лишь один раз: я указываю при resolve зависимостей саму сборку.
var dataAccessAssembly = typeof(DataContext).Assembly;
Меня такой подход вполне устраивает: и гайдланы соблюдены и если вдруг понадобится (ни разу не понадобилось) поменять конкретную реализацию DAl то сделать это будет достаточно просто.
Виртуальный выделенный сервер (VDS) становится отличным выбором
У меня есть форма на которой выполняется ajax запрос, в итоге выполнения происходит перенаправление на другую страницу$(location)
Есть чекбоксы (их порядка 50 штук), которые передают данные в php файл, и эти данные нужно сохранить, я что то наковырял, и получается что после...