OberonCore

Библиотека  Wiki  Форум  BlackBox  Компоненты  Проекты
Текущее время: Пятница, 05 Сентябрь, 2025 06:08

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 16 ] 
Автор Сообщение
СообщениеДобавлено: Четверг, 24 Июль, 2025 10:02 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 58
Добрый день.
На главной странице https://blackbox.oberon.org/
вижу предложение опубликовать свое расширение для BB.
Стал искать инфу о том, как делать расширения. Тут на форуме инфы не нашел, на Вики тоже нет.
Поэтому предлагаю добавить на вышеуказанную страницу информацию о том, как сделать расширение.
Ну или ссылку на мануал, если мануал будет размещен в Вики.
А ещё можно здесь в шапку раздела добавить.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Пятница, 25 Июль, 2025 23:39 
Аватара пользователя

Зарегистрирован: Вторник, 19 Сентябрь, 2006 21:54
Сообщения: 2463
Откуда: Россия, Томск
Похоже, вы нашли просто зеркало коллекции https://www.zinnamturm.eu/
Возможно, имеет смысл посмотреть в первоисточнике. Я как-то публиковался там, но уже забыл, как именно.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 30 Июль, 2025 18:14 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1469
Откуда: Киев
Артем Запаранюк писал(а):
Стал искать инфу о том, как делать расширения. Тут на форуме инфы не нашел, на Вики тоже нет.
Лучше воспользоваться самим BlackBox:
BlackBox → Инструменты →Создать подсистему...


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 30 Июль, 2025 18:23 

Зарегистрирован: Четверг, 08 Май, 2008 19:13
Сообщения: 1469
Откуда: Киев
Александр Ильин писал(а):
Похоже, вы нашли просто зеркало коллекции zinnamturm.eu

Это не зеркало, а другой репозиторий, в который проще выкладывать.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 31 Июль, 2025 23:19 

Зарегистрирован: Воскресенье, 25 Декабрь, 2022 23:14
Сообщения: 1562
не надо. если это надо — то расширения делать не надо, рано ещё. работает как первичный фильтр от leftpad-ов.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Воскресенье, 31 Август, 2025 22:35 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3825
Артем Запаранюк писал(а):
Добрый день.
На главной странице https://blackbox.oberon.org/
вижу предложение опубликовать свое расширение для BB.
Стал искать инфу о том, как делать расширения. Тут на форуме инфы не нашел, на Вики тоже нет.
Поэтому предлагаю добавить на вышеуказанную страницу информацию о том, как сделать расширение.
Ну или ссылку на мануал, если мануал будет размещен в Вики.
А ещё можно здесь в шапку раздела добавить.

Посмотрите файл Tut-3, там описывается про подсистемы.

Потом, всё, что надо для публикации, сжать (меню Инструменты->Закодировать список файлов) свою подсистему или иной набор файлов, в общем случае - расширение функциональности Блэкбокса, и загрузить на сайт.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Сентябрь, 2025 15:02 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 58
Не могу найти файл Tut3.
Можно мне ссылку или адрес, в какой директории он расположен?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Сентябрь, 2025 15:30 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3825
Артем Запаранюк писал(а):
Не могу найти файл Tut3.
Можно мне ссылку или адрес, в какой директории он расположен?

В папке Docu или в справке выбрать из первой части учебника ссылку "Приёмы проектирования"

Вот от туда ещё выдержка есть, поясняющая принцип. Что компонент это чаще всего одна папка.

Цитата:
Единственно подходящим для компонентно-ориентированного ПО является вариант, когда добавление и удаление компонентов может выполняться по нарастающей, добавлением или удалением папки. Все виды механизмов централизованной инсталляции или регистрации, которые распространяют составляющие компонента, должны быть исключены, поскольку они неизбежно ведут к (ненужным) проблемам управления.


Однако как например для случая пакета локализации, не всегда расширение Блэкбокса - это один компонент или одна папка. Поэтому назвал "расширение", как сокращение от "расширения функциональности".


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Вторник, 02 Сентябрь, 2025 16:21 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 58
Теперь стало ясно.

Пойду изучать.

Спасибо.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Сентябрь, 2025 08:36 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 58
Файл нашёл. Ознакомился.
Теперь мне ясно как оформить расширение и как его инсталлировать.
Ещё раз спасибо.

Теперь мне надо определиться на каком принципе будет работать расширение.

Я пока знаю 2 таких принципа:

1. Расширение работает на основе готовых технологий типа OLE, COM, SQL.
Они есть в BlackBox.

2. Расширение создает новые API интерфейсы для стыковки и работы с framework.
Как например интерфейс JNI.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Сентябрь, 2025 11:06 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 58
Нашёл примеры готовых расширений на сайте https://oberoncore.ru/bbcc/subs/start

По первому принципу работают:
1. Fib BlackBox Sql-драйвер для СУБД Firebird

2. Mysql Средства взаимодействия с клиентской библиотекой СУБД MySQL
3. Xmlcore - Использование DOM и XML

