|
Глава 6
Статьи
→
Технологии Microsoft: .NET, Visual Studio Team System
→
Коллективная разработка с использованием Visual Studio Team Foundation Server
→
Часть II - Система контроля версий исходного кода
Глава 6 - Управление зависимостями системы контроля версий в Visual Studio Team System
Содержание
Полезные материалы в тему статьи:
Область применения
- Microsoft® Visual Studio® 2005 Team Foundation Server (TFS)
- Microsoft Visual Studio Team System
Задачи
- Управлять зависимостями внутри и между решениями VSTS.
- Использовать проекты и сборки из других решений в том же групповом проекте.
- Использовать проекты и сборки из других групповых проектов.
- Использовать сборки сторонних производителей.
- Управлять ссылками на Веб-сервисы в среде коллективной разработки.
- Управлять ссылками на базы данных в среде коллективной разработки.
Обзор
В данной главе рассматривается, как следует обрабатывать зависимости
внутри и между решениями Visual Studio. Единый подход к управлению
зависимостями в среде коллективной разработки необходим для обеспечения
стабильности процесса сборки и сокращения текущих затрат на
обслуживание системы контроля версий.
Зависимости - это другие проекты, внешние сборки, Веб-сервисы и базы
данных. Зависимости неизбежно меняются во времени и, в результате,
оказывают влияние на процесс и порядок сборки приложения.
Соответствующий подход к управлению зависимостями способствует
улучшению и упрощению процесса интеграции.
Как использовать данную главу
Данная глава рассказывает об управлении зависимостями в среде
коллективной разработки. Ее можно прочитать от начала и до конца или
ознакомиться лишь с разделом, рассматривающим конкретный вопрос
управления зависимостями. Раздел «Сценарии и решения» поможет понять,
какие вообще сценарии управления зависимостями существуют в среде
коллективной разработки. Этот раздел является трамплином для перехода к
следующим разделам, подробно рассматривающим каждый из сценариев.
- Раздел «Использование проектов» рассказывает о том,
как работать со ссылками на другие проекты, как внутренними, так и
внешними по отношению к текущему групповому проекту.
- Раздел «Использование сборок сторонних производителей» рассказывает, как работать со ссылками на сборки сторонних производителей, исходным кодом которых вы не располагаете.
- Раздел «Использование Веб-сервисов» рассказывает, как работать со ссылками на совместно используемые Веб-сервисы в среде коллективной разработки.
- Раздел «Использование баз данных» рассказывает, как соединяться с базами данных и использовать их в среде коллективной разработки.
Сценарии и решения
Обычно реализуются следующие сценарии управления зависимостями:
- Используется сборка, сформированная другим проектом в том же решении.
- Используется сборка, сформированная другим проектом в другом решении.
- Используется сборка из другого группового проекта.
- Используется сборка стороннего производителя.
Использование сборок, сформированных другим проектом в том же решении
Если требуется включить сборку из этого же решения Visual Studio,
используется ссылка на проект Visual Studio. В случае применения ссылок
на проекты Visual Studio может автоматически выполнять некоторые
действия, например, обеспечивать синхронизацию конфигурации сборки
(отладка/версия для выпуска), отслеживать версии и повторно выполнять
сборку компонентов при изменении версий сборок.
Использование сборок, сформированных проектами других решений
Существует два варианта использования сборки, сформированной проектом в другом решении Visual Studio:
- Использовать ссылку на двоичный файл сборки.
- Добавить проект Visual Studio (файлы проектов и исходные файлы) в решение и затем использовать ссылку на проект.
Ссылки на файлы более уязвимы, чем ссылки на проекты, так как они не
синхронизируются с конфигурацией сборки и не отслеживаются Visual
Studio. Поэтому при изменении используемых сборок Visual Studio не
знает о том, что необходимо выполнить сборку повторно.
В качестве альтернативного варианта можно создать ветвь для внешнего
проекта в текущем решении, скомпилировать двоичный файл и затем
использовать ссылку на проект. Эта ссылка будет более устойчивой, хотя
придется регулярно производить синхронизацию с исходной ветвью проекта
и переносить все вносимые в нее изменения.
Использование сборки из другого группового проекта
При совместном использовании исходного кода или двоичных файлов в групповых проектах возможны два варианта:
- Ветвление. При таком подходе в текущее решение
добавляется ветвь исходного кода из другого группового проекта. Таким
образом, создается конфигурация, объединяющая на стороне сервера
совместно используемый исходный код и исходный код текущего проекта.
- Отображение рабочего пространства.
При таком подходе исходный код другого группового проекта отображается
в рабочем пространстве разработчика. Таким образом, создается
конфигурация, объединяющая на стороне клиента исходный код другого
группового проекта и текущий проект.
Предпочтительнее использовать ветвление, потому что в этом случае
зависимости сохраняются на сервере системы контроля версий. Отображение
рабочего пространства происходит только на стороне клиента, т.е. чтобы
обеспечить успешную сборку приложения, каждый разработчик должен
создавать отображение, как на своем компьютере, так и на сервере
сборки.
При ветвлении возникают дополнительные издержки на слияние, они
влияют на решение, использовать ли обновления в виде бинарных файлов
или в виде исходного кода.
Использование сборки стороннего производителя
Этот сценарий очень похож на использование других групповых
проектов, только в данном случае совместно используются только двоичные
файлы, а не исходный код. Перед нами возникает тот же выбор между
ветвлением и рабочими пространствами, только дополнительные издержки в
данном случае, скорее всего, будут ниже, потому что сборки сторонних
производителей меняются не так часто.
Использование проектов
Например, имеется групповой проект Visual Studio, содержащий
совместно используемый несколькими групповыми проектами код библиотеки.
Можно сохранять проект в рамках исходного группового проекта или
создать отдельный групповой проект специально для совместно
используемого проекта.
Для второго варианта, когда создается общий совместно используемый
проект, структура каталогов системы контроля версий Microsoft Visual
Studio Team Foundation Server (TFS) следующая (рис. 6.1).
Рис. 6.1 - Структура каталогов при общем совместно используемом проекте
Существует два варианта совместного использования проекта из собственного группового проекта
- Ветвление
- Отображение рабочего пространства
Ветвление
В сценариях совместного использования исходного кода
предпочтительнее остановиться на ветвлении. Это позволяет перенести
совместно используемый исходный код в разрабатываемый проект и
зарегистрировать его в системе контроля версий группового проекта. В
этом сценарии создается ответвление версии исходного кода из совместно
используемого каталога в групповом проекте. При этом возникает
конфигурация, объединяющая на стороне сервера исходный код из совместно
используемого каталога и разрабатываемого проекта.
Изменения совместно используемого исходного кода
распространяются в ходе процесса слияния ветвей. При этом решение о
распространении изменений в совместно используемом исходном коде
становится более явным, его проще тестировать, но также возникают
некоторые дополнительные издержки. Кроме того, в этом случае
существенно упрощается использование Team Build, поскольку отображение
выполняется на стороне сервера; нет отображения на стороне клиента,
которое должно дублироваться на сервере сборки.
Например, имеется два групповых проекта, $TeamProject1 и $Common, и
Common содержит совместно используемый исходный код. Тогда в проекте,
использующем Common, создается ответвление совместно используемого
каталога. Получаем следующую структуру каталогов TFS (рис. 6.2).
Рис. 6.2 - Использование ветвления
Отображение рабочего пространства должно быть примерно следующим:
Папка в системе контроля версий Локальная папка
$/MyTeamProject1/Main/Source/ C:\MyTeamProject1\Main\Source
Структура каталогов рабочего пространства на стороне клиента должна быть следующей (рис. 6.3).
Рис. 6.3 - Отображение рабочего пространства на стороне клиента
Отображение рабочего пространства
Если вы хотите, чтобы любые изменения совместно
используемого кода сразу же поступали к разработчикам, т.е. избежать
издержек на ветвление и слияние, можно создать отображение совместно
используемого исходного кода общего проекта в рабочем пространстве
разработчика. При этом создается конфигурация, которая объединяет
исходный код из совместно используемого каталога с разрабатываемым
проектом на стороне клиента.
Преимущество этого подхода в том, что все изменения
совместно используемого проекта поступают в рабочее пространство
разработчика при каждой загрузке последней версии исходного кода.
Однако это затрудняет использование Team Build, поскольку отображение
рабочего пространства является структурой на стороне клиента.
Например, имеется два групповых проекта,
$MyTeamProject2 и $Common, и Common содержит совместно используемый
исходный код. Чтобы использовать общий код, эти проекты отображены в
одну и ту же структуру каталогов на жестком диске клиента. Структура
каталогов рабочего пространства на стороне клиента должна быть
следующей (рис. 6.4).
Рис. 6.4 - Использование отображения рабочего пространства
Отображения рабочего пространства должны быть примерно следующими:
Папка в системе контроля версий Локальная папка
$/MyTeamProject2/Main/Source/ C:\DevProjects\MyTeamProject2\Main\Source\
$/Common
C:\DevProjects\MyTeamProject2\Main\Source\ Common
Более подробно читайте в статье «Working with multiple
team projects in Team Build» (Как работать с несколькими групповыми
проектами в Team Build) по адресу http://blogs.msdn.com/manishagarwal/archive/2005/12/22/506635.aspx.
Использование сборок сторонних производителей
Если нет возможности применить ссылку на проект, а требуется
использовать сборку извне, например библиотеку стороннего
производителя, и не хочется или нет возможности создать ответвление от
исходного проекта в разрабатываемый проект, необходимо задать ссылку на
файл.
Работа с совместно используемыми двоичными файлами
аналогична работе с совместно используемым исходным кодом проекта.
Необходимо принять решение о том, где будут храниться двоичные файлы, и
как будет осуществляться доступ к ним. Если двоичные файлы используются
в нескольких групповых проектах, можно или разместить их в групповом
проекте группы-владельца, или создать отдельный проект специально для
совместно используемых двоичных файлов.
Для групп, работающих с совместно используемыми
двоичными файлами, доступны те же два варианта, что и при использовании
проектов.
- Ветвление
- Отображение рабочего пространства
Ветвление
В данном сценарии двоичные файлы ответвляются из общего
каталога в групповой проект. При этом создается конфигурация,
объединяющая на стороне сервера двоичные файлы из совместно
используемого каталога с их проектом.
Разница в том, что любые изменения в двоичных файлах,
такие как новые версии, распространяются в процессе слияния ветвей, что
делает решение о принятии изменений в совместно используемых двоичных
файлах для каждого из проектов намного более явным.
Например, имеется два групповых проекта, $TeamProject1
и $Common, и Common содержит совместно используемые двоичные файлы. В
проекте, использующем эти файлы, создается ветвь от совместно
используемого каталога. Структура каталогов TFS представлена на рис.
6.5.
Рис. 6.5 - Ветвление от Common
Отображение рабочего пространства должно быть примерно следующим:
Папка в системе контроля версий Локальная папка
$/MyTeamProject1/Main C:\MyTeamProject1\Main
Рис. 6.6 Структура каталогов рабочего пространства на стороне клиента
Структура каталогов рабочего пространства на стороне клиента представлена на рис. 6.6.
Рис. 6.6 - Структура каталогов рабочего пространства на стороне клиента
Отображение рабочего пространства
Если групповой проект совместно использует двоичные
файлы, то они отображаются из совместно используемого каталога в
рабочее пространство разработчика на его компьютере. В этом случае
возникает конфигурация, объединяющая на стороне клиента двоичные файлы
из совместно используемого каталога и разрабатываемый проект.
Преимущество этого подхода в том, что изменения в
совместно используемых двоичных файлах поступают в рабочее пространство
разработчика при каждой загрузке последней версии исходного кода.
Например, имеются два групповых проекта, $TeamProject2
и $Common, и TeamProject2 использует двоичные файлы, доступные в
Common. Тогда структура каталогов рабочего пространства на стороне
клиента должна быть следующей (рис. 6.7).
Рис. 6.7 - Хранение совместно используемых библиотек
Отображения рабочего пространства должны быть такими:
Папка в системе контроля версий Локальная папка
$/MyTeamProject2/Main/ C:\DevProjects\MyTeamProject2\Main\
$/Common/Main/Bin C:\DevProjects\MyTeamProject2\Main\Source\CommonBin
Подробнее об этом рассказывает статья «Working with multiple team projects in Team Build» по адресу http://blogs.msdn.com/manishagarwal/archive/2005/12/22/506635.aspx .
Рекомендации по использованию проектов и сборок
Задать ссылку на файл можно двумя способами:
- Чтобы сослаться на сборку .NET Framework, необходимо выбрать
ее из списка, отображаемого на вкладке .NET диалогового окна Add
References (добавить ссылки).
- Используйте кнопку Browse (Просмотр) диалогового окна Add Reference.
Сборки, такие как System.XML.dll, располагаются в Глобальном кэше
сборок (Global Assembly Cache, GAC). Однако мы никогда не ссылаемся на
сборку в GAC напрямую. При выборе сборки на вкладке .NET диалогового
окна Add References на самом деле происходит ссылка на копию сборки,
находящуюся в папке %windir%\Microsoft.NET\Framework\\
Предпочтительнее использовать ссылки на проекты, а не на файлы. При
работе со ссылками на сборки необходимо руководствоваться следующими
рекомендациями:
- Везде, где это возможно, использовать ссылки на проекты.
- Использовать ссылки на файлы только по необходимости.
- Для ссылок на проекты и файлы использовать Copy Local = True.
Более подробная информация представлена в разделе «Рекомендации по работе с системой контроля версий» данного руководства.
Автоматическое отслеживание зависимостей
При каждой сборке локального проекта система сборки сравнивает дату
и время файла сборки, на которую ссылается проект, с используемой
рабочей копией этого файла на компьютере разработчика. Если версия по
ссылке более свежая, чем рабочая копия, в локальную папку копируется
новая версия. Одно из преимуществ такого подхода состоит в том, что
ссылка на проект, созданная разработчиком, не блокирует динамически
подключаемую библиотеку (DLL) сборки на сервере и никак не вредит
процессу сборки.
Использование Веб-сервисов
В более простых системах, в которых все проекты системы
располагаются в одном групповом проекте, все разработчики, в конце
концов, работают с локальными рабочими копиями всех Веб-сервисов,
потому что они определены проектами Visual Studio в групповом проекте.
Все проекты (включая все Веб-сервисы) устанавливаются локально при
первом открытии решения из системы контроля версий. Аналогично, если
Веб-сервис добавляется в решение одним из разработчиков, у всех
остальных он устанавливается при следующем обновлении. При таком
сценарии нет необходимости публиковать Веб-сервисы на центральном
Веб-сервере среды коллективной разработки.
Для более крупных систем Веб-сервисы могут публиковаться на
доступном централизованном Веб-сервере. Тогда разработчикам не надо
локально устанавливать такой Веб-сервис, так как они могут просто
обращаться к нему из своих клиентских проектов. Хотя, как обсуждается
ниже, необходимо создать соответствующую ссылку на этот Веб-сервис.
Более подробно об этом рассказывается в разделах «Рекомендации по
работе с системой контроля версий» и «Практики работы с системой
контроля версий» данного руководства.
Использование динамических URL для ссылки на Веб-сервисы.
Если требуется вызвать Веб-сервис, необходимо сначала добавить в
проект Веб-ссылку. При этом создается прокси-класс, посредством
которого осуществляется взаимодействие с Веб-сервисом. Код
прокси-класса изначально содержит статический Универсальный указатель
ресурса (Uniform Resource Locator, URL) Веб-сервиса, например,
http://localhost или http://SomeWebServer.
Важно: Для Веб-сервисов текущего решения, которое выполняется на
вашем компьютере, должен использоваться только http://localhost, а не
http://MyComputerName. Это гарантирует, что ссылка останется
достоверной на всех компьютерах.
Обычно в прокси-классе используется статический URL. В среде
производственной эксплуатации или тестирования, как правило, необходим
другой URL. Существует три варианта решения этой проблемы:
- Можно задавать URL Веб-сервиса программно при создании экземпляра прокси-класса.
- Более гибкий подход без жесткого кодирования URL в прокси-классе - задать свойству URL Behavior (Поведение URL) ссылки на Веб-сервис значение Dynamic (Динамический). Такой подход является предпочтительным. Когда этому свойству задается значение Dynamic,
в прокси-класс добавляется код для извлечения URL Веб-сервиса из
специальной секции конфигурационного файла приложения (Web.config для
Веб-приложения или SomeApp.exe.config для приложения Windows).
- Также
можно создать прокси-класс с помощью инструмента командной строки
WSDL.exe, задавая ключ /urlkey. При этом подобно заданию значения
свойства URL Behavior, в прокси добавляется код для извлечения
URL Веб-сервиса, только в этом случае URL хранится в секции
конфигурационного файла приложения.
При таком подходе, с использованием динамического URL, также появляется
возможность предоставлять пользовательский конфигурационный файл,
который может переопределять основной конфигурационный файл приложения.
Это обеспечивает возможность отдельным разработчикам и членам группы
тестирования временно изменять ссылку на Веб-сервис.
Как использовать динамические URL и пользовательский конфигурационный файл
Чтобы добиться максимальной гибкости конфигурации, как в среде
разработки, так и в среде производственной эксплуатации, свойству URL
Behavior ссылки на Веб-сервис должно быть задано значение Dynamic. При
добавлении Веб-ссылки Visual Studio по умолчанию присваивает этому
свойству значение Dynamic. Чтобы проверить значение данного свойства:
- В Solution Explorer разверните список Веб-ссылок.
- Пройдитесь по всем Веб-ссылкам списка.
- Для каждой Веб-ссылки проверьте значение свойства URL Behavior (оно должно быть Dynamic).
Чтобы задать URL Веб-сервиса в пользовательском конфигурационном файле:
- Когда Веб-ссылка задается впервые, Visual Studio
автоматически создает файл App.config, в котором содержится ссылка на
Веб-сервис. Настройки конфигурации в файле App.config выглядят
следующим образом:
<configuration>
<configSections>
<sectionGroup name="applicationSettings"
type="System.Configuration.ApplicationSettingsGroup, System,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="
YourProject.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<YourProject.Properties.Settings> <setting name="SomeService_ localhost _Service" serializeAs="String">
<value>http://localhost/someservice/Service.asmx</value>
</setting>
</ YourProject.Properties.Settings>
</applicationSettings>
</configuration>
В данном файле имеется новая секция конфигурации, которую использует
созданный прокси-класс. В данной секции располагается адрес
Веб-сервиса, обнаруженный Visual Studio при формировании этого
прокси-класса.
Также Visual Studio помещает в код, сформированный для этого прокси,
значение URL по умолчанию. Это значение находится в файле
Settings.Designer.cs. Чтобы увидеть этот файл:
- В Solution Explorer щелкните Веб-сервис правой кнопкой мыши.
- Выберите
View in Object Browser (Просмотр в браузере объектов). В Object Browser
найдите запись YourProject.Properties, где YourProject - имя проекта,
содержащего ссылку на Веб-сервис.
- Разверните
YourProject.Properties и щелкните двойным щелчком Settings (Настройки).
При этом откроется файл Settings.Designer.cs, содержащий подобную
строку:
[global::System.Configuration.DefaultSettingValueAttribute("http://localhost:/w ebservice/Service.asmx")]
- Это значение по умолчанию, используемое как URL Веб-сервиса, если не найдена информация о конфигурации.
Часто возникает необходимость изменить URL вызываемого Веб-сервиса.
Например, требуется протестировать приложение с использованием
Веб-сервиса, выполняемого локально на компьютере разработчика, или
версии Веб-сервиса, выполняющейся в среде тестирования. Также очень
часто URL Веб-сервиса производственной эксплуатации отличается от URL,
используемого при разработке. Поэтому значение URL должно быть задано в
пользовательском конфигурационном файле, на который будет ссылаться
основной файл App.config. Имя пользовательского конфигурационного файла
выбирается произвольно. В следующем примере используется имя
User.config, чтобы было ясно, что это файл с конфигурацией
пользователя.
Этапы создания файла User.config:
- В Solution Explorer щелкните правой кнопкой мыши проект,
содержащий ссылку на Веб-сервис, выберите Add и затем щелкните New Item
(Новый элемент).
- Выберите Application Configuration File (Конфигурационный файл приложения), измените имя на User.config и щелкните Add.
- Скопируйте
настройки элемента <YourProject.Properties.Settings> из
конфигурационного файла приложения (App.config) в файл User.config.
Этот файл должен содержать только элемент, который выносится из
основного конфигурационного файла приложения. Удалите директиву
<?xml> и элемент <configuration>, если они присутствуют,
как показано в следующем примере:
<YourProject.Properties.Settings>
<setting name="SomeService_localhost_Service" serializeAs="String">
<value>http://localhost/someservice/Service.asmx</value>
</setting>
</YourProject.Properties.Settings>
Каждый разработчик должен задать содержимое своего файла User.config,
чтобы использовать соответствующий URL. После этого необходимо указать
системе конфигурации, что она должна получать данные конфигурации из
файла User.config, а не файла App.config. Для этого файл App.config
необходимо обновить следующим образом:
- Добавьте атрибут configSource="user.config" в элемент
<YourProject.Properties.Settings> главного конфигурационного
файла приложения. Тем самым, получив информацию из этой секции, среда
выполнения будет перенаправлена в указанный пользовательский
конфигурационный файл.
- Удалите содержимое элемента <YourProject.Properties.Settings>.
Теперь App.config должен выглядеть следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<sectionGroup name="applicationSettings"
type="System.Configuration.ApplicationSettingsGroup, System,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
<section name="YourProject.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" />
</sectionGroup>
</configSections>
<applicationSettings>
<yourProject.Properties.Settings configSource="user.config"> </YourProject.Properties.Settings>
</applicationSettings>
</configuration>
В предыдущем примере YourProject - имя проекта, содержащего ссылку на Веб-сервис.
Важно: Если используется атрибут configSource,
пользовательский конфигурационный файл должен присутствовать и
содержать всего один элемент,<YourProject.Properties.Service>.
Также необходимо гарантированно удалить XML-содержимое элемента
<YourProject.Properties.Service> при добавлении атрибута
configSource="user.config".
При использовании User.config:
- Убедитесь, что развертывание файла User.config происходит
вместе с кодом приложения. Для этого в Solution Explorer щелкните
правой кнопкой мыши файл User.config, выберите опцию Properties и
задайте свойству Copy To Output Directory (Копировать в выходной каталог) значение Copy if newer (Копировать, если это более свежая версия).
- Не
добавляйте свой файл User.config в систему контроля версий. Так каждый
разработчик и группа тестирования могут явно привязываться к
определенным URL, используя собственные файлы User.config. В системе
контроля версий могут располагаться другие файлы User.config, например,
используемые для тестирования и производственной эксплуатации. Эти
файлы должны обслуживаться пользователями, ответственными за управление
средами тестирования и производственной эксплуатации. Файлы User.config
для тестирования и производственной эксплуатации не должны храниться
как часть проектов Веб-сервиса, они должны располагаться в других
областях системы контроля версий.
- Храните глобальный файл
User.config в системе контроля версий. Он может содержать только
корневой элемент (без элемента <setting>) или может определять
местоположение Веб-сервиса по умолчанию. Наличие файла User.config
обеспечивает возможность работы системы конфигурации.
Подсказка: По умолчанию пользовательский конфигурационный файл
автоматически добавляется в систему контроля версий при добавлении
решения. Чтобы предотвратить это, при первой регистрации изменений в
файле необходимо убрать флажок напротив файла User.config. После этого
можно щелкнуть правой кнопкой мыши файл в Solution Explorer и выбрать
опцию Undo Pending Changes (Отменить ожидающие регистрации изменения). Тогда файл гарантированно не будет подлежать контролю версий.
Важно: Если в файле User.config, задающем URL, имеется только
корневой элемент, и нет элемента настроек, прокси-класс Веб-сервиса
использует URL по умолчанию, который указан в файле
Settings.Designer.cs. Это значение определено как атрибут
DefaultValueSettings (Значения по умолчанию) и выглядит следующим
образом
[global::System.Configuration.DefaultSettingValueAttribute("http://localhost/webservic e/Service.asmx")]
Важно: Для Веб-приложений, использующих пользовательский
конфигурационный файл, любые изменения этого файла по умолчанию
приводят к автоматическому перезапуску Веб-приложения. Чтобы отменить
перезапуск приложения при изменении значения, необходимо добавить
атрибут restartOnExternalChanges="false" (перезапустить при внешних изменений) в описание секции конфигурационного файла, как это сделано ниже:
<configSections>
<sectionGroup name="applicationSettings"
type="System.Configuration.ApplicationSettingsGroup, System,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<section
name="Test.Properties.Settings"
type="System.Configuration.ClientSettingsSection, System,
Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089"
requirePermission="false" restartOnExternalChanges="true"/>
</sectionGroup>
</configSections>
Если этот атрибут добавлен в секцию конфигурации файла Web.config,
изменения внешнего конфигурационного файла User.config не приводят к
автоматическому перезапуску Веб-приложения. Однако эти изменения
по-прежнему отражаются в приложении.
Важно понимать, что если используется данный механизм, файл
User.config должен присутствовать обязательно. Кто-то должен отвечать
за обеспечение соответствия среды требованиям при создании сборок для
производственной эксплуатации и для сред тестирования. В ходе сборки
соответствующий файл User.confg должен быть получен из системы контроля
версий и скопирован в соответствующий каталог, чтобы MSBuild мог найти
его.
Использование баз данных
Ссылки на базы данных в виде строк соединения также могут быть
организованы посредством внешнего конфигурационного файла. Преимущество
такого подхода в том, что любой разработчик может без труда задать
собственную строку соединения в личном файле User.config. Любые
изменения, вносимые одним из разработчиков, например переадресация
соединения в локальную базу данных в целях тестирования модулей, не
оказывают никакого влияния на других разработчиков.
Пользовательский конфигурационный файл также может использоваться
для управления настройками конкретной среды, например настройками среды
тестирования. Среда тестирования также может использовать файл
User.config, который ссылается на тестовую базу данных.
Процедура аналогична рассмотренной выше процедуре с Веб-ссылками, за
исключением того что приведенный пример прокси Веб-сервиса содержит код
для извлечения URL Веб-сервиса из конфигурационного файла. При работе с
базами данных необходимо предоставлять код чтения строки соединения.
Как использовать пользовательский конфигурационный файл при работе со строками соединений с базами данных
Приведенная ниже процедура описывает, как хранить и затем
использовать строку соединения с базой данных в пользовательском
конфигурационном файле.
Чтобы использовать конфигурационный файл пользователя для хранения строк соединения с базой данных:
- Добавьте атрибут configSource="user.config" в элемент главного конфигурационного файла приложения.
<configuration> <connectionStrings configSource=”user.config”/> </configuration>
- Чтобы
переопределить главный конфигурационный файл приложения, создайте файл
User.config (расположив его в той же папке, что и конфигурационный файл
приложения) и затем добавьте такую же запись в этот файл. Обратите
внимание на то, что следующая строка соединения ссылается на локальную
базу данных:
<connectionStrings> <add name="DBConnStr"
connectionString="server=localhost;Integrated
Security=SSPI;database=Accounts"/> </connectionStrings>
- В своем проекте применяйте следующий код для получения строки соединения из пользовательского конфигурационного файла.
using System.Configuration;
private string GetDBaseConnectionString()
{
return ConfigurationManager.ConnectionStrings["DBConnStr"].ConnectionString;
}
В этом коде используется статическое свойство ConnectionStrings (Строки
соединения) класса System.Configuration.ConfigurationManager. В
приложениях WinForm необходимо добавить явную ссылку на
System.Configuration.dll.
- Убедитесь,
что файл 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.
Дополнительные источники
15.12.2008
Комментарии
- dEKNHnZfoILrr
Автор: CfaNlB , [url=http://nzvteailouap.com/]nzvteailouap[/url], [link=http://gehzpymepudw.com/]gehzpymepudw[/link], http://flmqlcdprsiw.com/ · 13.01.2012 21:06:37 CfaNlB , [url=http://nzvteailouap.com/]nzvteailouap[/url], [link=http://gehzpymepudw.com/]gehzpymepudw[/link], http://flmqlcdprsiw.com/ - WRlocwDCoFOiTMv
Автор: PpWXUP dulyjtpwamtr · 10.01.2012 14:46:38 PpWXUP dulyjtpwamtr - SuNNfGcxfwoTSIzLY
Автор: 1P61Y8 , [url=http://bsnnnbjrjudm.com/]bsnnnbjrjudm[/url], [link=http://ftxnsjbdryeh.com/]ftxnsjbdryeh[/link], http://gwwzmapycsoi.com/ · 09.01.2012 15:08:15 1P61Y8 , [url=http://bsnnnbjrjudm.com/]bsnnnbjrjudm[/url], [link=http://ftxnsjbdryeh.com/]ftxnsjbdryeh[/link], http://gwwzmapycsoi.com/ - rIrnvVIqfHnTc
Автор: Osojlh rvxjjfxggkvt · 08.01.2012 11:51:15 Osojlh rvxjjfxggkvt - wpIOAMbHAAfdcowM
Автор: What a joy to find someone else who thkins this way. · 08.01.2012 05:54:51 What a joy to find someone else who thkins this way. - PRBgdUxfJz
Автор: lGySaQ , [url=http://gluolwrynwre.com/]gluolwrynwre[/url], [link=http://grtgsqzyftof.com/]grtgsqzyftof[/link], http://pidgiyloldoc.com/ · 31.08.2011 12:08:26 lGySaQ , [url=http://gluolwrynwre.com/]gluolwrynwre[/url], [link=http://grtgsqzyftof.com/]grtgsqzyftof[/link], http://pidgiyloldoc.com/ - xjipgbMGfraoKVHBv
Автор: EDjNVW yrvlubopiqqv · 25.08.2011 18:55:40 EDjNVW yrvlubopiqqv - eogvTKQthibl
Автор: HJI0P0 , [url=http://etwaktwdgtxf.com/]etwaktwdgtxf[/url], [link=http://jjcmriutadch.com/]jjcmriutadch[/link], http://ysbxgpmmdlcs.com/ · 23.08.2011 19:34:26 HJI0P0 , [url=http://etwaktwdgtxf.com/]etwaktwdgtxf[/url], [link=http://jjcmriutadch.com/]jjcmriutadch[/link], http://ysbxgpmmdlcs.com/ - bmQSoUKQhIwQW
Автор: wShVDH onimvpdhccpy · 20.08.2011 17:17:36 wShVDH onimvpdhccpy - sHuPRAfPYO
Автор: I really apprecaite free, succinct, reliable data like this. · 19.08.2011 23:21:59 I really apprecaite free, succinct, reliable data like this.
Добавить комментарий (анонимные комментарии не публикуются!!!)
Новости и пресс-релизы СМ-Консалт
21.02.2012 12:42:20 Новая статья: IT и психология. Человеческий фактор в парном программировании: почему многие не получают желаемого от его внедрения?
Статья, находящаяся перед вами, открывает цикл статей о человеческом
факторе, Agile-практиках и других полезных приемах, используемых при
управлении командами в ИТ. Объединяет рассматриваемые практики и приемы
одно – они позволяют проявиться положительным эффектам, связанным с
человеческим фактором. И мы объясняем, почему с точки зрения психологии,
это происходит. Так сказать, подводим теоретическую и экспериментальную
базу под то, что себя уже давно зарекомендовало и работает. Или под то,
что работает не у всех, и потому является предметом оживленных споров и
дискуссий. И начинаем мы наши исследования с рассмотрения эффекта
парного программирования через призму экспериментов социальной
психологии.
Отдельную благодарность за рецензию и время, потраченное на прочтение
первого варианта статьи, выражаем Асхату Уразбаеву,
ценные замечания которого позволили не только улучшить данную статью,
но и позволили убедиться в необходимости и востребованности именно цикла
статей!
Читать -->
27.12.2011 16:15:27 Компания "СМ-Консалт" получила отзыв о работах в Федеральной Налоговой Службе (ГНИВЦ ФНС)
Специалистами ООО «СМ-Консалт» в 2010-2011г. был выполнен проект
по настройке и внедрению системы управления жизненным циклом разработки
программных систем в части управления изменениями и конфигурациями на
основе Microsoft Visual Studio Team Foundation Server 2010 для
Филиала Федерального государственного унитарного предприятия «Главный
научно-исследовательский вычислительный центр Федеральной налоговой
службы» в Приволжском Федеральном округе (Филиал ФГУП ГНИВЦ ФНС России в
ПФО).
28.11.2011 15:05:11 Новая статья: "Всегда ли «Да» – это «Да»? Или как нас вынуждают принимать решения"
Мы предлагаем вашему вниманию цикл статей, в основу которых положены
психологические практики и приемы, позволяющие влиять на решения,
принимаемые людьми. Эта идея была логическим продолжением ряда
выступлений с докладами о коммуникациях в проектах разработки и
внедрения ПО. Давайте, не откладывая в долгий ящик, начнем с самого
простого приема убеждения, с которым сталкиваемся ежедневно в магазинах,
в транспорте, в разговорах с коллегами… да мало ли где еще!
Авторы: Новичков Александр и Карабанова Галина.
Читать -->
10.10.2011 11:16:06 Компания «СМ-Консалт» открывает новое направление продаж - ПО Adobe Connect
Программное обеспечение Adobe Connect является гибкой системой
web-коммуникации с высоким уровнем информационной безопасности. Adobe
Connect предоставляет такие важнейшие функции корпоративного
взаимодействия, как деловое общение и совместная работа сотрудников на
уровне предприятий, дистанционное обучение, организация широкомасштабных
сетевых семинаров и презентаций. Система Adobe Connect базируется на
технологии Adobe Flash, а также Air, и поэтому позволяет подключать
сотрудников к единому пространству взаимодействия через web-браузер с
любых устройств.
17.09.2011 21:40:22 Новая статья: "Разработка прикладного программного обеспечения с использованием Rational Unified Process на Иркутском Авиационном заводе"

На сайте СМ-Консалт открыт новый раздел Статьи наших заказчиков об успешных внедрениях IBM Rational и Microsoft. Статьи для данного раздела пишутся нашими заказчиками и рассказывают о сути проектов внедрения технологий IBM и Microsoft. Первая статья, представленная вашему вниманию написана сотрудниками Иркутского Авиационного Завода (ИАЗ).
Иркутский авиазавод имеет длительный опыт разработки программного
обеспечения для информационной поддержки ключевых бизнес-процессов
предприятия. Однако, в связи с увеличивающейся сложностью и повышением
требований к разрабатываемому программному обеспечению, возникла
настоятельная необходимость усовершенствовать процесс разработки:
повысить качество разрабатываемых программных продуктов,
стандартизировать процесс с увеличением его эффективности.
С целью повышения качества программного обеспечения собственной
разработки и сокращения сроков разработки руководство Управления
информационных технологий (УИТ) Иркутского Авиационного Завода в 2006г. приняло решение о внедрении технологии разработки ПО на базе методологии Rational Unified Process и с использованием инструментов автоматизации IBM Rational.
13.09.2011 12:07:29 Новый тренинг «Коммуникации и психология межличностных отношений в ИТ-проектах»

Компания «СМ-Консалт» представляет новый тренинг, организуемый совместно с компанией «КарьерKаб» - «Коммуникации
и психология межличностных отношений в ИТ-проектах.
Тренинг позволит понять, насколько коммуникации в проектах важнее инструментов, что люди и их взаимоотношения зачастую оказываются решающим фактором, определяющим успех проекта. Если более пятидесяти процентов рабочего времени вы тратите на взаимодействие с заказчиком, если вам небезразлична судьба вашей команды и вы хотите, чтобы ваша команда работала как часы, реализуя проекты точно, вовремя и без перерасхода ресурсов - наш тренинг поможет в этом.
01.08.2011 17:44:25 Наша компания получила отзыв о сотрудничестве с ОАО «Нордеа Банк»

В 2010-2011 гг. наши специалисты провели в Нордеа Банке проект по предварительному обследованию, развертыванию инструментальных средств и ряд тренингов по обучению методологии и работе с продуктами IBM Rational: «Методология разработки программных систем IBM Rational Unified Process», «Управление требованиями с использованием IBM Rational RequisitePro», «Управление изменениями в IBM Rational ClearQuest».
24.06.2011 01:27:57 Бесплатный семинар-вебинар «Повышение эффективности IT подразделений и качества разрабатываемого ПО с использованием современных методологий и технологий»
Компании СМ-Консалт , Legal SoftWaveTM и DNA приглашают Вас посетить бесплатный семинар-вебинар, посвященный обзору технологий и методологий, которые позволяют повысить эффективность ИТ подразделений. На семинаре рассматриваются технологии IBM Rational, Microsoft TFS, а также системы аналитической обработки информации (Business Intelligence) (IBM SPSS, Deductor, QlikView и другие).
Планируемая продолжительность семинара - 8 академических часов.
Место проведения: Санкт-Петербург (очно) и Интернет (для всех желающих: приходите сами и приглашайте друзей!).
Дата и время: 14 июля 2011 в 9 00.
ВНИМАНИЕ: если вы не сможете очно приехать на семинар - это не страшно, так как семинар будет транслироваться через интернет в формате вебинара и к нему, после регистрации, смогут присоединиться все желающие. Трансляция будет осуществляться посредством технологии Adobe Connect Pro , это позволит Вам присоединяться к конференции без установки дополнительного ПО - только интернет браузер.
Смотреть программу -->
07.06.2011 13:02:44 Компания "СМ-Консалт" провела серию успешных семинаров для ГНИВЦ ФНС России

Проведенные семинары были посвящены средствам разработки и тестирования программного обеспечения компании Майкрософт для сотрудников ГНИВЦ ФНС России. Слушатели семинаров отметили высокую квалификацию тренеров компании "СМ-Консалт" по организации учебного процесса и повышению квалификации специалистов, прошедших обучение.
Индивидуальный подход при решении любых вопросов, возникающих в процессе обучения, оперативность принятия решений, гарантированное выполнение взятых на себя обязательств и профессионализм позволили провести обучение на самом высоком уровне.
07.12.2010 12:28:15 Мы идем в Твиттер!

Наша компания открыла аккаунт в системе микроблоггинга Twiter.Теперь все официальные и неофициальные новости будут появляться в нашей ленте в Twitter.
Там же возможно будет задать прямые вопросы специалистам СМ-Консалт, по всем вопросам, связанным как с деятельностью компании, так и с техническими аспектов продуктов IBM и собственных решений СМ-Консалт.
Следуйте за нами!
https://twitter.com/cmconscom
11.11.2010 14:14:14 Осенний марафон Microsoft ALM Road Show
Компания СМ-Консалт совместно с образовательным центром Careerlab провели серию семинаров в рамках мероприятий ALM Roadshow 2.0 в крупнейших городах, расположенных на Волге, – крупных научных центрах, в которых ИТ технологии находятся на высоком уровне. Семинары прошли в Самаре, Нижнем Новгороде и Казани. Cеминары были посвящены использованию новых инструментов MS Visual Studio Team System в проектах разработки ПО.
В семинарах принимали участие представители различных ролей процесса разработки ПО: от разработчиков до руководителей предприятий различного уровня. Темы, обсуждаемые в ходе семинара, вызвали большой интерес аудитории и немалое количество вопросов, на которые были предоставлены исчерпывающие ответы. В процессе семинара также было показано большое количество примеров, которые дают представление о возможностях инструментов MS Team System. Средняя оценка за семинар составила 4,6 балла по пятибальной шкале
08.09.2010 18:37:52 Скидки до 30% на программное обеспечение IBM Rational

Компания СМ-Консалт предлагает для всех желающих на льготных условиях приобрести программное обеспечение IBM Rational. Снижение цен связано с тем, что мы стараемся быть как можно ближе к нашим клиентам, многие из которых постепенно начали преодолевать последствия финансового кризиса.Наше предложение поможет с минимальными издержками приобрести ПО IBM Rational, что является хорошим капиталовложением.
Скидки до 1 декабря 2010 года:
- 20% скидки при покупке IBM Rational ClearCase, ClearQuest, CearCase LT, при приобретении пяти и более лицензий*;
- 30% скидки при покупке пяти любых продуктов IBM Rational + решение или тренинг СМ-Консалт*.
Для получения деталей обязательно свяжитесь с нашими менеджерами
|