Первый Backend плагин (preview)
Создание плагина на основе шаблона
Теперь мы разработаем базовый плагин бэкэнда для публикации на платформе preview MEF.DEV. Для разработки этого плагина Вам нужны только знания написании кода на языке C#
Следуйте инструкциям и узнайте, как создать свой первый плагин, который будет делиться с другими разработчиками Вашими данными или бизнес-логикой.
Сделайте копию тестового проекта из репозитория
// ссылка на репозиторий https://github.com/mef-dev/tutorial-backend-plugin
Шаг 1. Создание нового проекта
Откройте проект в Visual Studio, добавьте в источники NuGet пакетов
// ссылка на сервер NuGet пакетов https://nuget.mef.dev/v3/index.json
У Вас появится доступ до пакетов доступных для использования на платформе
Шаг 2. Восстановление пакетов для нового проекта
Структура платформы свободная, главное придерживаться правил определения атрибутов для классов плагинов и сущностей
Для продолжения работы Вам необходимо восстановить пакеты для скачанного проекта, если проект создается з нуля – добавить в проект пакет UCP.Common.Plugin - именно этот пакет выполняет функции контракта для Вашего плагина бизнес-логики или данных
Шаг 3. Внесение изменений в проект
Уникальным идентификатором на платформе является название проекта, а также название сущности (entity) – поэтому переименуем проект і изменим название сущности
Определите уникальный Export и ModuleName, который совпадает с названием проекта
Если есть необходимость в хранении данных для указанной сущности, необходимо наследовать класс BaseEntity для всех классов, которые будут передаваться в плагин или получаться из него
Название экспортируемого класса (contractName) для работы с сущностью через POST для плагина должно совпадать с названием плагина. Название сущностей для получения данных должны наследовать BaseEntity но название contractName может быть произвольной. После внесенных изменений можно собрать архив для загрузки на платформу. Важно чтобы архив содержал зависимости проекта – прощу всего вызвать команду из консоли dotnet publish и все содержимое папки поместить в zip архив.
Регистрация плагина на платформе
Для этого необходимо быть зарегистрированным пользователем платформы с набором прав Developer или Developer Admin - если Ви не зарегистрированы, то во время первого входа на платформу по адресу https://preview.mef.dev Вам буде предоставлена возможность пройти регистрацию
Шаг 4. Загрузка плагина
Перейдите в список Ваших плагинов, нажмите создать новый плагин

Заполните форму указав информацию ниже - сначала определите тип API для плагина

Название и описания, изображения плагина являются произвольными. Заполнив основную информацию, нажмите кнопку "Сохранить", и тогда вы сможете загрузить подготовленный плагин на платформу

Если загрузка была успешной, то в списке доступных версий появится только что загруженный плагин

Выберите необходимую версию для использования на платформе и нажмите кнопку "Сохранить".
С этого момента сущности Вашего плагина становятся доступны для использования – как для внешнего (через API), так и для внутреннего (через переиспользование). Мы можем проверить результат загрузки с помощью любого REST клиента.
Шаг 5. Проверка загруженного плагина через REST client
Пользователя для доступа к API можно создать в разделе Security своего профиля, куда можно попасть нажав на иконку пользователя в верхнем правом углу и выбрав пункт меню Profile. После нажатия на кнопку Set password Вы сможете задать логин пользователя и пароль для авторизации Basic Auth

Версионность изменений плагина
Когда Вам нужно обновить плагин, Вам достаточно внести необходимые изменения, изменить версию пакета и собрать архив, как при первой загрузке, загрузить его на платформу и выбрать новую версию пакета из выпадающего списка:
