В этом разделе вы узнаете, как разработать элемент для Primo RPA Studio на Linux. Чтобы создать элемент, вам понадобится интегрированная среда разработки Visual Studio (IDE).
Вам будет легче, если вы уже разрабатывали элементы для Primo RPA Studio на Windows, поскольку процесс отличается незначительно.
Начало работы
🔶Важно. До версии Primo RPA Studio 1.24.8 в проектах использовалась платформа .NET 6.0 и Avalonia 0.10. Если вы уже разрабатывали проекты с этими характеристиками, вам потребуется обновить проекты в Visual Studio, иначе они не будут работать с Primo RPA Studio 1.24.8 и выше.
Создайте проект в Visual Studio:
Запустите Visual Studio и выберите Создание проекта.
Выберите шаблон проекта Библиотека классов (Class Library C#) и нажмите Далее.
В названии проекта обязательно укажите префикс Primo. Пример: Primo.Test.
Далее выберите платформу .NET 8.0 и нажмите Создать.
В меню Visual Studio выберите Проект > Добавить ссылку на проект.
В открывшемся окне нажмите кнопку Обзор..., откройте каталог установки Primo RPA Studio (Linux) версии 1.24.8 или выше. Добавьте из каталога установки в свой проект следующие файлы:
LTools.Common.dll
LTools.Dto.dll
LTools.Enums.dll
LTools.Scripting.dll
LTools.SDK.dll
Primo.UIControls.dll
Перейдите в панель инструментов Обозреватель решений (Solution Explorer), вызовите контекстное меню проекта и выберите Управление пакетами NuGet. Установите следующие сборки:
Avalonia 11.0.10
Avalonia.Desktop 11.0.10
Avalonia.Diagnostics 11.0.10
Avalonia.Xaml.Behaviors 11.0.10.9
MessageBox.Avalonia 3.1.5.1
Установите расширение Avalonia for Visual Studio. Для этого выберите раздел меню Расширения > Управление расширениями и введите в поисковой строке Avalonia для выдачи нужных результатов.
Структура проекта
Для удобства работы с проектом создайте в нем папки*:
Elements — файлы с описанием логики элементов.
Views — визуальные формы элементов.
Images — иконки элементов. Формат png, размер 24x24.
Localization — файлы ресурсов при необходимости.
Пример:
*Вы можете использовать другие папки и названия в своем проекте.
Впоследствии вы можете установить ваш NuGet-пакет в Primo RPA Studio на Linux, чтобы добавить элемент в среду RPA-разработки.
Шаг 1. Создаем визуальную часть элемента Primo
Вызовите контекстное меню папки Views, выберите Добавить > Создать элемент > User Control (Avalonia).
В поле Имя укажите его название. Пример: WriteInConsoleBase.axaml.
Нажмите кнопку Добавить.
Готово — вы создали компонент, который является визуальной составляющей элемента Primo. Данные будущего элемента автоматически будут смаплены на DataContext данного контролла.
Работа с файлом *.axaml.cs
При создании файла *.axaml также автоматически добавится файл *.axaml.cs. Откройте в рабочей области файл *.axaml.cs, измените в нем класс с UserControl на PrimoUserControl из clrnamespace:LTools.Common.UIElements;assembly=LTools.Common.
Например, мы открыли файл WriteInConsoleBase.axaml.cs и изменили в нем класс:
using Avalonia.Interactivity;
using LTools.Common.UIElements;
namespace Primo.TestNuget.Views
{
public partial class WriteInConsoleBase : PrimoUserControl
{
/// <summary>
/// Constructor.
/// </summary>
public WriteInConsoleBase()
{
if (LTools.Common.Helpers.WFHelper.DoRender)
{
InitializeComponent();
}
}
/// <summary>
/// Event "OnClick" on element "Form_btn" handling method.
/// </summary>
/// <param name="sender">Sender value.</param>
/// <param name="eventArguments">Event arguments value.</param>
private void Form_btn_OnClick(object? sender, RoutedEventArgs eventArguments)
{
this.Form_txt.Text = @"""'Ваше имя', 'Ваша фамилия'""";
}
}
}
Работа с файлом *.axaml
Откройте в рабочей области ваш файл *.axaml. Смените в нем класс с UserControl на PrimoUserControl из clrnamespace:LTools.Common.UIElements;assembly=LTools.Common.
Например, мы открыли файл WriteInConsoleBase.axaml и изменили в нем класс:
Теперь спроектируйте визуальный облик элемента Primo. Подумайте, какие вы хотите увидеть на панели элемента поля, кнопки и т.д.
В соответствии с вашим дизайном создайте сетку (Grid). Например, мы хотим создать простой элемент с полем для ввода данных и кнопкой «Установить шаблон»:
🔹Форма в Visual Studio может не отображаться из-за ошибки "No Executable" - данная ошибка связана с Avalonia.
Пример созданной панели элемента Primo:
Шаг 2. Создаем программную часть элемента Primo
Вызовите контекстное меню папки Elements, выберите Добавить > Создать элемент > Класс C#. Укажите имя класса, например, WriteInConsole.cs. Данный класс будет содержать программную часть (code-behind) элемента Primo, описывать его логику.
Для создания элемента:
с синхронным поведением необходимо унаследовать класс LTools.SDK.PrimoComponentSimple<UI>.
с тайм-аутом необходим класс LTools.SDK.PrimoComponentTO<UI>.
Где <UI> – это имя визуальной части элемента Primo.
В панели Обозреватель решений вызовите контекстное меню решения и выберите Собрать решение. В результате сборки будет получена библиотека Primo.<Название вашей библиотеки>.dll
О том, как отладить элемент библиотеки, вы можете узнать здесь.
Шаг 5. Упаковываем библиотеку в NuGet-пакет и публикуем
Аналогично инструкции для SDK под Windows. Подробнее см. здесь.
Опубликованный NuGet-пакет вы можете затем установить в свою Студию на Линукс при помощи Менеджера зависимостей:
Элементы из вашей библиотеки появятся на панели «Элементы». Например, наш элемент отобразился так:
Он обладает следующими свойствами:
Дополнительно
В нашем публичном репозитории на GitHub вы можете найти каталог LTools.SDK-for-Linux, в котором представлен демонстрационный проект Primo.SDK.Avalonia.Sample. Вы можете скачать его и открыть в своей Visual Studio для просмотра.