Разработка серверного кода

Сложный

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

Общая последовательность действий 

  1. Выполнить предварительные настройки приложения Creatio и Visual Studio.
  2. Создать, установить или обновить пользовательский пакет из репозитория SVN.
  3. Создать схему Исходный код, в которой будет выполняться разработка.
  4. Выполнить разработку исходного кода в Visual Studio, создав, например, класс конфигурационного Web-сервиса.
  5. Сохранить, скомпилировать и выполнить отладку созданного исходного кода.

Важно. После успешной компиляции итоговая сборка Terrasoft.Configuration.dll будет помещена в каталог Bin, при этом IIS автоматически использует ее в приложении Creatio.

Разработка серверного кода в проекте Terrasoft.Configuration.sln 

1. Выполнить предварительные настройки 

Настроить 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).

scr_download_to_fs.png

Так, например, если в пакете sdkPackageInFileSystem была создана схема Исходный код с именем UsrGreetingService, то в файловой системе в каталоге Pkg\sdkPackageInFileSystem\Schemas\ появится файл исходного кода схемы UsrGreetingService.cs. При этом в каталог Autogenerated\Src будет помещен сгенерированный системой файл схемы UsrGreetingServiceSchema.sdkPackageInFileSystem_Entity.cs.

scr_schema_code.png

На заметку. Чтобы добавить схему в SVN, необходимо добавить весь каталог UsrGreetingService, включая JSON-файлы.

Для выполнения разработки необходимо в Visual Studio открыть решение Terrasoft.Configuration.sln. Затем в проводнике решения Visual Studio включить отображение всех типов файлов (1), открыть файл UsrGreetingService.cs (2) и добавить нужный исходный код (3).

scr_visual_studio.png

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

UsrServiceGreeting.cs
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. Сохранить, скомпилировать и отладить созданный исходный код 

После того как исходный код был изменен, прежде чем выполнить его компиляцию и отладку, необходимо его сохранить (4). Обычно это выполняет Visual Studio автоматически, но поскольку компилятор Visual Studio не используется, эту операцию нужно выполнять разработчику самостоятельно.

После сохранения измененный исходный код необходимо скомпилировать командой Build Workspace или Rebuild Workspace. В случае успешной компиляции сервис становится доступным.

Адрес сервиса
http://[URL приложения/0/rest/UsrGreetingService/Hello
scr_browser.png

Для того чтобы начать отладку, необходимо присоединиться к процессу сервера IIS, в котором запущено приложение. Для этого нужно выполнить команду меню Debug —> Attach to process.

scr_attach_iis.png

В открывшемся окне в списке процессов нужно выбрать рабочий процесс IIS, в котором запущен пул приложения Creatio.

На заметку. Название рабочего процесса может различаться в зависимости от конфигурации используемого сервера IIS. Так, для полнофункционального IIS процесс называется w3wp.exe, для IIS Express — iisexpress.exe.

По умолчанию рабочий процесс IIS запущен под учетной записью, имя которой совпадает с именем пула приложения. Для того чтобы отобразить процессы всех пользователей, а не только текущего, необходимо установить признак Show processes from all users.

После присоединения к рабочему процессу IIS необходимо выполнить повторную компиляцию. Далее можно приступить к процессу отладки средствами отладчика Visual Studio. Например, можно установить точки останова, просматривать значения переменных, стек вызовов и т.д. С возможностями отладчика Visual Studio можно ознакомиться здесь.

Например, после установки точки останова на строке возврата из метода TestHello(), повторной компиляции приложения и выполнения запроса к сервису отладчик остановит выполнение программы на точке останова.

scr_debugging.png

Важно. Возможность отладки зависит от правильности настройки Visual Studio.