Управление зависимостями системы контроля версий в Visual Studio Team System - Использование баз данных

ОГЛАВЛЕНИЕ

Использование баз данных

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

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

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

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

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

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

  1.  Добавьте атрибут configSource="user.config" в элемент <connectionStrings> главного конфигурационного файла приложения.
    <configuration>
      <connectionStrings configSource="user.config"/>
    </configuration>
  2. Чтобы переопределить главный конфигурационный файл приложения, создайте файл User.config (расположив его в той же папке, что и конфигурационный файл приложения) и затем добавьте такую же запись <connectionStrings>в этот файл. Обратите внимание на то, что следующая строка соединения ссылается на локальную базу данных.
    <connectionStrings>
      <add name="DBConnStr" connectionString="server=localhost;Integrated Security=SSPI;database=Accounts"/>
    </connectionStrings>
  3. В своем проекте применяйте следующий код для получения строки соединения из пользовательского конфигурационного файла.
    using System.Configuration; 

    private string GetDBaseConnectionString()
    {
        return ConfigurationManager.ConnectionStrings["DBConnStr"].ConnectionString;
    }
    В этом коде используется статическое свойство ConnectionStrings (Строки соединения) класса System.Configuration.ConfigurationManager. В приложениях WinForm необходимо добавить явную ссылку на System.Configuration.dll.
  4. Убедитесь, что файл User.config разворачивается вместе с кодом приложения. Для этого в Solution Explorer щелкните правой кнопкой мыши файл User.config, выберите Properties и затем в окне Properties задайте свойству Copy To Output Directory значение Copy if newer.

Не добавляйте файл User.config в систему контроля версий. Так каждый разработчик и группа тестирования смогут явно задавать строку соединения через собственный файл User.config. В системе контроля версий могут располагаться другие файлы User.config, например, используемые для тестирования и производственной эксплуатации. Эти файлы должны обслуживаться пользователями, ответственными за управление средами тестирования и производственной эксплуатации. Файлы User.config для тестирования и производственной эксплуатации не должны храниться как часть проектов базы данных, они должны располагаться в других областях системы контроля версий.

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

Замечание: По умолчанию пользовательский конфигурационный файл автоматически добавляется в систему контроля версий при добавлении решения. Чтобы предотвратить это, при первой регистрации изменений в файле необходимо убрать флажок напротив файла User.config. После этого можно щелкнуть правой кнопкой мыши файл в Solution Explorer и выбрать опцию Undo Pending Changes. Тогда файл гарантированно не будет подлежать контролю версий.

Важно понимать, что если используется данный механизм, файл User.config должен присутствовать обязательно. Кто-то должен отвечать за обеспечение соответствия среды требованиям при создании сборок для производственной эксплуатации и для сред тестирования. В ходе сборки соответствующий файл User.confg должен быть получен из системы контроля версий и скопирован в соответствующий каталог, чтобы MSBuild мог найти его.

Заключение

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

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

Для ссылки на Веб-вервисы используются динамические URL, для управления Веб-сервисами используется внешний конфигурационный файл. Преимущество этого подхода в том, что каждый разработчик может без труда задать собственную ссылку на Веб-сервис в личном файле User.config. Также с помощью внешнего конфигурационного файла можно работать со ссылками на базы данных в форме строк соединения. Преимущество такого подхода состоит в том, что каждый разработчик может без труда задать собственную строку соединения в личном файле User.config.