Развертывание проекта
В этой статье рассмотрим ручное разворачивание учебного проекта, с которым познакомились в статье Учебный проект.
Для начала скачайте любую платформу для администрирования и разработки для 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. Вторая возможная причина ошибки в том, что при разворачивании серверной части, архив распаковали в папку, которая отличается от пути указанного в базе данных, или при разворачивании клиентской части забыли изменить путь до стартовой формы.
База данных
В статье Установка PostgreSQL в разделе pgAdmin 4 приведена инструкция по созданию базы данных и восстановлению бэкапа базы.
Создание базы данных
Перейдем в программу 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-приложения будет иметь доступ к базе данных и сможет выполнять запросы.
В файле D:\WorkflowEngine\Template\hosting.json для server.urls укажем IP-адрес и порт сервера. Т.к. мы разворачиваем проект на своем компьютере, то в качестве IP-адреса оставим localhost. А вот порт нужно указать такой, который еще не используется на локальном компьютере. Например, http://localhost:49707
Скопируем штатные бинарники из папки bin ранее скачанного архива в D:\WorkflowEngine\Template.
Так же в папку D:\WorkflowEngine\Template скопируем файл _start.bat - он нужен для запуска сервера, чтобы не приходилось каждый раз писать команду в командной строке. Для удобства запуска серверной части создадим ярлык на этот файл, переименовав его (например, в "Template SRV").
Запустим наш сервер, кликнув по файлу _start.bat или по ярлыку на этот файл.
Отлично! Сервер успешно работает.
Сообщения об ошибках на стороне сервера или форм будут регистрироваться в журнале событий Windows. Чтобы создать такой журнал, запустите powershell с правами администратора. И в командной строке выполните команду:
New-EventLog -Source 'Workflow Engine', 'Workflow Forms' -LogName 'Workflow Technology'
Просмотреть журнал событий можно выполнив Панель управления -> Администрирование -> Просмотр событий или выполнив поиск в меню "Пуск". В открывшемся окне в левой части развернуть узел Журналы приложений и служб и найти созданный журнал событий "Workflow Technology".
Клиентская часть
Архив
Скачайте бинарники нужной разрядности:
Независимо от разрядности структура папок и файлов будет одинаковая. Основные элементы архивов:
Как говорилось ранее, клиентская часть построена на базе .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 оставим значение по умолчанию, оно все равно не будет использоваться;
AnonymousLogin включить, поставив True, а AnonymousUserName и AnonymousPassword прописать WS_GUEST и 123 соответственно;
для ServerUrl укажем IP-адрес и порт сервера, как они прописаны в файле hosting.json. Например, http://localhost:49707.
Скопируем штатные бинарники из папки bin ранее скачанного архива в D:\WorkflowForms\Template.
На файл D:\WorkflowForms\Template\WorkflowForms.exe создайте ярлык и для удобства переименуйте его (например, в Template CLI).
Запустите клиентское приложение и убедитесь, что стартовая форма успешно загружается.
Чтобы учебный проект использовать как заготовку для реальных проектов необходимо:
В именах xml-файлов форм и серверной части заменить Template на имя бизнес-процесса;
В таблице public.workflow_type изменить содержимое полей name, title, path и forms_path;
Переименовать схему template;
Исправить путь до стартовой формы в файле WorkflowForms.dll.config
Last updated