1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/kingyl007-got-fw

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

got-fw

Рамки для быстрой разработки бизнес-приложений

Введение в проект

Платформа для быстрой разработки на основе XML-описания. Цель — максимальная степень повторного использования.

Пример проекта:
http://www.got-fw.com
Имя пользователя: demo
Пароль: demo

Основные характеристики:

  1. Способ описания элементов интерфейса на основе XML, который отличается от традиционного использования таблиц базы данных для сохранения настроек интерфейса и обеспечивает удобство контроля версий, слияния и развёртывания.
  2. Следуя идее дизайна maven, используются пять координат (project, function, view, ui, lang) для определения характеристик отображения, которые соответственно указывают на проект, функцию, экран, пользовательский интерфейс и язык. Это позволяет реализовать переключение характеристик интерфейса с помощью одного параметра.
  3. На основе идеи модульного проектирования, передняя часть может адаптироваться к различным технологиям, от традиционных jQuery/Easyui до богатых клиентских Flex до современных React и Vue. Теоретически, все они могут быть поддержаны одновременно и могут переключаться по мере необходимости. Бэкенд полностью учитывает модульный подход к расширению функций, а связанные с бизнесом функции строятся на основе общей реализации, используя файлы конфигурации для расширения функциональности.
  4. Основываясь на идее максимального повторного использования, все предыдущие результаты разработки могут служить отправной точкой для последующей разработки, без необходимости копировать код. По мере постепенного улучшения фреймворка, последующая разработка становится всё проще.
  5. Основан на шаблонном подходе к разработке функций. Для определённого типа функций разрабатывается только один раз. В настоящее время реализованы следующие функции:
	Общий интерфейс
		Включая логин, главную страницу, портал, список, новые/редактируемые страницы, страницы выбора списка, асинхронные древовидные страницы, древовидные списки страниц.
	Общие операции
		Включая поиск списка, создание, редактирование, массовое удаление, импорт, экспорт, управление столбцами, создание дерева, удаление дерева.
	Функции пользователя
		Включают управление пользователями, ролями, разрешениями, журналами.
  1. Основано на интеграции существующих систем. При проектировании фреймворка учитывалась интеграция с существующими системами. Фреймворк не требует изменения существующей структуры базы данных и бизнес-процессов, требуется только изменить соответствующие сопоставления таблиц в файле конфигурации.
  2. Контроль разрешений на уровне кнопок/столбцов данных, контроль разрешений на данные на уровне отделов/клиентов/пользователей, и зарезервированы расширяемые функции более детального контроля разрешений на данные.

Архитектура программного обеспечения

При проектировании учитывалась возможность адаптации к различным средам разработки.

  • Бэкэнд реализован на основе JFinal.
  • Фронтенд по умолчанию реализован с использованием Easyui.
  • Vue+ElementUI уже адаптирован к техническим требованиям, может нормально отображать главную страницу, добавлять, удалять, изменять и проверять, осталось завершить часть функций для соответствия стандартам.
  • React + ANTD уже завершил разработку одного проекта, но часть кода ещё не извлечена в общий шаблон.

Запуск проекта

  1. Можно создать новый проект с помощью ant-скрипта. В настоящее время создан пример проекта (demo), все проекты хранятся в [projectRoot]/src/main/webapp/WEB-INF/defineroot/projects, например, каталог проекта demo (demo) находится в [DemoRoot]: [DemoRoot]/default.properties, где необходимо указать параметры подключения к базе данных. В настоящее время проект поддерживает mysql и oracle, при использовании mysql необходимо указать catalog, при использовании oracle необходимо указать schema:
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://192.168.10.71/got_demo?useUnicode=true&characterEncoding=utf-8&generateSimpleParameterMetadata=true&zeroDateTimeBehavior=convertToNull
jdbc.user=root
jdbc.password=258369
catalog=got_demo
schema=
  1. Найдите каталог [DemoRoot]/db/, выполните сценарии инициализации базы данных в соответствующем порядке, чтобы создать базовые таблицы фреймворка. Все базовые таблицы фреймворка начинаются с GOT_.
  2. Поскольку JFinal может использовать встроенный сервер Jetty для запуска в среде разработки, найдите DemoConfig в проекте и запустите его как Java Application, порт по умолчанию — 8080.
  3. После доступа к http://localhost:8080 в браузере можно увидеть страницу входа. Введите имя пользователя/пароль admin/nimda для входа и перейдите на главную страницу.

Разработка новых модулей

  1. Добавьте файл function demo_demo.xml в каталог [DemoRoot]/skeleton/function, вы можете создать подкаталог для классификации (классификация предназначена только для удобства управления и не имеет значения группировки). Однако убедитесь, что имя файла уникально во всех каталогах function.
<?xml version="1.0" encoding="UTF-8"?>
<function xmlns="http://www.got-fw.com/schema/function"
	xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	xsi:schemaLocation="http://www.got-fw.com/schema/function http://www.got-fw.com/schema/function/function-1.0.xsd"
	ref="demo_function" title="Демонстрационная функция" defaultView="grid">
	<table name="DEMO_DEMO" />
	<joins>
		<join name="GOT_USER" type="INNER" alias="U" joinConditions="U.ID=MAIN.USER_ID">
			<columns>
				<column id="USER_NAME" field="NAME" toUser="false" /> 
			</columns>
		</join>
	</joins>
	<columns>
		<column id="ID" editable="false" />
		<column id="USER_ID" showColumn="USER_NAME">
			<valueref function="users" view="select" label="NAME" value="ID"/>
		</column>
		<column id="DEMO_TYPE" dictionary="demo_demo_dic" />
	</columns>
</function>

Здесь table->name указывает на основную таблицу, используемую этим модулем, joins указывает на таблицу, связанную с данными, которые должны отображаться, например, если вы хотите отобразить USER_ID соответствующего имени пользователя, вам нужно добавить соответствующий join, затем используйте showColumn, чтобы указать отображаемое поле. Фреймворк автоматически считывает все поля в таблице и генерирует определение столбца. Вы можете изменить свойства отображения определённых полей через columns->column, например, USER_ID здесь отображается и выбирается с использованием связанной таблицы, а DEMO_TYPE использует словарь.

  1. Измените файл main.xml, добавьте вход главной страницы:
<action id="demo_demo" label="Демонстрационная функция" group="system_manager"
					sortIndex="10">
					<argument function="demo_demo" />
				</action>

Где argument.function соответствует имени файла функции. 3. Обновите страницу в браузере, чтобы увидеть новую функцию модуля. Она уже имеет основные функции добавления, удаления, изменения, поиска, импорта, экспорта и управления столбцами.

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Платформа для быстрой разработки на основе XML-файлов описания с целью максимальной повторной используемости. Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/kingyl007-got-fw.git
git@api.gitlife.ru:oschina-mirror/kingyl007-got-fw.git
oschina-mirror
kingyl007-got-fw
kingyl007-got-fw
master