Работа с серверным кодом в Visual Studio
Glossary Item Box
Общие положения
В приложении bpm'online существует возможность полноценной отладки созданного пользователем программного кода с помощью интегрированных функций отладки среды разработки Visual Studio. Отладчик Visual Studio позволяет приостанавливать выполнение методов, проверять значения переменных, изменять их и получать полное представление о том, что делает код.
Общая последовательность действий при разработке решений с использованием Visual Studio следующая:
- Выполнить предварительные настройки приложения bpm'online и Visual Studio.
- Создать, установить или обновить пользовательский пакет из репозитория SVN.
- Создать схему [Исходный код], в которой будет выполняться разработка.
- Выполнить разработку исходного кода в Visual Studio, создав, например, класс конфигурационного Web-сервиса.
- Сохранить, скомпилировать и выполнить отладку созданного исходного кода.
ВАЖНО После успешной компиляции итоговая сборка Terrasoft.Configuration.dll будет помещена в каталог Bin, при этом IIS автоматически использует ее в приложении bpm'online. |
Алгоритм действий при разработке решений с использованием Visual Studio
1. Выполнить предварительные настройки
Предварительные настройки bpm'online и Visual Studio для разработки в файловой системе описаны в статьях "Разработка в файловой системе" и "Настройка Visual Studio для разработки в файловой системе".
2. Создать, получить или обновить пакет из репозитория SVN
Создание пользовательского пакета с использованием и без использования SVN описано в статьях "Создание пользовательского пакета" и "Создание пакета в режиме разработки в файловой системе". Установка и обновление пакетов — в "Установка пакета из хранилища" и "Обновление пакета из хранилища".
К СВЕДЕНИЮ При разработке в файловой системе вместо встроенных возможностей bpm'online удобнее использовать клиентские приложения для работы с хранилищами систем контроля версий, например, 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 (см. "Разработка в файловой системе"). Затем в проводнике решения 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 (см. "Настройка Visual Studio для разработки в файловой системе"). В случае успешной компиляции сервис становится доступным. Для рассматриваемого примера сервис доступен по адресу (рис. 4):
http://[URL приложения]/0/rest/UsrGreetingService/Hello
Рис. 4. — Проверка работоспособности сервиса
Для того чтобы начать отладку, необходимо присоединиться к процессу сервера IIS, в котором запущено приложение. Для этого нужно выполнить команду меню Debug > Attach to process (рис. 5).
Рис. 5. — Команда присоединения к процессу
В открывшемся окне в списке процессов нужно выбрать рабочий процесс IIS, в котором запущен пул приложения bpm'online (рис. 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. |