Конфигурирование сборок GAC.Лучшая практика - PullRequest
0 голосов
/ 08 сентября 2010

Я должен реализовать сборку .net, которая будет помещена в GAC. Он опирается на строку подключения СУБД и некоторые дополнительные параметры - какое место лучше всего поставить? Machine.config, реестр или что-то более подходящее?

Такая информация должна быть помещена в файл конфигурации приложения (app.config / web.config), в котором используется компонент (как заметил Марек Грженкович), но что, если по каким-то причинам конфигурация приложения недоступна?

Заранее спасибо!

Ответы [ 3 ]

3 голосов
/ 08 сентября 2010

Вы должны поместить такую ​​информацию в app.config / web.config файл приложения, использующего сборку. Таким образом, можно будет указать разные настройки для каждого такого приложения.

2 голосов
/ 08 сентября 2010

Я бы подумал, что это будет зависеть от того, насколько вы хотите, чтобы зависимые сборки участвовали в управлении настройками.

Подход "один раз не думай больше" может быть удовлетворен оченьхорошо по реестру.Недостатком использования реестра является отсутствие встроенной поддержки для извлечения строки подключения в классах ADO.NET.

Такой подход может отличаться в зависимости от приложения.быть лучше удовлетворены требованием настроек быть в app.config приложения или web.config.Файлы конфигурации предлагают дополнительное преимущество встроенной поддержки строки подключения для многих классов, связанных с ADO.NET.

Я всегда немного опасаюсь изменять machine.config.Я не могу объяснить, почему, на самом деле, за исключением того, что настройки являются глобальными.Каждое имя строки подключения, используемое в machine.config, является именем, которое распространяется на другие конфиги и должно либо использоваться, игнорироваться, либо удаляться.Это также усложняет синхронизацию сред разработки с производством.Тем не менее, я не думаю, что эти причины являются вескими причинами, чтобы избежать machine.config.Просто взвесьте компромиссы, прежде чем принимать решение.

Пользовательские файлы в изолированном хранилище - еще один жизнеспособный вариант, хотя он обычно используется в средах с ограниченным доверием;поскольку GAC полностью доверяет, изолированное хранилище может быть не столь привлекательным вариантом.

1 голос
/ 08 сентября 2010

«Компонент», который использует конкретную базу данных, вероятно, не должен быть в GAC в первую очередь.

Если вам это действительно нужно, строка подключения не является конфигурацией в обычном смысле.Вы, вероятно, должны жестко закодировать его в свою сборку.

И, пожалуйста, напомните мне никогда не устанавливать ваше программное обеспечение.

...