Развертывание проекта
В этой статье рассмотрим ручное разворачивание учебного проекта, с которым познакомились в статье Учебный проект.
Для начала скачайте любую платформу для администрирования и разработки для PostgreSQL. В этой статье и учебном проекте будем использовать pgAdmin 3. Последнюю версию платформы можете скачать с официального сайта. Кроме того, в пакет установки PostgreSQL уже входит pgAdmin 4. Скачать последнюю версию PostgreSQL можно с официального сайта. В статье Установка PostgreSQL приведена полная инструкция по установке сервера базы данных.
План развертывания проекта
Этап 1. Восстановление БД
Создать новую БД (например, template_project) и восстановить резервную копию из файла Template\Development\database\create\create.backup.
В таблице public.workflow_type в столбце path проверить, совпадает ли указанный путь до xml-файла серверной части с путем, куда были развернуты исходники проекта. При несовпадении указать абсолютный путь до файла Template\Projects\1. Template\Workflow\Template.xml.
Этап 2. Восстановление серверной части
Создать папку в которую будет восстанавливаться серверная часть. Например, D:\WorkflowEngine\Template.
Скопировать стандартные конфигурационные файлы hosting.json и appsettings.json из папки config архива в новую папку D:\WorkflowEngine\Template
В файл D:\WorkflowEngine\Template\appsettings.json внести правки:
В поле Database проверить, совпадает ли указанное имя базы данных с именем созданной ранее базой данных. При несовпадении указать верное имя базы данных.
В поле ServerPort проверить, совпадает ли указанный порт сервера баз данных с портом в приложении СУБД. При несовпадении указать верный порт.
В поле Password указать пароль, который задали при установке PostgreSQL.
В файле D:\WorkflowEngine\Template\hosting.json указать порт, который еще не используется на локальном компьютере.
Скопировать штатные бинарники из папки bin архива в папку D:\WorkflowEngine\Template.
Скопировать файл _start.bat из архива в папку D:\WorkflowEngine\Template.
Для удобства запуска серверной части создать ярлык на файл D:\WorkflowEngine\Template\_start.bat, переименовав его (например, в Template SRV).
Этап 3. Восстановление клиентской части
Создать папку в которую будет восстанавливаться клиентская часть. Например, D:\WorkflowForms\Template.
Скопировать стандартный конфигурационный файл WorkflowForms.dll.config из папки config архива в новую папку D:\WorkflowForms\Template.
В файл D:\WorkflowForms\Template\WorkflowForms.dll.config внести правки:
В поле ServerUrl указать IP-адрес и порт серверной части, как они прописаны в файле hosting.json (например, http://localhost:49707).
В поле StartFormFileName проверить, совпадает ли указанный путь до стартовой формы проекта с путем, куда были развернуты исходники проекта. При несовпадении указать абсолютный путь до файла Template\Projects\1. Template\Forms\TemplateStart.xml.
В полях UseSourceCache и CheckBinaryFiles указать значение False.
В поле AnonymousLogin указать значение True, тем самым включив учетку входа - WS_GUEST.
В полях AnonymousUserName и AnonymousPassword прописать WS_GUEST и 123 соответственно.
Скопировать штатные бинарники из папки bin архива в папку D:\WorkflowForms\Template.
Для удобства запуска клиентской части создать ярлык на файл D:\WorkflowForms\Template\WorkflowForms.exe, переименовав его (например, в "Template CLI").
Далее подробнее рассмотрим каждый пункт плана.
При возникновении ошибки в процессе разворачивания проекта вернитесь к этому плану и проверьте каждый его пункт. Часто ошибки возникают, если при установке PostgreSQL указали свой пароль и забыли исправить пароль в файле конфигурации серверной части - appsettings.json. Вторая возможная причина ошибки в том, что при разворачивании серверной части, архив распаковали в папку, которая отличается от пути указанного в базе данных, или при разворачивании клиентской части забыли изменить путь до стартовой формы.
База данных
Создание базы данных
Перейдем в программу pgAdmin III для управления СУБД PostgreSQL. В окне Браузер объектов (Object browser) разверните дерево Серверы (Servers) и правой кнопкой мыши кликните по узлу Базы данных (Databases) и в появившемся меню выберем пункт Новая база данных... (New Database...).

После этого отобразится окно для создания базы данных. Введем имя нашей базы данных, например, template_project. Этого достаточно, чтобы создать базу данных с настройками по умолчанию.

Жмем OK.
Восстановление бэкапа базы данных
В окне Браузер объектов (Object browser) раскройте узел Базы данных (Databases) и выберите ранее созданную базу данных, нажмите по ней правой кнопкой мыши и в появившемся контекстном меню выберете пункт Восстановить… (Restore...).

Откроется окно восстановления базы, где вы можете задать параметры восстановления, в частности выбрать файл резервной копии.

На вкладке Файл (File Options) укажите путь до файла create.backup в папке проекта. Оставьте все параметры восстановления как есть и нажмите Восстановить (Restore). Запустится процесс восстановления базы данных. После того, как процесс по восстановлению будет удачно завершен, нажмите Завершено (Done).

Обновите состояние базы данных, выбрав в окне Браузер объектов (Object browser) узел базы данных и нажав клавишу F5.

Последние настройки базы данных
После восстановления бэкапа необходимо в таблице public.workflow_type в поле path поправить путь до серверного xml-файла, связанного с каждым процессом. В учебном проекте только один процесс Template. И для него нужно указать абсолютный путь до файла Template\Projects\1. Template\Workflow\Template.xml.
Серверная часть
Архив
Скачайте бинарники нужной разрядности:
Независимо от разрядности структура папок и файлов будет одинаковая. Основные элементы архивов:

Как говорилось ранее, серверная часть построена на базе .Net Core 3.1, что позволило сделать ее портативной. Поэтому в папке bin лежат все необходимые dll-файлы, чтобы на клиентском сервере не приходилось отдельно устанавливать .NET Core SDK.
Так же в папке bin лежит папка WorkflowEngineUpdateService, которая содержит dll-файлы и файлы конфигурации для службы обновления серверной части.
В папке config лежат конфигурационные файлы:
appsettings.json - настройки доступа к базе данных, временной зоной сервера и другие;
hosting.json - IP-адрес и порт сервера.
Файл _start.bat запускает наше web-приложение.
Разворачивание и настройка
Первым делом создадим папку в которую будем восстанавливать серверную часть. Например, D:\WorkflowEngine\Template.
Скопируем стандартные конфигурационные файлы hosting.json и appsettings.json из папки config ранее скачанного архива в D:\WorkflowEngine\Template.
В файле D:\WorkflowEngine\Template\appsettings.json необходимо указать настройки доступа к нашей базе данных. Они описаны в объекте Database. В поле Database заменим workflow_technology на имя нашей базы данных, template_project. B поле ServerPort укажем порт, на котором развернут сервер PostgreSQL. Например, 5434. А в поле Password укажем пароль, который задали для сервера базы данных при установке - так сервер WT-приложения будет иметь доступ к базе данных и сможет выполнять запросы.

Для настроек HelpDesk и Update в полях Enabled укажем значение false, чтобы сервер учебного проекта не пытался проверять обновления на общем сервере обновлений:
"WorkflowServer": {
"ServerUrl": "http://lic.wfsys.ru:7070",
"WorkflowEngineUpdateService": {
"Name": "WorkflowEngineUpdateService",
"Port": 9090
},
"HelpDesk": {
"Enabled": false
},
"Update": {
"Enabled": false
}
}
В файле D:\WorkflowEngine\Template\hosting.json для server.urls укажем IP-адрес и порт сервера. Т.к. мы разворачиваем проект на своем компьютере, то в качестве IP-адреса оставим localhost. А вот порт нужно указать такой, который еще не используется на локальном компьютере. Например, http://localhost:49707
Скопируем штатные бинарники из папки bin ранее скачанного архива в D:\WorkflowEngine\Template. Необходимо копировать содержимое папки bin, а не ее саму.
Так же в папку D:\WorkflowEngine\Template скопируем файл _start.bat - он нужен для запуска сервера, чтобы не приходилось каждый раз писать команду в командной строке. Для удобства запуска серверной части создадим ярлык на этот файл, переименовав его (например, в "Template SRV").
Запустим наш сервер, кликнув по файлу _start.bat или по ярлыку на этот файл.

Отлично! Сервер успешно работает.
При первом запуске сервера, может появиться сообщение об отсутствии файла лицензии. Это нормально. Позже сервер приложения зарегистрируется на сервере лицензирования и получит необходимый файл. И если все прошло отлично, то при повторном запуске сервера, такого сообщения уже не будет.
Клиентская часть
Архив
Скачайте бинарники нужной разрядности:
Независимо от разрядности структура папок и файлов будет одинаковая. Основные элементы архивов:

Как говорилось ранее, клиентская часть построена на базе .Net Core 3.1, что позволило сделать ее портативной. Поэтому в папке bin лежат все необходимые файлы, чтобы на клиентских машинах не приходилось отдельно устанавливать .NET Core SDK.
Так же в папке bin есть две подпапки Updater и UpdateService. В папке Updater хранится все необходимое для подпрограммы, которая будет обновлять xml-файлы клиентской части. Папка UpdateService содержит dll-файлы и файлы конфигурации для службы обновления исполняемых файлов клиентской части.
В папке config лежит файл конфигурации клиентской части - WorkflowForms.dll.config.
Разворачивание и настройка
Создадим папку в которую будем восстанавливать клиентскую часть. Например, D:\WorkflowForms\Template.
Скопируем стандартный конфигурационный файл WorkflowForms.dll.config из папки config ранее скачанного архива в D:\WorkflowForms\Template.
В файл конфигурации внесем следующие правки:
для StartFormFileName укажем абсолютный путь до стартовой формы в папке проекта, которую скачали в начале этой статьи. Например, D:\WT\Projects\Template\Projects\1. Template\Forms\TemplateStart.xml;
т.к. клиентская и серверная части у нас стоят на одном компьютере, то настройки UseSourceCache и CheckBinaryFiles можно выключить, указав им значение False;
для AppDataFolder оставим значение по умолчанию, оно все равно не будет использоваться;
для AnonymousUserName и AnonymousPassword прописать WS_GUEST и 123 соответственно;
для ServerUrl укажем IP-адрес и порт сервера, как они прописаны в файле hosting.json. Например, http://localhost:49707.
Скопируем штатные бинарники из папки bin ранее скачанного архива в D:\WorkflowForms\Template.
На файл D:\WorkflowForms\Template\WorkflowForms.exe создайте ярлык и для удобства переименуйте его (например, в Template CLI).
Запустите клиентское приложение и убедитесь, что стартовая форма успешно загружается.
Last updated