Работа с серверным кодом
Glossary Item Box
Общие положения
В приложении Creatio существует возможность полноценной отладки созданного пользователем программного кода с помощью интегрированных функций отладки среды разработки Visual Studio. Отладчик Visual Studio позволяет приостанавливать выполнение методов, проверять значения переменных, изменять их и получать полное представление о том, что делает код.
Общая последовательность действий при разработке решений с использованием Visual Studio следующая:
- Выполнить предварительные настройки приложения Creatio и Visual Studio.
- Создать, установить или обновить пользовательский пакет из репозитория SVN.
- Создать схему [Исходный код], в которой будет выполняться разработка.
- Выполнить разработку исходного кода в Visual Studio, создав, например, класс конфигурационного Web-сервиса.
- Сохранить, скомпилировать и выполнить отладку созданного исходного кода.
После успешной компиляции итоговая сборка Terrasoft.Configuration.dll будет помещена в каталог Bin, при этом IIS автоматически использует ее в приложении Creatio.
Алгоритм действий при разработке решений с использованием Visual Studio
1. Выполнить предварительные настройки
Предварительные настройки Creatio и Visual Studio для разработки в файловой системе описаны в статьях "Инструменты разработки. IDE Microsoft Visual Studio" и "Настройка IDE для разработки".
Для разработки в файловой системе можно использовать Microsoft Visual Studio редакций Community, Professional и Enterprise версии 2017 (c последними обновлениями) и выше.
2. Создать, получить или обновить пакет из репозитория SVN
Создание пользовательского пакета с использованием и без использования SVN описано в статьях "Создание пользовательского пакета" и "Создание пакета в режиме разработки в файловой системе". Установка и обновление пакетов — в "Установка пакета из системы контроля версий" и "Обновление пакета из системы контроля версий".
При разработке в файловой системе вместо встроенных возможностей Creatio удобнее использовать клиентские приложения для работы с хранилищами систем контроля версий, например, Tortoise SVN или Git.
3. Создать схему [Исходный код]
Создание схемы [Исходный код] в пользовательском пакете подробно описано в статье "Создание схемы [Исходный код]".
4. Выполнить разработку решения в Visual Studio
Прежде чем выполнять разработку решения в Visual Studio, необходимо выгрузить существующие схемы из базы данных в файловую систему. Для этого нужно выполнить действие [Выгрузить пакеты в файловую систему] ([Download packages to file system]) (рис. 1)
Рис. 1. — Действие [Выгрузить пакеты в файловую систему]
Так, например, если в пакете sdkPackageInFileSystem была создана схема [Исходный код] с именем UsrGreetingService, то в файловой системе в каталоге Pkg\sdkPackageInFileSystem\Schemas\ появится файл исходного кода схемы UsrGreetingService.cs (рис. 2). При этом в каталог Autogenerated\Src будет помещен сгенерированный системой файл схемы UsrGreetingServiceSchema.sdkPackageInFileSystem_Entity.cs.
Рис. 2. — Файл с исходным кодом схемы
Чтобы добавить схему в SVN, необходимо добавить весь каталог UsrGreetingService, включая JSON-файлы.
Для выполнения разработки необходимо в Visual Studio открыть решение Terrasoft.Configuration.sln (см. "Инструменты разработки. IDE Microsoft Visual Studio"). Затем в проводнике решения Visual Studio включить отображение всех типов файлов (рис. 3, 1), открыть файл UsrGreetingService.cs (рис. 3, 2) и добавить нужный исходный код (рис. 3, 3).
Рис. 3. — Работа с файлом схемы в Visual Studio
Пример исходного кода, который нужно добавить в содержимое файла UsrServiceGreeting.cs для реализации пользовательского Web-сервиса:
namespace Terrasoft.Configuration { using System.ServiceModel; using System.ServiceModel.Activation; using System.ServiceModel.Web; // Класс, реализующий конфигурационный сервис. [ServiceContract] [AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Required)] public class UsrGreetingService : System.Web.SessionState.IReadOnlySessionState { // Операция сервиса. [OperationContract] [WebInvoke(Method = "GET", UriTemplate = "Hello")] public string TestHello() { return "Hello!"; } } }
Подробнее о назначении атрибутов класса, реализующего конфигурационный сервис, можно узнать из статьи "Создание пользовательского конфигурационного сервиса".
5. Сохранить, скомпилировать и отладить созданный исходный код
После того как исходный код был изменен, прежде чем выполнить его компиляцию и отладку, необходимо его сохранить (рис. 3, 4). Обычно это выполняет Visual Studio автоматически, но поскольку компилятор Visual Studio не используется, эту операцию нужно выполнять разработчику самостоятельно.
После сохранения измененный исходный код необходимо скомпилировать командой Build Workspace или Rebuild Workspace (см. "Настройка IDE для разработки"). В случае успешной компиляции сервис становится доступным. Для рассматриваемого примера сервис доступен по адресу (рис. 4):
http://[URL приложения]/0/rest/UsrGreetingService/Hello
Рис. 4. — Проверка работоспособности сервиса
Для того чтобы начать отладку, необходимо присоединиться к процессу сервера IIS, в котором запущено приложение. Для этого нужно выполнить команду меню Debug —> Attach to process (рис. 5).
Рис. 5. — Команда присоединения к процессу
В открывшемся окне в списке процессов нужно выбрать рабочий процесс IIS, в котором запущен пул приложения Creatio (рис. 6).
Рис. 6. — Присоединение к рабочему процессу IIS
Название рабочего процесса может различаться в зависимости от конфигурации используемого сервера IIS. Так, для полнофункционального IIS процесс называется w3wp.exe, для IIS Express — iisexpress.exe.
По умолчанию рабочий процесс IIS запущен под учетной записью, имя которой совпадает с именем пула приложения. Для того чтобы отобразить процессы всех пользователей, а не только текущего, необходимо установить признак Show processes from all users (рис. 6).
После присоединения к рабочему процессу IIS необходимо выполнить повторную компиляцию. Далее можно приступить к процессу отладки средствами отладчика Visual Studio. Например, можно установить точки останова, просматривать значения переменных, стек вызовов и т.д. С возможностями отладчика Visual Studio можно ознакомиться здесь.
Например, после установки точки останова на строке возврата из метода TestHello(), повторной компиляции приложения и выполнения запроса к сервису отладчик остановит выполнение программы на точке останова (рис. 7).
Рис. 7. — Остановка работы приложения на точке останова
Возможность отладки зависит от правильности настройки Visual Studio.