Настройка Visual Studio для разработки в файловой системе
Glossary Item Box
Общие сведения
Чтобы максимально ускорить производительность разработки кода, выполняемого на серверной стороне, необходимо использовать интегрированную среду разработки (IDE) Microsoft Visual Studio. С ее помощью можно не только создавать, редактировать и компилировать программный код, но и выполнять его отладку, вести командную разработку, использовать системы управления версиями и многое другое.
Разработка в Microsoft Visual Studio стала возможна после реализации в bpm'online механизма разработки пакетов конфигурации в файловой системе. С помощью этого механизма можно выгружать содержимое пакетов из базы данных в файлы, изменять исходный код схем с помощью IDE, а после внесения изменений — загружать измененные пакеты обратно в базу данных.
К СВЕДЕНИЮ
Для разработки в файловой системе можно использовать Microsoft Visual Studio редакций Community, Professional и Enterprise версии 2017 (c последними обновлениями) и выше.
Для компиляции приложения используется утилита WorkspaceConsole, интегрируемая в Visual Studio. Это дает следующие преимущества:
- Ускорение компиляции за счет того, что конфигурационная сборка разбивается на независимые компилируемые модули. Перекомпилируются только те модули, пакеты которых были изменены.
- Для перекомпиляции конфигурационной сборки не нужно выходить из режима отладки или открепляться от процесса IIS.
ВАЖНО
Компиляцию проекта конфигурации также можно выполнить компилятором Visual Studio. Однако, он может не учесть зависимости и позиции пакетов.
Общая последовательность настройки Visual Studio для разработки в файловой системе:
- Включить режим компиляции в IDE.
- Настроить утилиту WorkspaceConsole для компиляции приложения.
- Настроить Microsoft Visual Studio
Последовательность настройки Visual Studio
1. Включить режим компиляции в IDE
Чтобы включить режим компиляции в IDE, необходимо в файле Web.config, который находится в корневом каталоге с установленным приложением ("внешний" Web.config), установить значение true для атрибута enabled элемента fileDesignMode.
<fileDesignMode enabled="true"/>
ВАЖНО
Для компиляции в Visual Studio необходимо включить режим разработки в файловой системе.
ВАЖНО
На текущий момент режим разработки в файловой системе (РФС) не совместим с получением клиентского контента из предварительно сгенерированных файлов. Для корректной работы с РФС необходимо отключить получение статического клиентского контента из файловой системы. Для отключения данной функциональности нужно установить значение false для флага UseStaticFileContent в файле Web.config.
<fileDesignMode enabled="true" /> ... <add key="UseStaticFileContent" value="false" />
ВАЖНО
Если включен режим разработки в файловой системе, то IIS будет использовать библиотеку Terrasoft.Configuration.dll только из файловой системы.
Если переход в режим разработки в файловой системе выполнен впервые, то после входа в приложение пользователь будет перенаправлен в раздел [Конфигурация]. При этом возникнет ошибка "The "Default" workspace assembly is not initialized". Для устранения этой ошибки необходимо выполнить действие [Компилировать все] ([Compile all items]).
2. Настроить утилиту WorkspaceConsole для компиляции приложения
Компиляция конфигурационного проекта происходит с помощью утилиты WorkspaceConsole, которая поставляется вместе с приложением. Перед использованием утилиту следует правильно настроить. Кроме обычных настроек, подробно описанных в статье "Настройка утилиты WorkspaceConsole", в конфигурационном файле Terrasoft.Tools.WorkspaceConsole.exe.config также необходимо включить режим разработки в файловой системе.
<fileDesignMode enabled="true" />
Если для ускорение компиляции конфигурационную сборку необходимо разбивать на независимые компилируемые модули, то необходимо установить значение true для настройки CompileByManagerDependencies во "внутреннем" Web.Config, находящемся в каталоге Terrasoft.WebApp, и в файле настроек Terrasoft.Tools.WorkspaceConsole.exe.config утилиты WorkspaceConsole.
<appSettings> ... <add key="CompileByManagerDependencies" value="true" /> ... </appSettings>
3. Настроить Microsoft Visual Studio
Чтобы использовать утилиту WorkspaceConsole для компиляции в Visual Studio, необходимо настроить внешние инструменты (External Tools). Для этого в среде Visual Studio необходимо выполнить команду меню Tools > External Tools... (рис. 1).
Рис. 1. — Добавление внешнего инструмента в Visual Studio
В появившемся диалоговом окне (рис. 2) необходимо добавить и настроить три команды вызова утилиты Workspace Console. Команды Build Workspace и Rebuild Workspace предназначены для компиляции изменений и полной компиляции конфигурационного проекта. Команда Update Workspace Solution предназначена для обновления решения Visual Studio конфигурационного проекта из базы данных приложения. Она применяет все изменения, внесенные пользователем через приложение. Свойства и аргументы команд приведены в табл. 1...3. Для всех трех команд также необходимо установить признак Use Output window (рис. 2).
Рис. 2. — Установка свойств и аргументов внешней команды Visual Studio
Табл. 1. — Свойства команды Update Workspace Solution
Title | Update Workspace Solution |
---|---|
Command |
[Путь к каталогу с установленным приложением]\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe Пример: C:\bpmonline713\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe |
Arguments |
--operation=UpdateWorkspaceSolution --workspaceName=Default --webApplicationPath="[Путь к каталогу с установленным приложением]\Terrasoft.WebApp" --confRuntimeParentDirectory="[Путь к каталогу с установленным приложением]\Terrasoft.WebApp" Пример: --operation=UpdateWorkspaceSolution --workspaceName=Default --webApplicationPath="C:\bpmonline713\Terrasoft.WebApp" --confRuntimeParentDirectory="C:\bpmonline713\Terrasoft.WebApp" |
Табл. 2. — Свойства команды Build Workspace
Title | Build Workspace |
---|---|
Command |
[Путь к каталогу с установленным приложением]\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe Пример: C:\bpmonline713\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe |
Arguments |
--operation=BuildWorkspace --workspaceName=Default --webApplicationPath="[Путь к каталогу с установленным приложением]\Terrasoft.WebApp" --confRuntimeParentDirectory="[Путь к каталогу с установленным приложением]\Terrasoft.WebApp" Пример: --operation=BuildWorkspace --workspaceName=Default --webApplicationPath="C:\bpmonline713\Terrasoft.WebApp" --confRuntimeParentDirectory="C:\bpmonline713\Terrasoft.WebApp" |
Табл. 3. — Свойства команды Rebuild Workspace
Title | Rebuild Workspace |
---|---|
Command |
[Путь к каталогу с установленным приложением]\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe Пример: C:\bpmonline713\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe |
Arguments |
--operation=RebuildWorkspace --workspaceName=Default --webApplicationPath="[Путь к каталогу с установленным приложением]\Terrasoft.WebApp" --confRuntimeParentDirectory="[Путь к каталогу с установленным приложением]\Terrasoft.WebApp" Пример: --operation=RebuildWorkspace --workspaceName=Default --webApplicationPath="C:\bpmonline713\Terrasoft.WebApp" --confRuntimeParentDirectory="C:\bpmonline713\Terrasoft.WebApp" |
Чтобы отладчик не пытался зайти в исходный код, которого нет в проекте, необходимо выполнить команду меню Debug > Options... и в появившемся диалоговом окне настроек включить опцию Enable Just My Code (рис. 3). Подробнее об опции Enable Just My Code можно узнать здесь.
Рис. 3. — Опция Enable Just My Code
Поскольку после компиляции конфигурации выполняется автоматический перезапуск приложения, то опция Enable Edit and Continue не поддерживается и ее следует отключить (рис. 4).
Рис. 4. — Опция Edit and Continue
Чтобы отладчик корректно останавливался на точках останова (BreakPoint), необходимо удостовериться, что включена опция Suppress JIT optimization on module load (рис. 5).
Рис. 5 — Suppress JIT optimization on module load