По второму принципу работают:
1. Mbedtls - Интерфейс к криптографической и SSL/TLS-библиотеке Mbedtls.

2. O3 — каркас для разработки веб-приложений (Web-Application-Framework)

3. Ogl -Интерфейс к библиотеке OpenGL

4. Sdl2 - Привязка к Simple DirectMedia Layer v2.

5. Sedna - Интерфейс C-API драйвера XML СУБД Sedna.

6. Xmpp - Реализация клиента сети XMPP (jabber).

7. YSon - Парсер/генератор JSON

8. Acad - Подсистема, позволяющая использовать BlackBox в качестве скриптовой системы вместо Лисп и VisualBasic в программе AutoCAD


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Сентябрь, 2025 15:05 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 58
Нашёл в Инете информацию о том, какова сейчас мировая практика создания и подключения расширений.

Для framework-ов.

На примере Chrome Browser, Visual Studio Community.

Пока выяснил, что:
1. Оба framework-a предоставляют API интерфейс для подключения расширений.
Для пользователя фреймворка API интерфейс=frontend, расширение=backend.

2. Для сборки главной программы с использованием разных языков программирования нужен сборщик типа Cmake, Cradle.

3. Эта технология выгодна любому автору расширения - у него становится больше пользователей.

Поэтому для подключения расширений такого типа к BlackBox достаточно предложить API BlackBox всем авторам популярных расширений.

Конечно, при необходимости API BlackBox потребуется модернизировать. Либо самостоятельно писать на КП модуль стыковки, с разрешения автора плагина.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Среда, 03 Сентябрь, 2025 16:59 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 58
Также рассматриваю возможности привлечь в BlackBox расширения от родственных framework- ов - Delphi, Lazarus, Code Typhon.

Чтобы сделать на КП стыковку для компонентов Delphi и пакетов Lazarus.
Хотелось бы без статической компиляции пока обойтись. За счёт заранее откомпилированных модулей Delphi, Lazarus.

В первую очередь, меня, интересует то, как "прикручен" Java Native Interface (JNI).
В данный момент выясняю это на простых примерах в Lazarus и Code Typhon.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Сентябрь, 2025 11:20 
Аватара пользователя

Зарегистрирован: Четверг, 08 Октябрь, 2009 15:00
Сообщения: 3825
У Блэкбокса некая своя инновационная идеология раздельной компиляции и позднего связывания модулей.
Всё мечтаю как-нибудь погрузиться в чтение этого первоисточника
Crelier B.J. Separate Compilation and Module Extension. 1994.
https://www.research-collection.ethz.ch ... 00/content
копия на сайте OberonCore
https://oberoncore.ru/_media/library/cr ... ension.pdf

Однако если научились другие всякие штуки стыковать с Блэкбоксом - честь вам и хвала.

А так посмотрите подсистему Obx, там пример того, как рекомендуется делать связки своих модулей с каркасом.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Сентябрь, 2025 13:31 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 58
Цитата:
У Блэкбокса некая своя инновационная идеология

Однако если научились другие всякие штуки стыковать с Блэкбоксом - честь вам и хвала.

Нет, пока не научился.
Пока прорабатываю данную тему.

Выяснил, что нужно много информации обработать и какой именно.
Промежуточные соображения о том, какую именно информацию и для чего нужно узнать, я изложил выше.

Лично меня интересует Java Native Interface.
Чтобы можно было работать с модулями на Java.
С прицелом, в первую очередь на разработку приложений для Андроида.
Логику приложения, можно конечно библиотекой оформить внутри apk.

А вот графику нужно будет рисовать средствами Андроид ОС.
А там всё на Java.
И поддержки GTK тоже нет.


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: Четверг, 04 Сентябрь, 2025 13:45 

Зарегистрирован: Среда, 23 Июль, 2025 21:04
Сообщения: 58
Как указал выше, пока тренируюсь, как раньше говорили, "на кошках".
На Lazarus.

В нём есть графические компоненты Custom Drawn.
Которые заявлены как кросс-платформенные.
И что их можно нарисовать в Андроид.
Но пока не выходит.

Там тоже используется JNI.
И откомпилированные модули библиотек из набора Android NDK.

На Windows при запуске проекта отрисовка есть.
На Android нет.

Если интересует, вот ссылка на проект
https://github.com/alrieckert/lazarus/t ... androidlcl

Во вложении-файл. Там принцип отрисовки вместе с инструкцией.


Вложения:
LAZARUSForAndroid.pdf [1.03 МБ]
Скачиваний: 2
Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 16 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Вся информация, размещаемая участниками на конференции (тексты сообщений, вложения и пр.) © 2005-2025, участники конференции «OberonCore», если специально не оговорено иное.
Администрация не несет ответственности за мнения, стиль и достоверность высказываний участников, равно как и за безопасность материалов, предоставляемых участниками во вложениях.
Без разрешения участников и ссылки на конференцию «OberonCore» любое воспроизведение и/или копирование высказываний полностью и/или по частям запрещено.
Powered by phpBB® Forum Software © phpBB Group
Русская поддержка phpBB