Сервер разработки приложений (DevServer)
Сервер разработки (DevServer) — приложение, основным назначением которого является предоставление инструментария для функционала для системы ELMA4.
Интерфейс командной строки (ELMA CLI) сервера разработки (DevServer) — это консольное приложение, которое позволяет выполнять различные служебные команды, создавать и извлекать объекты, публиковать модули и запускать сервер разработки приложений.
Существует два режима работы:
- запуск сервера разработки;
- интерфейс командной строки.
Эти режимы отличаются инициализацией приложения и жизненным циклом:
- при запуске приложения в режиме сервера разработки происходит полная инициализация сервисов и зависимостей. После успешного запуска приложения откроется web-страница;
- при запуске приложения в режиме интерфейса командной строки происходит первоначальное наполнение контейнера зависимостей, но инициализация сервисов не производится. В зависимости от команды, не всегда требуется полностью инициализированное состояние приложения. Инициализация производится непосредственно кодом команды и является деталью её реализации.
Настройка CLI
Чтобы настроить и запустить интерфейс командной строки, выполните следующие действия:
- Установите на локальной машине ELMA4 (скачайте из личного кабинета).
- Установите на локальной машине инструменты для сборки .NET. Это можно сделать одним из вариантов:
- установить VisualStudio 2022. При установке выбрать компоненты для разработки классических приложений;
- установить Visual Studio Build Tools и выбрать Средства сборки классических приложений .Net.
- Установите DevServer (скачайте из личного кабинета):
- если DevServer устанавливался по умолчанию в папку с ELMA4, все пути зависимостей будут настроены корректно;
- если выбрали другую папку, настройте путь вручную. Для этого измените пути в appsettings.json.
- Для удобства можно прописать в системную переменную PATH путь до DevServer/bin (выполняется только один раз).
Команды
Для вызова команды напишите в командную строку: elma-cli <action> -options, где:
- action — название команды;
- options — параметры команды.
Параметры с символом * обязательны для заполнения.
Help
Это команда для просмотра справки.
Использование: elma-cli -h (-?, -h, --help)
Пример команды: elma-cli --help
Server
Это команда для запуска DevServer для работы с модулем или приложением.
Использование: Server [<Path>] -options, где:
- Path (-p, --path) — путь до каталога с приложением;
- Port (--port) — порт для запуска приложения.
Пример команды: elma-cli server -p "D:\\repos\\elma4-designer-app\\" --port 5001
При выполнении команды, указанной в примере, запустится DevServer по пути D:\\repos\\elma4-designer-app\\ с портом 5001.
Это команда создания объекта конструктора интерфейсов.
Использование: Create Ui <Object> <Name> -options, где:
- Object* (--object) — тип объекта:
- App — создать приложение;
- Module — создать модуль;
- Name* (--name) — имя объекта;
- Path (-p, --path) — каталог для выполнения команды.
Приложение (App) — готовое приложение BPM APP, которое может содержать в себе несколько модулей ELMA4. Оно предназначено для расширения базовых возможностей ELMA4. При публикации приложения публикуются все его модули.
Модуль (Module) — содержит в себе различные компоненты, страницы, портлеты, функции или структуры обмена данных.
Пример команды: elma-cli create -p "D:\\temp\\" --object Module --name "EleWise.ELMA.TestModule"
При выполнении указанной команды создаётся модуль в каталоге "D:\\temp\\" с названием "EleWise.ELMA.TestModule".
Create ClassicModule
Это команда создания классического модуля.
Использование: Create ClassicModule <Object> <Name> -options, где:
- Object* (--object) — тип модуля:
- Example — пример модуля (Web + Server) с компонентами, менеджерами и т. п.;
- Web — шаблон web-модуля;
- Server — шаблон серверного модуля;
- Full — шаблон полного модуля (Web + Server);
- Name* (--name) — имя модуля;
- Path (-p, --path) — каталог для выполнения команды.
Пример команды: elma-cli create classicmodule -p "D:\\temp\\" --object example --name "EleWise.ELMA.TestClassicModule"
При выполнении указанной команды в каталоге "D:\\temp\\" создаётся модуль под названием "EleWise.ELMA.TestClassicModule" с двумя проектами:
- "EleWise.ELMA.TestClassicModule" — отвечает за серверную часть;
- "EleWise.ELMA.TestClassicModule.Web" — отвечает за веб-часть.
Create
Это команда для создания объекта.
Использование: Create <Object> <Name> -options, где:
- Object* (--object) — тип объекта:
- App — создать приложение;
- Module — создать модуль;
- Name* (--name) — имя объекта;
- Path (-p, --path) — каталог для выполнения команды.
Приложение (App) — это готовое приложение BPM APP, которое может содержать в себе несколько модулей ELMA4. Оно предназначено для расширения базовых возможностей ELMA4. При публикации приложения публикуются все его модули.
Модуль (Module) — это единица, которая содержит в себе различные компоненты, страницы, портлеты, функции или структуры обмена данных.
Пример команды: elma-cli create -p "D:\\temp\\" --object Module --name "EleWise.ELMA.TestModule"
При выполнении команды, указанной в примере, создаётся модуль в каталоге "D:\\temp\\" с названием "EleWise.ELMA.TestModule".
Rename
Это команда для переименования объекта.
Использование: Rename <Object> <Name> <NewName> -options, где:
- Name* (-N) — текущее имя объекта;
- NewName* (-Ne) — новое имя объекта;
- Object* (--object) — тип объекта:
- Module — переименовать модуль;
- Path (-p, --path) — каталог для выполнения команды.
Пример команды: elma-cli rename -N "EleWise.ELMA.TestModule" --object Module --path "D:\\Test\\" -Ne "EleWise.ELMA.SomeName"
При этом будет переименован модуль "EleWise.ELMA.TestModule" по пути "D:\\Test\\" в "EleWise.ELMA.SomeName".
Publish
Это команда для публикации модуля.
Использование: Publish <Object> <Name> -options
Базовые обязательные параметры команды:
- публикуемый объект Object, приложение или модуль: App|Module;
- --name <Имя модуля или приложения> — имя публикуемого объекта (приложения или модуля) Name.
Опции options:
- Id (--id) — идентификатор объекта экспорта;
- Description (-d, --desc) — описание объекта экспорта;
- Author (--author) — автор объекта экспорта;
- Version (-v, --ver) — версия объекта экспорта;
- SameVersion (--samever) — использовать указанную версию приложения в качестве версии всех модулей;
- EmbeddedDependencies (--ed) — зависимости для упаковки вместе в одно приложение вместе с публикуемым объектом. Можно указывать несколько идентификаторов;
- ActivationType (--at) —тип активации (Paid, Free). Пример: --at Paid;
- Release (-r, --release) — релизный вариант публикации;
- Compile (--compile) — провести компиляцию модулей. Значение по умолчанию: False. Не используйте эту опцию для последующей установки модуля или приложения в ELMA4;
- AutoDeploy (--autodeploy) — генерировать маркерный файл авторазвертывания. Значение по умолчанию: False;
- Output (-o, --out) — каталог для результата публикации;
- CertificatePath (--certpath) — путь до файла сертификата компонента ELMA Store;
- CertificatePassword (--certpwd) — пароль для сертификата;
- PlatformVersion (--pver) — диапазон совместимых версий платформы. Только для экспорта приложения. Диапазон задаётся в формате nuget, например: [4.0.0.0, 4.1.0.0). Если диапазон не задан, он вычисляется автоматически по используемой версии базового модуля платформы из репозитория пакетов;
- Path (-p, --path) — каталог для выполнения команды. По умолчанию — текущий каталог.
Пример команды: elma-cli publish module --compile --name="EleWise.ELMA.TestModule" -v 4.0.0.2 --id=EleWise.ELMA.TestModule --path "D:\\Test\\" -o "D:\\Test\\" --author "ELMA"
При выполнении команды, указанной в примере, опубликуется модуль "EleWise.ELMA.TestModule" с версией 4.0.0.2 по пути "D:\\Test\\" с автором ELMA в папке "D:\\Test\\".
Migrate
Это команда для запуска миграции кода.
Использование: Migrate <MigrationName> -options, где:
- MigrationName (-M) — имя миграции;
- Path (-p, --path) — путь;
- List (--list) — вывести список миграций.
Пример команды для отображения списка доступных миграций:
elma-cli Migrate –list
Пример команды для миграции Resave по пути "D:\\Test\\":
elma-cli migrate Resave -p "D:\\Test\\"
Доступна миграция Resave, которая позволяет пересохранять файлы метаданных и перегенерировать .designer файлы.
Generate
Это команда для запуска генерации вспомогательного кода.
Использование: Generate -options, где:
- Files (--files) — сгенерировать дополнительные файлы с исходным кодом;
- Force (-f) — перегенерировать существующие файлы. Значение по умолчанию: True;
- DynamicAssemblies (--dyn) — сгенерировать динамические сборки для проектов модулей;
- All (-a, --all) — включает в себя генерацию файлов (Files) и динамических сборок (DynamicAssemblies).
Текущая папка, на которую указывает командная строка, должна содержать решение или проект с модулем.
Пример команды, чтобы принудительно сгенерировать все файлы, даже если они уже существуют:
elma-cli generate -a –f
ClearCache
Это команда для очистки кэша.
Использование: ClearCache -options, где:
- ClearStartupCache (-s, --startup) — очистить кэш запуска;
- ClearBuildCache (-m, --modules) — очистить кэш сборки модулей;
- ClearModuleRepositoryCache (-r, --repository) — очистить кэш репозитория упакованных модулей.
Текущая папка, на которую указывает командная строка, должна содержать решение или проект с модулем.
Пример команды для очистки кэша репозитория упакованных модулей в текущей папке:
elma-cli clearcache –r
Если возникли ошибки, сервер приложений логирует всю необходимую информацию по пути: {Директория установки DevServer}\logs\.
Конфигуратор логгера находится по пути {Директория установки DevServer}\log4net.config.