Целесообразно ли использовать app.config и ConfigurationManager в ядре .NET? - PullRequest
0 голосов
/ 29 января 2019

Мы переносим некоторые приложения .NET из полной платформы в ядро ​​.NET и пытаемся найти лучший способ сделать это.

Одно из основных изменений связано с тем, как настроены приложения.В полной среде .NET мы помещали настройки приложения в файл app.config и считывали их с помощью класса ConfigurationManager .

Я знаю, что ядро ​​.NET поддерживает новую систему конфигурации, основанную на пакете nuget Microsoft.Extensions.Configuration и различных пакетах для источников конфигурации.Однако в то же время Microsoft расширила поддержку класса ConfigurationManager до ядра .NET с помощью пакета nuget System.Configuration.ConfigurationManager .

Вот мои вопросы:

  • Каков наилучший способ настройки основных приложений .NET?
  • поддержка файла app.config была реализована только для обратной совместимости, поэтому перенос на .NETЯдро устаревших приложений проще, или это считается наилучшей практикой и будет сохраняться в будущем?

1 Ответ

0 голосов
/ 29 января 2019

Немного истории. Первой командой, которая начала сокращать зависимости, включенные в приложение .Net, была команда Asp.Net.Веб-инфраструктура Microsoft была раздутой по сравнению с более модульными платформами, вызывая задержку в запросе.По словам Скотта Ханслемана, который часто рассказывает эту шутку в презентациях:

Кто здесь развивается с .Net?Никому до тридцати, фантастика!Так как же с этим бороться?Станьте модульным, быстрее, кроссплатформенным, и вам легче начать.В противном случае вы бы пошли, я хочу научиться кодировать.Загрузите Visual Studio, а через четыре часа напишите hello world.

Итак, веб-команда начала это преобразование, которое для веб-сайтов делает JavaScript Object Notation лучшим выбором, чем Extended Markup Language.Но через год после того, как команда Asp.Net внесла эти изменения, Microsoft реорганизовала их организацию в единый .Net.Они поняли, что эти изменения будут касаться не только команды Asp.Net.Более старые типы проектов не будут совместимы или работать с нотацией объектов JavaScript, поэтому они перешли обратно к расширенной разметке для своих .csproj и других типов конфигурации.Но многим разработчикам действительно понравились файлы JavaScript Object Notation для настроек, они меньше, понятнее и не настолько многословны.Поэтому Microsoft добавила функцию обратно через Microsoft.Extensions.Configuration, чтобы предоставить вам гибкость.

  • Основной целью была обратная совместимость.
  • Убедитесь, что она обновлена ​​для любого приложения .Net Standard.а также.

Так что вы можете использовать либо.Никакой реальной выгоды, кроме расширенной разметки, очень сложно читать и многословно сравнивать с объектом JavaScript.Нотация объектов JavaScript имеет тенденцию быть проще.

...