Добро пожаловать в Skyve!
Этот репозиторий представляет собой реализацию спецификации фреймворка Skyve на Java.
Skyve — это открытая низкокодовая платформа, которая предоставляет доступ ко всем ключевым возможностям, необходимым для создания сложных, надёжных и масштабируемых облачных решений.
Skyve не зависит от платформы/операционной системы, работает со всеми распространёнными типами баз данных и доступен через все распространённые браузеры и устройства.
Включая и интегрируя ряд других технологий с открытым исходным кодом для обработки постоянства, богатого пользовательского интерфейса, безопасности, навигации, отчётности, заданий, контента, пространственной интеграции и мобильных устройств, Skyve предоставляет платформу со всеми необходимыми технологиями для поддержки стандарта Skyve для корпоративных приложений.
Skyve также предоставляет сложную проверку и высокоуровневый API, чтобы вы могли создавать мощные корпоративные SaaS-решения.
В любое время можно разветвляться в «традиционную» разработку без ограничений, но со всеми преимуществами API и интегрированной платформы.
Skyve поддерживает пространственные концепции изначально с MySQL (и MariaDB), SQL Server, Postgres и H2 — Oracle находится в стадии бета-тестирования. В противном случае должно работать практически всё, что поддерживается Hibernate (но мы не тестировали их все!).
Для получения более подробной информации о платформе и её возможностях посетите домашнюю страницу платформы — www.skyve.org.
Skyve создан компанией Biz Hub Australia и мы предлагаем ряд соглашений о поддержке, если это необходимо. Или используйте его бесплатно, без обязательств.
Мы приветствуем новые вклады в проект, даже небольшие. Пожалуйста, обратитесь к нашим рекомендациям по вкладу для получения информации о внесении вклада в Skyve.
Если вы обнаружили ошибку или хотите запросить новую функцию, пожалуйста, создайте проблему GitHub.
Если вам нужна помощь в начале работы с Skyve или его расширении, пожалуйста, свяжитесь с нами в Slack. Кто-то из сообщества или разработчик Skyve будет рад помочь. Или воспользуйтесь тегом skyve на StackOverflow и попросите там помощи.
Веб-сайт платформы Skyve (https://skyve.org/) содержит обучающие видеоролики, ссылки на подробное руководство по разработке, учебник Skyve, а также поваренную книгу.
Этот учебник показывает, как создать пример приложения с помощью Foundry и без кода, настроить среду разработки и расширить её с помощью низкокодового подхода, и, наконец, добавить более продвинутую логику с использованием кода.
Руководство пользователя доступно по адресу https://skyvers.github.io/skyve-user-guide/. Руководство пользователя предназначено для конечных пользователей приложений Skyve и описывает, как перемещаться по пользовательскому интерфейсу и использовать встроенные функции, поставляемые с Skyve.
Руководство по разработке доступно по адресу github.com/skyvers/skyve-dev-guide. Оно содержит подробную документацию, охватывающую архитектуру и руководящие принципы фреймворка, а также объясняет все функции и способы их использования. Skyve Cookbook
The Skyve Cookbook доступен по адресу github.com/skyvers/skyve-cookbook. Здесь содержатся примеры кода для продвинутого использования, такие как конфигурация REST API и советы по устранению неполадок.
Мы рекомендуем начать работу со Skyve с помощью Skyve Foundry — https://foundry.skyve.org/foundry.
Skyve Foundry предоставляет инструмент создания проектов «наведи и щёлкни»: вы можете быстро объявить модель данных для своего проекта, развернуть и протестировать проект с помощью сервера пробного использования Skyve Foundry.
После создания проекта в Skyve Foundry вы можете использовать функцию совместной работы, чтобы подключить Skyve Foundry к защищённому репозиторию git-кода, а затем продолжить вносить изменения, используя Skyve Foundry или предпочитаемую интегрированную среду разработки (IDE) (Eclipse, IntelliJ и т. д.) в вашей локальной инфраструктуре разработки.
Использование Skyve Foundry для создания вашего проекта не помешает вам развернуть созданное приложение на собственной инфраструктуре, если вы предпочитаете это, но позволит быстро развернуть и протестировать ваше приложение. Вы также можете экспортировать свой проект в любое время.
.json
и файлов источника данных -ds.xml
и поместите их в папку развёртывания Wildfly. В файле настроек .json
вам нужно будет (как минимум) указать местоположение, где Skyve будет хранить «контент», и указать строку идентификатора среды, чтобы иметь возможность получить его с учётными данными начальной загрузки (также указанными в файле .json
).localhost:8080/<имя_проекта>
с вашими учётными данными для начальной загрузки и начните использовать приложение без кода.Эти инструкции предполагают использование Eclipse с установленным плагином JBoss Server Tools и Wildfly в качестве сервера приложений.
H2 — это база данных на основе файлов, которая идеально подходит для быстрого прототипирования или начала работы, если вы не уверены. Другие диалекты потребуют установки соответствующего ядра базы данных или доступа к сетевому серверу БД этого типа.
Если у вас есть файл Skyve Script, предоставьте его здесь. Skyve Script — это простой стандарт разметки для объявления моделей предметной области, достаточный для создания приложений Skyve без кода. Нажмите кнопку «Создать проект».
wildfly/standalone/deployments/
projectName-ds.xml
) и файл настроек экземпляра json (projectName.json
).content: { directory:
в вашем JSON как допустимый каталог в вашей файловой системе. Здесь будут храниться и индексироваться Elastic Search любые загруженные файлы. Создайте новый каталог в своей файловой системе по этому пути, Skyve не создаст его за вас.addins
либо в каталоге содержимого (где Skyve будет искать по умолчанию), либо настроить addins: { directory:
внутри вашего projectName.json
, указав местоположение каталога addins.skyve-content.zip
из целевого каталога вашего проекта в каталог addins (если его нет в целевом каталоге, это можно запустить, выполнив компиляцию maven или установку maven).projectName-ds.xml
в папке развёртывания.
sqljdbc42.jar
и sqljdbc_auth.dll
в \wildfly\modules\system\layers\base\com\microsoft\sqlserver\main\
.localhost:8080/<projectName>
.boostrap
(убедитесь, что вы указали строку идентификатора среды — например, identifier: "dev"
).Обратите внимание, что пользователь bootstrap действует только в том случае, если в вашей базе данных нет пользователя с таким же именем. Если у вас уже есть пользователь bootstrap в базе данных, вы можете:
В любом из последних двух случаев вам потребуется выйти и снова войти, чтобы изменения вступили в силу.
Создание приложений с помощью Skyve включает в себя некоторые новые концепции и имеет кривую обучения. Прежде чем мы начнём создавать приложение, полезно иметь хотя бы базовое понимание того, из чего состоит приложение.
Приложение Skyve Java без кода можно создать в простейшей форме, указав только метаданные (в виде файлов XML). Все приложения Skyve включают модуль admin, а дополнительные модули определяются для конкретной функциональности приложения. Структура метаданных высокого уровня следует следующему шаблону:
src/main/java/
Document.xml
DocumentBizlet.java
Action.java
edit.xml
Модули определяют группировку функциональности приложения и соответствуют пунктам верхнего уровня меню. Каждый каталог модуля содержит файл module.xml
, а также подкаталоги для каждого документа.
Skyve использует термин «документ», чтобы указать на бизнес-ориентированный характер объектов приложения. Их можно рассматривать как сущности или на упрощённом уровне они соответствуют таблице базы данных (не всегда так). Документы могут отображаться как пункты меню дочернего уровня родительского модуля и используются для определения новых представлений в вашем приложении.
Skyve автоматически генерирует экран пользовательского интерфейса (представление) для каждого документа. Файлы представления определены для переопределения сгенерированного представления, если требуется настройка. Файлы представлений находятся в каталоге views родительского документа.
Более подробные объяснения этих концепций см. в Руководстве по разработке Skyve.
В этом примере мы собираемся создать новый модуль и документ. Предполагается, что были выполнены шаги Создание нового проекта Skyve, и у вас есть новый проект Skyve в вашей IDE, который строится и развёртывается.
Добавление нового модуля
Наш проект поставляется с модулем admin, который включает в себя множество основных системных функций, но мы добавим новый модуль для хранения нашего пользовательского домена.
Выполните следующую команду Maven для своего проекта:
mvn skyve:addModule
При запросе имени модуля введите todo.
Возможно, вам потребуется обновить рабочее пространство IDE, но вы должны увидеть новый пакет todo и файл todo.xml. Эта команда также добавила модуль todo в наш файл customer.xml. Просмотрите файл todo.xml и убедитесь, что он пока довольно пуст, поэтому давайте добавим базовое определение, чтобы включить документ, который мы собираемся добавить.
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="http://www.skyve.org/xml/module" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" title="todo" name="todo" xsi:schemaLocation="http://www.skyve.org/xml/module ../../schemas/module.xsd" prototype="true">
<homeRef>list</homeRef>
<homeDocument>ToDo</homeDocument>
<documents>
<document ref="ToDo"/>
</documents>
<roles>
<role name="Maintainer">
<description>Create, edit and delete permission within the ToDo module.</description>
<privileges>
<document name="ToDo" permission="CRUDC"/>
</privileges>
</role>
</roles>
<menu>
<list document="ToDo" name="All ToDos">
<role name="Maintainer"/>
</list>
</menu>
</module>
Это базовое определение модуля указывает домашний документ (целевую страницу), какие документы находятся в модуле, роли и их разрешения. Разрешения для документа и меню
Обратите внимание: в этом примере модуле задано prototype="true"
. Это означает, что Skyve сделает некоторые базовые предположения, чтобы упростить работу пользователя. Для получения дополнительной информации см. skyvers.github.io/skyve-dev-guide/modules/#prototype-mode.
Добавление нового документа
Выполните следующую команду Maven в вашем проекте:
mvn skyve:addDocument
При появлении запроса на ввод имени модуля введите todo
, а при запросе имени документа — ToDo
.
Если потребуется, обновите рабочее пространство ещё раз. После этого вы должны увидеть каталог ToDo в пакете todo и файл ToDo.xml
. В соответствии с конвенцией Skyve имена модулей записываются со строчной буквы или через дефисы, а имена документов — с заглавной.
Осмотрев наш новый ToDo.xml
, вы увидите, что он почти пуст. Давайте добавим в него атрибуты для хранения данных.
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://www.skyve.org/xml/document" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" name="ToDo" xsi:schemaLocation="http://www.skyve.org/xml/document ../../../schemas/document.xsd">
<persistent name="TODO_ToDo"/>
<singularAlias>ToDo</singularAlias>
<pluralAlias>ToDos</pluralAlias>
<bizKey expression="{description}"/>
<attributes>
<text name="description" required="true">
<displayName>Description</displayName>
<length>200</length>
</text>
<boolean name="complete">
<displayName>Complete</displayName>
<defaultValue>false</defaultValue>
</boolean>
</attributes>
</document>
Это базовое определение документа указывает постоянное имя (таблицу базы данных), бизнес-ключ, единичный и множественный псевдонимы (для отображения в списке и в режиме редактирования одного элемента) и атрибуты, составляющие этот документ.
Генерация домена
Выполните следующую команду Maven в своём проекте:
mvn skyve:generateDomain
Она проверит все метаданные вашего проекта и выдаст предупреждение, если есть какие-либо ошибки. Если всё в порядке, она сгенерирует код приложения на основе метаданных, и вы увидите сообщение об успешной сборке.
Теперь вы можете запустить свой сервер и развернуть приложение для тестирования.
После развёртывания вам нужно будет предоставить своему пользователю роль «Maintainer». Вы можете сделать это, добавив роль пользователю или создав группу безопасности с этой ролью и назначив членство в группе этому пользователю. Затем выйдите из системы. Новые разрешения роли вступят в силу только после того, как вы снова войдёте в систему.
Когда вы войдёте обратно, вы увидите меню модуля todo с дочерним пунктом меню «Все ToDos». Нажав на «Все ToDos», а затем на кнопку +
, вы сможете создать новый ToDo. Это сгенерированное представление Skyve, которое содержит два атрибута документа: description и complete.
Новые проекты, созданные на веб-сайте, поставляются с предварительно настроенными конфигурациями запуска Maven для Eclipse. Это стандартные цели maven с использованием плагина Skyve maven, которые можно запускать из командной строки или другой IDE. Здесь описаны 6 основных целей:
mvn skyve:generateDomain
Генерация домена проверяет и компилирует метаданные (XML-файлы) в вашем проекте и проверяет, находится ли домен приложения в допустимом состоянии. Ошибки разработчика выводятся на консоль, и, если генерация прошла успешно, домен будет скомпилирован для создания файлов Java-домена и модульных тестов.
mvn skyve:generateEditView
Для генерации представления редактирования требуются дополнительные параметры: пара ключ-значение module
и document
. Если для документа не указан edit.xml, Skyve автоматически создаст шаблонное представление, используя атрибуты, указанные в документе. При настройке представления полезно начать с шаблонного представления и расширить его. Эта команда запишет файл generatedEdit.xml
в пакет, указанный параметрами модуля и документа.
mvn skyve:generateDefaultQueries
``` Подобно тому, как есть структурированное представление для редактирования новых документов, когда документы отображаются в списке из меню или в lookupDescription, будет использоваться /default запрос/, который определяет, какие столбцы отображаются. Эта команда Maven может записать все запросы по умолчанию в файл в корне проекта, чтобы любые запросы можно было настроить и включить в ваш module.xml.
### Скрипт Skyve
mvn skyve:script
Это будет искать файл с именем `skyve.md` внутри каталога скрипта в корне вашего проекта. Любые модули и документы, найденные внутри этого файла, будут созданы и добавлены в ваш проект. Для получения дополнительной обратной связи от пользователя это также можно выполнить через пользовательский интерфейс от администратора -> Создатель документа.
### Обновление ресурсов
mvn clean compile war:exploded
В зависимости от того, как вы настроите свой Wildfly, если вы не публикуете изменения во время разработки в `wildfly/standalone/deployments`, вы можете использовать эту команду Maven, чтобы обновить свой локальный каталог `/deployments/` скомпилированным проектом. Затем сканер развёртывания вашего Wildfly можно настроить на отслеживание этого местоположения.
### Локальное развёртывание
mvn compile war:exploded skyve:touch
Это обновляет каталог проекта `/deployments` и создаёт файл `projectName.dodeploy`, указывающий Wildfly перезапустить модуль. Это используется, когда есть какие-либо изменения в Java или модуле, которые не могут быть перезагружены «на горячую».
### Добавление модуля
mvn skyve:newModule
Вам будет предложено ввести имя нового модуля, затем будет создан новый каталог модуля и module.xml с указанным именем. Также будет обновлён ваш customer.xml новым модулем. Обратите внимание: новый модуль не пройдёт генерацию домена, некоторые обязательные поля будут отсутствовать (например, представление по умолчанию).
### Добавление документа
mvn skyve:newDocument
Будет предложено ввести название модуля и нового документа, затем будет создан каталог нового документа и document.xml в правильном расположении в структуре вашего проекта. Новый документ также будет зарегистрирован в модуле.
### Добавление структурированного документа
mvn skyve:newScaffoldedDocument
Выполняет всё, что делает добавление документа, а также создаёт представление для редактирования, классы Bizlet, Factory, Extension и Service в правильном месте в структуре вашего проекта.
### Добавление действия
mvn skyve:newAction
Будет предложено ввести названия модуля, документа и действия, после чего будет создан пустой готовый к добавлению бизнес-логики экшен. Обратите внимание: действие необходимо вручную добавить в представления для редактирования и привилегии в вашем модуле по мере необходимости.
## Обновление версии Skyve
Чтобы обновить проект определённой версией Skyve, вам нужно будет извлечь/проверить проект Skyve (из https://github.com/skyvers/skyve.git) перед следующими шагами, убедившись, что вы извлекаете конкретную версию Skyve, которую хотите получить. Если вы сомневаетесь, извлеките Skyve и проверьте, какая версия получена. Выпуски помечены, поэтому обычно безопаснее всего проверить последний помеченный коммит.
⚠️ **Предупреждение:** прежде чем продолжить, убедитесь, что ваш проект находится под контролем версий, и все файлы зафиксированы локально. Обновление проекта может изменить множество файлов и обновит ваш административный модуль и веб-ресурсы. Любые локальные изменения, внесённые вами, будут перезаписаны и должны быть объединены обратно вручную.
### Настройка цели сборки
Эти инструкции применимы к проектам, созданным с использованием процесса [Создание нового проекта Skyve](#creating-a-new-skyve-project), описанного выше. Если вы создали свой проект вручную, эти шаги могут отличаться.
- Если вы используете Eclipse, создайте новую конфигурацию запуска, установив базовый каталог в рабочую область вашего проекта и установив цель в `skyve:assemble`. После настройки в вашем pom это также можно запустить из командной строки с помощью `mvn skyve:assemble`.
- В файле `pom.xml` вашего проекта обновите свойство `skyve.version`, чтобы оно соответствовало версии Skyve, которую вы извлекли/проверили.
- Найдите плагин Skyve (поиск по artifactId `skyve-maven-plugin`) и настройте параметр `<skyveDir></skyveDir>` с относительным или абсолютным путём к локальному расположению проекта Skyve на диске (откуда вы извлекли).
- Установите значение `<customer></customer>`, соответствующее вашему проекту. Заказчик в вашем проекте:
* Сохраните файл `pom.xml`.
* Запустите только что созданную цель сборки, решая все обнаруженные проблемы.
* После успешного выполнения запустите цель генерации домена вашего проекта, решая любые обнаруженные проблемы.
* Затем запустите модульные тесты вашего проекта и убедитесь, что обновление не повлияло на ожидаемое поведение.
* Выполните сгенерированные тесты проекта.
* Разверните проект локально и проверьте работоспособность всех функций.
* Убедившись в корректной работе, зафиксируйте изменения в проекте.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )