App config что это

Что такое App.config в С#.NET? Как это использовать?

Я сделал проект в С#.NET, где мой файл базы данных – это книга Excel. Так как местоположение строки подключения жестко закодировано в моем кодировании, нет никакой проблемы для ее установки в моей системе, но для других систем есть.

Есть ли способ предложить пользователю установить путь один раз после завершения установки приложения?

Ответы, которые я получил, это “Use App.Config”… может ли кто-нибудь сказать, что это за App.config и как его использовать в моем контексте здесь?

В своем простейшем случае app.config представляет собой XML файл с множеством предопределенных разделов конфигурации и поддерживает настраиваемые разделы конфигурации. Раздел “Конфигурация” представляет собой фрагмент XML со схемой, предназначенной для хранения некоторого типа информации.

Веб-приложения обычно имеют файл web.config, в то время как графические пользовательские приложения Windows имеют файл app.config.

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

Чтение из App.Config

Строки подключения имеют предопределенную схему, которую вы можете использовать. Обратите внимание, что этот небольшой фрагмент фактически является допустимым файлом app.config(или web.config):

После того, как вы определили свой app.config, вы можете прочитать его в коде, используя класс ConfigurationManager. Не пугайтесь подробных примеров MSDN; это на самом деле довольно просто.

Запись в App.Config

Частое изменение файлов *.config обычно не является хорошей идеей, но похоже, что вы хотите только выполнить одноразовую настройку.

Смотрите: Измените строку подключения и перезагрузите app.config во время выполнения, в котором описывается, как обновить раздел connectionStrings файла *.config во время выполнения.

Обратите внимание, что в идеале вы должны выполнить такие изменения конфигурации от простого установщика.

Расположение App.Config во время выполнения

A. При компиляции приложения его файл app.config копируется в каталог bin 1 с именем, соответствующим вашему exe. Например, если ваш exe был назван “test.exe”, в каталоге bin должен быть “text.exe.config”. Вы можете изменить конфигурацию без перекомпиляции, но вам нужно будет отредактировать файл конфигурации, который был создан во время компиляции, а не оригинальный файл app.config.

1: Обратите внимание, что файлы web.config не перемещаются, а остаются в том же месте во время компиляции и развертывания. Единственное исключение – когда web.config преобразован.

.NET Core

Вы можете получить доступ к конфигурациям с помощью ConfigurationManager как показано в фрагменте кода ниже:

Примечание. ConfigurationSettings – это устаревший метод для получения информации о конфигурации.

App.Config – это файл XML, который используется в качестве файла конфигурации для вашего приложения. Другими словами, вы храните в нем любые настройки, которые вы можете изменить без необходимости изменения кода (и перекомпиляции). Он часто используется для хранения строк подключения.

Посмотрите эту статью MSDN о том, как это сделать.

Просто чтобы добавить что-то, чего мне не хватало во всех ответах – даже если это кажется глупым и очевидным, как только вы узнаете:

Источник

C#, способы хранения настроек программы

Введение

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

C# и app.config

На хабре уже была посвящена этому тема, поэтому… перейти

C# и Properties.Settings

Информация о Properties.Settings

Организация Properties.Settings — это обычный xml файл, который можно найти в папке пользователя:

С:\ Users \ [user name] \ AppData \ Local \ [ (Project Name) or (AssemblyCompany) ] \ [name project_cashBuild] \ [AssemblyVersion] \ user.config

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Я создал 3-и переменные и выбрал область их использования: 2- область пользователь и 1- приложение.

Различие между областями просты. Область приложения можно только читать, а пользователь — изменять и читать.

Вернемся к переменным:

Результаты работы программы

Первый запуск, мы видим, что кол-во запусков равно 1. И теста в richTextBox1 нет.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Теперь напишем и сохраним текст.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

При втором запуске мы видим, что текст сохранен, и кол-во запусков уже 2-ва.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Очень удобно использовать этот объект, если надо работать в разных областях видимости в одном проекте. Метод хорош, когда вам не надо, чтоб рядовой пользователь рылся в файлах настройки программы.

C# и ini-файлы

С ini-файлами все на оборот, они лежат в папке рядом с программой, что позволяет пользователю изменить настройки вне-программы. Данный способ хорош, если настройки программы заносятся вручную. Например, эмулятор для запуска игры без лицензии (тотже revLoader).

Теперь перейдем к нашей теме. Для работы с таким типом файлов, нам нужно создать класс по работе с ним. Создаем класс, например «IniFile», подключаем пространство имен, которых нет:

А теперь разбираем по-порядку:

Теперь переходим в основную программу.

Результаты работы программы

При первом запуска, у нас нет файла config.ini. Поэтому при проверке возвращаются fasle и мы приравниваем окно к минимальным параметрам.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Меняем параметры окна и жмем «Применить»

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Редактируем файл config.ini руками и жмем загрузить.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

На этом все, в следующий раз опишу работу с xml файлами и с бинарными файлами.

Источник

App.Config и Custom Configuration Sections

Я уверен, что многим из вас приходилось использовать файл конфигурации App.Config для хранения инициализирующих или конфигурационных данных приложения. И я так же уверен в том, что многим из вас хотелось создать в данном файле свои собственные структуры для хранения настроек. Но в итоге приходилось использовать встроенные возможности секции и получать значения, используя конструкцию вида:

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

Первое, что нам потребуется сделать, это добавить в наше приложение файл app.Config (если, конечно, вы этого еще не сделали). После чего открываем данный файл и копипастим следующий код между тегами :

Далее создадим нашу собственную секцию, которая будет реализовывать нашу собственную модель данных:

Замечание: если кому-то не нравиться добавление узлов командой add в данном примере, то всегда можно сделать свой собственный префикс, используя следующий код:

при определении коллекции элементов в структуре данных. Тогда в конфигурационном файле можно будет писать так:

Закончим модификации в файле конфигурации и перейдем к организации взаимодействия нашего приложения с ним.

Первым делом создадим класс-наследник от ConfigurationSection, что позволит нам взаимодействовать с нашей секцией в файле конфигурации через ConfigurationManager во время исполнения программы.

Атрибут ConfigurationProperty( «Folders» ) требуется для сопоставления свойства FolderItems с корневым узлом нашей структуры данных.

Класс FoldersCollection является наследником ConfigurationElementCollection, который обеспечивает взаимодействие с коллекцией наших элементов, описанных в app.config. Определяется класс так:

Последним нам нужно создать ConfigurationElement, класс который свяжет нас с конечными данными, определенными в конфигурационном файле.

Атрибут ConfigurationProperty(«folderType») требуется для того, что бы проассоциировать имя xml-атрибута в файле конфигурации. Остальные параметры атрибута такие как DefaultValue=»», IsKey=true, IsRequired=true определяют только различные опции применимые к свойствам.

Замечание: автор умалчивает, что при стандартном способе использования сеттер свойства FolderType, работать не будет, т.к. файл конфигурации обычно доступен только на чтение. Для того что бы представлялось возможным производить запись в файл конфигурации следует делать, например, так:

Источник

Конфигурация корпоративного мобильного приложения с помощью AppConfig

Если вы администратор в компании, где есть внутреннее мобильное приложение, неважно для чего – будь то обычный мессенджер или почта, или что-то особенное наподобие сканера штрих-кодов – рано или поздно перед вами встанет задача удаленной настройки и менеджмента приложений. Прописать конкретный id или адрес сервера во всех телефонах можно при помощи костылей, но есть и готовое решение – де-факто уже стандарт, который можно использовать совместно с одной из существующих EMM/UEM-платформ (Enterprise Mobile Management/Unified Endpoint Management).

В этой статье мы решили дать инструкцию, как сделать ваше Android-приложение конфигурируемым, если вы – его разработчик. То есть: что конкретно нужно изменить в вашем приложении, чтобы выполнить потребности корпоративной аудитории. А еще мы описали всю работу администратора на примере платформы Knox Manage.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Постановка задачи

В интервью с коллегами из НИИ СОКБ (Научно-испытательный институт систем обеспечения комплексной безопасности) мы сошлись на мнении, что современную корпоративную мобильную инфраструктуру уже нельзя представить без централизованной системы управления.

Например, в швейцарской железнодорожной компании SBB каждый из 30 000 сотрудников получает кастомизированный под рабочие задачи телефон – там не только почта и мессенджер, но и, к примеру, отправка сообщений о неисправностях. Возлагать на сотрудника задачу настройки всей этой периферии не только накладно в человеко-часах, но и чревато возможными ошибками в процессе. А еще в ряде случаев – например, при появлении сбоев – бывает проще полностью перепрошить и заново инициализировать телефон, чем искать ошибку. Поэтому, правильно выбранное решение для корпоративного приложения – значительно облегчает жизнь IТ администратора компании.

Обычно, при внедрении централизованных систем мы сталкиваемся с двумя задачами:

Общая схема решения

В качестве решения второй задачи существует механизм AppConfig, это не инициатива какой-то единичной компании, а действующая конвенция нескольких вендоров. Его суть кратко такова: разработчик реализует в своем мобильном приложении – почте, мессенджере, клиенте видеосвязи и т.д. – поддержку управляемых конфигураций (Managed Configurations), настраиваемых под конкретного пользователя. Разработчик решает, какие именно параметры в приложении можно задавать извне (идентификатор, имя пользователя, адрес сервера). Через корпоративный Google Play эти параметры попадают в EMM-систему. А она уже позволяет создавать управляемые конфигурации и удаленно назначать их определенным устройствам и пользователям.

Чтобы узнать, реализован ли такой функционал в конкретном приложении:

Общий процесс выглядит так:

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это
Процесс адаптации корпоративного мобильного приложения к AppConfig

Предположим, что вам требуется удаленно ввести адрес и имя пользователя в почтовом клиенте. На примере Samsung Knox Manage интерфейс настройки этих параметров с помощью управляемой конфигурации будет выглядеть так:

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Как разработчику добавить поддержку AppConfig в свое приложение?

Предположим, что мы разрабатываем мобильное приложение, в котором настраиваемый параметр – адрес сервера. Согласно рекомендациям Google, разработчик должен:

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

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что этоApp config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это
Приложение до и после получения конфигурации с сервера

Как администратору сконфигурировать приложение через консоль Knox Manage?

Чтобы задать управляющие конфигурации, администратору нужно добавить само приложение через Knox Manage (KM) из корпоративного магазина Google Play, либо загрузить его со своего компьютера, как Managed Google Play Private (тогда публикация в корпоративный Google Play необязательна). Для задания новой конфигурации:

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это
Приложение с введенным через консоль KM адресом сервера

Конфигурируем не только приложения, но и само устройство

В какой-то момент разработчики задумались: а что, если мы хотим настраивать не только приложения, но и параметры самого устройства аналогичным способом? OEMConfig — это новый стандарт для отправки конфигураций приложениям, написанным производителями устройств. Отправка производится посредством той же самой схемы в XML-формате. Этому стандарту следуют изготовители оборудования Android, что позволяет предоставить администраторам дополнительные возможности управления устройством. Так, на смартфонах Samsung с поддержкой Knox существует решение — Knox Service Plugin (KSP), его можно загрузить из Google Play. Но об этом мы поговорим в другой раз.

Дополнительные источники по теме:

Автор: Павел Лепеев,
Engineer, B2B Pre/Post Sales
Business Development Team
Samsung R&D Institute Russia

Источник

Cоздание файла App.Config c элементом connectionStrings

Cоздание файла App.Config c элементом connectionStrings

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

Создание и добавление файла App.Config

Чтобы создать конфигурационный файл необходимо выполнить несколько простых действий:

1. Перейдите в окно Solution Explorer

2. Нажмите правую кнопку мыши на имени текущего проекта

3. В появившемся контекстном меню выберите пункт Add, появиться дополнительное подменю, нажмите на пункт New Item.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

4. Откроется диалоговое окно со списком шаблонов. Найдите шаблон с именем Application Configuration File, если требуется, измените, имя файла, после чего нажмите на кнопку Add.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

В Solution Explorer появится добавленный файл App.Config.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Открываем добавленный файл, щелкнув по нему двойным кликом мыши в окне Solution Explorer.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Файл App.Config это обычный XML файл, внутри которого по умолчанию содержится строка декларации и один корневой элемент configuration. Сам же файл конфигурации, опять же по умолчанию, хранится в папке текущего проекта.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

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

