Вкратце:
Можно ли когда-либо оправдывать хранение имен сборок и классов в базе данных? Разрывает ли он уровни приложения для уровня данных, чтобы иметь явные знания о внутренностях бизнес-уровня?
Полное объяснение:
У меня есть загрузочный стриппер, который запускает «задания» (классы, наследуемые от общей базы), которые существуют в отдельных сборках. Задания имеют параметры конфигурации, хранящиеся в базе данных, что позволяет изменять их работу с помощью графического интерфейса пользователя.
Чтобы найти и запустить задание, загрузочный стриппер имеет файл app.config, который содержит имя задания, а также имя сборки и имя класса, которое его определяет.
Меня попросили переместить имя сборки и имя класса в базу данных, чтобы мы могли избавиться от файла app.config. (Причина в том, чтобы хранить всю конфигурацию в одном месте - базе данных.)
Однако загрузчик является единственным кодом, который запускает задание, и эта информация о «конфигурации» никогда не будет изменена после развертывания. Я думаю, что размещение такой информации в базе данных дает слою данных слишком много информации о вышеперечисленных слоях и будет мешать рефакторингу и обслуживанию. Однако я знаю, что Windows Workflow Foundation делает именно это, и, возможно, я ошибаюсь, считая это плохой практикой?
Edit:
В ответ на вопрос, приведенный ниже, строка подключения к базе данных хранится в отдельном файле конфигурации, который управляется общей структурой конфигурации. Эта структура технически позволяет полностью удалить файл app.config.