Настройка IDE для разработки
Glossary Item Box
Общие сведения
Чтобы максимально ускорить производительность разработки кода, выполняемого на серверной стороне, необходимо использовать интегрированную среду разработки (IDE) Microsoft Visual Studio. С ее помощью можно не только создавать, редактировать и компилировать программный код, но и выполнять его отладку, вести командную разработку, использовать системы управления версиями и многое другое.
Разработка в Microsoft Visual Studio стала возможна после реализации в Creatio механизма разработки пакетов конфигурации в файловой системе. С помощью этого механизма можно выгружать содержимое пакетов из базы данных в файлы, изменять исходный код схем с помощью 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:\сreatio713\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:\сreatio713\Terrasoft.WebApp" --confRuntimeParentDirectory="C:\сreatio713\Terrasoft.WebApp" |
Табл. 2. — Свойства команды Build Workspace
Title | Build Workspace |
---|---|
Command |
[Путь к каталогу с установленным приложением]\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe Пример: C:\сreatio713\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:\сreatio713\Terrasoft.WebApp" --confRuntimeParentDirectory="C:\сreatio713\Terrasoft.WebApp" |
Табл. 3. — Свойства команды Rebuild Workspace
Title | Rebuild Workspace |
---|---|
Command |
[Путь к каталогу с установленным приложением]\Terrasoft.WebApp\DesktopBin\WorkspaceConsole\Terrasoft.Tools.WorkspaceConsole.exe Пример: C:\сreatio713\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:\сreatio713\Terrasoft.WebApp" --confRuntimeParentDirectory="C:\сreatio713\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