Создание и добавление элемента connectionStrings

Создадим новый элемент connectionStrings. Для этого сначала введите знак меньше ().

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Внутри созданного элемента создадим ещё один элемент с именем add

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Для данного элемента добавим несколько атрибутов. Чтобы добавить атрибут нажмите на клавишу пробел после слова add, появится меню авто подстановки.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Выберите атрибут name и нажмите на клавишу Enter

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Внутри двойных кавычек укажите любое имя, например MysqlConStr.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Затем добавьте следующий атрибут connectionString

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Внутри двойных кавычек нужно указать строку подключения, которая состоит из пары: ключ = значение.

Server указываем ip адрес или имя сервера, где лежит база данных MySQL. Предпочтительнее указывать ip адрес.

Database — имя базы данных;

Uid — пользователь;

Pwd — пароль;

Каждый пара отделяется точкой запятой, а для установки значения используется знак равно.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

Строка подключения может содержать множество других ключей, например:

Port по умолчанию MySQL сервер использует порт 3306 и его можно не указывать, но если же по какой-то причине номер порта был изменен, то его следует указать явно.

SslMode если при работе с базой данных вы хотите использовать безопасное соединение с сервером, то укажите для данного параметра одно из следующих значений:

Preferred если сервер поддерживает SSL (криптографический протокол, который обеспечивает безопасность связи) то будет установлено безопасное соединение, если нет, то обычное.

Required все подключения будут только через протокол ssl. Если же на сервере нет поддержки ssl, то при обычном подключении вы получите отказ в подключении к серверу.

Все остальные ключи и их описание можно найти на официальном сайте MySQL.

После добавления строки подключения, добавим ещё один атрибут providerName, который будет хранить имя поставщика данных.

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

полное содержимое файла App.Config

Таким же образом можно указать любое количество строк подключения и поставщиков данных к разным базам данных: MSSQL, Oracle, Access, например:

Ещё одним преимуществом файлов конфигурации, является быстрое изменение данных, которое не требует перекомпиляции проекта, ведь достаточно всего лишь внести изменения в файл XML, который является отдельным файлом.

Получение данных из файла конфигурации

Конфигурационный файл создан и теперь осталось научиться читать данные из файла App.Config.

Для начала нужно подключить в проект сборку (dll файл) System.Configuration;

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

App config что это. Смотреть фото App config что это. Смотреть картинку App config что это. Картинка про App config что это. Фото App config что это

2. Чтобы при написании кода обращаться к типам и членам, не используя полных имен, добавьте следующую строку:

В предыдущей статье строка подключения была создана при помощи объекта типа MySqlConnectionStringBuilder (полный исходник здесь)

Удалим весь блок кода, а так же строку

Затем напишем следующий код:

В квадратных скобках указываем значение атрибута name элемента add. В результате в объекте conString мы получаем все значения элементов и атрибутов файла App.Config.

И последнее, что осталось сделать, это передать в объект MySqlConnection созданную строку подключения.

Либо можно сразу же не создавая объект ConnectionStringSettings передать в конструктор класса MySqlConnection конструкцию следующего вида:

8 thoughts to “Cоздание файла App.Config c элементом connectionStrings”

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

Что то ругается именно на ConnectionString в кавычках.
Предупреждение типа NullReferenceException was unhandled

Мало информации… трудно сказать в чём именно проблема.

conString.ConnectionString — это свойство, которое содержит значение connectionString в xml файле App.config

Если выдаёт null, то возможно допущена описка или неверно указано имя элемента в xml файле, либо что-то с его атрибутами.

Еще есть одна особенность. При создании файла конфига в окне создания пишу название файла например MyConnect.config а создается их 2. Первый с названием App.config. Я кстати который второй создался удалил сразу. Может быть в этом причина и зачем тогда студия создает второй?
Кстати компиляция и запуск приложения проходят нормально. Но при нажатии на кнопку, перебрасывает в студию и подсвечивает выше описанную строку с выделением на onnectionString.
Правильность написания уже несколько раз перепроверил, даже делал копипаст вашего кода. Сейчас с нуля еще раз попробую все пересоздать.

Ах да. Пользуюсь Visual Studio 2013 community

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *