Jmix.ru – Telegram
Jmix.ru
646 subscribers
358 photos
44 videos
1 file
436 links
Jmix — платформа быстрой разработки B2B и B2G веб-приложений на Java.

🤝 Наш коммьюнити-чат: https://news.1rj.ru/str/jmixchat

⚙️ Начать бесплатно: https://www.jmix.ru/get-started/
Download Telegram
REST Data Store – чужие сущности как родные!

🌟 Попробуйте еще один add-on в Jmix 2.4REST DataStore, который упрощает интеграцию приложений Jmix между собой. Теперь вы можете получать доступ к внешним сущностям из удаленного приложения Jmix так же легко, как к локальным сущностям JPA. Это значит, что вы можете отображать, обновлять и сохранять данные из внешних источников в своем приложении, используя стандартные функции CRUD, без необходимости писать рутинный код.

🚀 Как это работает
Просто определите новое хранилище REST DataStore и создайте в нем DTO для сущностей из внешней системы. Генерируйте стандартные экраны – и вуаля! 🎉 Теперь вы можете легко видеть список сущностей из другой системы и использовать их без лишних усилий.

🔍 Фильтрация данных
Чтобы не загружать полный список, просто отфильтруйте данные по нужным параметрам! 🛠

⚠️ Ограничения
Имейте в виду, что у REST DataStore есть некоторые ограничения по сравнению с обычным JPA DataStore:
Не поддерживается ленивая загрузка
Недоступны события EntityChangeEvent и AttributeChanges
Нельзя использовать JPQL (логично, это же DTO!)

🔄 Репликация данных
Но если хотите, вы можете легко реплицировать данные из одной системы в другую с помощью этого подхода и оперировать в своем приложении нормальными сущностями. Это делается проще, чем стандартными вызовами REST API! 🌐

Читайте документацию и используйте возможности REST DataStore на полную катушку! 💪

#addon #обновления
🔥11👍5
📢 Разработка системы документооборота: выходим в облако!

В прошлой статье Алексея Обложко было рассказано, как мы создали приложение для документооборота на фреймворке Jmix и развернули его с помощью сервиса #Облакотека. Теперь мы поднимаем планку! 🚀

🔍 Что вас ждет в новой статье?
🌟 Развертывание приложения на #Kubernetes-кластере для обеспечения отказоустойчивости и масштабируемости.
🔧 Использование #Deckhouse от российской команды для упрощенного развертывания и мониторинга.
📚 Пошаговая инструкция по настройке кластера, подключению баз данных и деплою приложения.

🌐 Почему это важно?

Kubernetes — это современное решение для бесперебойной работы приложений, и с помощью Deckhouse вы сможете легко управлять своими ресурсами.

Не пропустите! Читайте статью и узнайте, как сделать ваше приложение еще более надежным! 💡

#статья
🔥9👍21
Jmix.ru pinned «🤩Хорошая новость для начала хорошей рабочей недели. Статья на хабр в комплекте. 🎉Всех поздравляем с официальным запуском проекта OpenIDE! #статья»
🤩Часы приближают окончание 2024 года и вся команда Jmix спешит поздравить вас с окончанием текущего и наступлением нового 2025 года 🍸!
Мы не знаем, что вы препочтете 📺 на этих оооооочень длинных праздниках 😎. Возможно, кто-то традиционно будет смотреть "Иронию судьбы" или "Приключения Шурика". Кто-то еще включит "Елки 10210", "Один дома" или "Гарри Поттер навсегда". Но в одном мы уверены точно😎. Когда вам наскучит есть 🔤🔤🔤🔤🔤🔤 и 🔤🔤🔤🔤🔤🔤🔤, вы всегда сможете присесть за ваш любимый компик и найти там тепленький и приятный 👨‍💻 Jmix. Написать пару строчек, сгенерировать экранчики, поиграться с CSS, ну все такое, что мы с вами очень любим👨‍💻.
Со своей стороны мы продолжим создавать для вас лучший на 🌍 продукт для продуктивной разработки бизнес-приложений и радоваться, что с каждым годом количество единомышленников растет и индустрия в целом бурно развивается!
🎉Всех с наступающим Новым 2025 годом! Ура!🎉
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21🎉174🤩1
Всех с рабочими буднями 2025ого!
Мы тоже уже работаем, чтобы порадовать вас нашими новыми релизами. В этом году их традиционно будет 3 и ближайший уже в конце февраля. Обновленный роадмап на 2025 год сделаем в конце января и опубликуем в нашем блоге.
👍17
Компания Haulmont совместно с Группой Астра и Axiom JDK создает некоммерческое партнерство🤝 для развития открытой российской среды разработки – OpenIDE.🇷🇺

Все три компании имеют огромный опыт в создании популярных продуктов для разработчиков и мы верим, что сможем сделать качественный продукт. 💪 Мы не планируем изобретать велосипед и будем использовать в качестве основы популярную среду с открытым кодом IntelliJ IDEA Community Edition.

Почему это хорошая новость для российских разработчиков? 🇷🇺 Чем это отличается от самой IntelliJ IDEA CE или уже существующей российской GigaIDE? Какие языки будут поддерживаться? 🌐 Что со Spring? 🍃 Когда релиз?

Читайте под катом.

#статья
👍167
Интеграция Jmix-приложений ⚙️ 

В мире корпоративных систем модульная архитектура — это не просто тренд, а необходимость. Попробуйте представить себе монолитное приложение, в котором собраны все функции. Это было бы нечто монструозное! 😱 Невозможно уместить все в одном месте и при этом сохранить гибкость и удобство.

Конечно, вы можете разрабатывать каждый модуль на любой технологии, которая вам нравится. Но если уже есть Jmix, то совершенно логичным будет делать различные функциональные модули на нем – от добра добра не ищут! Jmix позволяет создавать модули, которые легко интегрируются друг с другом, что значительно упрощает разработку и поддержку. 🔧

Однако с модульной архитектурой возникает важная задача — интеграция между различными приложениями Jmix. Как сделать так, чтобы все модули работали как единое целое? 🤔 Здесь на сцену выходят инструменты интеграции, встроенные в платформу Jmix: REST API и REST DataStore. Эти инструменты позволяют наладить взаимодействие между приложениями, обеспечивая бесшовный обмен данными. 🔄

А чтобы ими было легче и удобнее пользоваться, мы подготовили для вас специальный гайд 📚 по интеграции Jmix-приложений. В нем на конкретном примере показано, как эти инструменты использовать наиболее эффективно, чтобы управлять распределенными данными и предоставить бесшовный user experience. 🌟

Из этого гайда вы узнаете:
• Как реплицировать или импортировать данные из внешнего приложения
• Как связывать локальные и внешние сущности
• Как сконфигурировать проект и настроить права доступа
• Как разрабатывать бизнес-логику с учетом распределенной среды

Ознакомьтесь с нашим гайдом и откройте новые горизонты для своих проектов на платформе Jmix. Ваши пользователи оценят улучшенный функционал и удобство работы с системой, а вы — упрощение разработки и поддержки. Давайте вместе сделаем ваши приложения еще лучше! 💪

#гайд
👍16🔥3
Компания Axiom JDK 🎉 приняла участие в конференции “Город IT”.

В блоке наших партнёров из ЦФТ (Центр Финансовых Технологий) 🤝, которые используют Axiom JDK в своих продуктах, Developer Advocate Рустам Курамшин 💻 рассказал о проблемах современной разработки на Spring Boot и их решении с помощью российского стека Java-технологий, включая Axiom JDK и Jmix.

Из доклада вы узнаете, как на уровне системного middleware использовать Java-платформу от Axiom JDK 🚀 и как значительно ускорить разработку корпоративных веб-приложений благодаря возможностям Jmix ⚡️. Этот инструмент расширяет функциональность Spring Boot и позволяет создавать веб-приложения буквально за считанные минуты! ⏱️

🌐 Смотреть на YouTube
🌍 Смотреть на VK Видео

#мероприятия
🔥13
Мастер-класс «Инструменты Jmix BPM для бизнес-аналитика»

18 февраля Станислав Макаров, продуктовый аналитик Jmix, проведет мастер-класс, где вы сможете узнать, как аналитик на платформе Jmix создает прототип автоматизированного процесса, который потом с помощью разработчиков станет частью корпоративной информационной системы.

Особенность процессных приложений в том, что они создаются совместно аналитиками и разработчиками. Для разработчиков мы выступаем много и часто, рассказываем о разных аспектах использования платформы Jmix. Но чтобы вся проектная команда работала эффективно, нужно вовлечь в поток разработки и аналитиков, чем мы активно занимаемся.

Мастер-класс пройдет на площадке ABPMP – Ассоциации BPM-профессионалов.
Регистрация по ссылке
https://abpmp.org.ru/events/jmix4analyst/

#мероприятия
🔥12
Сущности по наследству 🌟

Наследование — это один из ключевых принципов ООП. Естественно, сущности тоже можно наследовать. Казалось бы, что тут сложного, зачем нужен специальный гайд? Но все не так просто! Сущности Jmix — это не обычные Java-классы, они связаны с реляционной базой данных и имеют свои особенности.

Вот основные стратегии наследования:

🔹 Mapped Superclass:
- Класс-родитель не имеет своей таблицы в базе данных.
- Используется как шаблон для классов-потомков.
- В дочерних классах доступны общие поля класса-родителя плюс свои специфические.

🔸 Table-Per-Class Inheritance:
- Каждый подкласс имеет свою собственную таблицу, которая также включает поля класса-родителя.
- Позволяет выполнять полиморфные запросы в отличие от Mapped Superclass.
- Может быть менее эффективным по производительности из-за множества таблиц.

🔹 Single Table Inheritance:
- Все классы (родитель и потомки) хранятся в одной таблице.
- Таблица содержит все атрибуты всех подклассов.
- Упрощает управление, но может привести к большим таблицам.

🔸 Joined Table Inheritance:
- Родительская сущность и ее наследники хранятся в отдельных таблицах.
- Каждая таблица содержит только специфичные поля для класса.
- Упрощает структуру базы данных, но усложняет запросы.

Эти стратегии позволяют разработчикам выбирать наиболее подходящий подход к проектированию сущностей в зависимости от требований приложения и бизнес-логики. 💡

Читайте новый гайд Data Modeling: Entity Inheritance и стройте свои генеалогические древа сущностей!

#гайд
👍13🔥31
Приглашение к холивару: BPMS жив или мертв? 🤔

У нас есть мнение, что скорее мертв, чем жив. Почему так, читайте в нашей новой статье на Хабре — BPMS мёртв в энтерпрайзе. 📉

Да, только не надо путать BPM как концепцию и BPMS как класс продуктов. Управление процессами – это необходимый компонент любой КИC. Но старые неповоротливые монолиты BPMS не вписываются в современный конвейер разработки ПО. 🏗

На смену им приходят решения на основе open source BPM-движков. Такие как Jmix BPM, с которым вы давно знакомы. Или как наш новый продукт OpenBPM. 🚀

Вы о нем еще не слышали? Да, это сюрприз! 🎉 Хотите узнать больше? – Регистрируйтесь на презентацию 5 февраля.

А еще подписывайтесь на наш новый канал, который посвящен тематике управления бизнес-процессами! 📢 BPM Developers

#статья
🔥10
🤩Внимание! Всем, кто хочет быстро разобраться в Jmix UI!🤩
На Алтае начали выпускать уникальный чай. 2 чайников в день достаточно для офигительного настроения и просветления в области Jmix UI. Побочный эффект - кристальная ясность концепций Spring Security.
По вопросам индивидуальных и корпоративных заказов обращаться к нашему партнеру КС-Консалтинг г. Барнаул.
#юмор
👍18🔥5🤩2
Разбираемся с отношениями "многие ко многим"

В мире всё со всем связано 🌍. Даже в нашем любимом примере Pet Clinic 🐾 один ветеринар может иметь несколько специальностей, а каждой специальностью может обладать несколько докторов 🩺.

Когда вы проектируете модель данных, на ER-диаграмме запросто можно нарисовать связь «многие ко многим». Но вот беда – реляционные БД 🗄️ не могут нативно реализовать такую связь. И приходится изощряться 🤔.

Есть два способа, как это сделать в Jmix:

Непосредственно между сущностями – на самом деле, промежуточная таблица 📋 в этом случае всё равно создается, просто Jmix сделает это за вас .

Через промежуточную сущность – вы сами создаете промежуточную сущность 🧩, которая развяжет эти множественные отношения. В этом случае на связь можно навесить дополнительные атрибуты, например, дату её создания 📅 и срок действия .

А ещё эти связи могут быть одно- или двунаправленными 🔄, от чего зависит их доступность на уровне Java/JPA . И важно, кто связью владеет – владение определяет, какая сущность управляет join-таблицей для обновления записей 🛠️.

Но таблицы – это ещё полдела 📂. Вам же ещё надо как-то отобразить эти множественные связи в интерфейсе 🖥️, и тут тоже не всё так однозначно!

В руководстве Data Modeling: Many-to-Many Associations мы рассмотрим оба подхода, предоставив практические примеры для иллюстрации их реализации в приложении Jmix 🚀.

#гайд 📚
👍17
Композиции в Jmix: за пределами обычных ассоциаций 🌟

В отличие от ассоциаций JPA, таких как @OneToMany, @Composition является концепцией, специфичной для Jmix, и не имеет прямого эквивалента в JPA. 🛠

В чем суть:

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

🔹 Это упрощает управление жизненным циклом и помогает поддерживать согласованность структуры данных без необходимости дополнительного ручного вмешательства.

🔹 Также, композиции позволяют строить более удобный пользовательский интерфейс, позволяя обрабатывать связанные сущности в одном экране.

Самый простой пример – это заказ и позиции в заказе. 🛒 Отдельная строка заказа не имеет смысла вне контекста родительской сущности.

В руководстве Data Modeling: Composition вы узнаете о связи Composition в Jmix — ключевой функции, которая позволяет создавать тесно связанные отношения между сущностями с управлением их жизненным циклом. Мы сравним Compositions с Associations, выделяя их основные различия и случаи применения каждого из них. ⚖️

Руководство охватывает два основных типа Compositions:
🔸 One-to-Many ➡️ Один ко многим
🔸 One-to-One ➡️ Один к одному

На практических примерах вы поймёте, как настроить и эффективно использовать Compositions в своих приложениях Jmix для обеспечения согласованности данных и интуитивных рабочих процессов. 💡

#гайд
🔥14👍5
Уважаемое сообщество Jmix разработчиков!

Мы рады анонсировать презентацию нашей open source платформы для управления бизнес-процессами.

OpenBPM помогает формировать команды процессной разработки и организовать совместную работу. Мы собрали весь наш опыт в BPM, который в итоге воплотился в новый продукт.

5 февраля в 14:00 МСК мы проведем онлайн презентацию, где расскажем в чем заключается суть продукта, почему это не конкурент Jmix, и в каких случаях OpenBPM наиболее применим.

Предвосхищая вопросы, платформа OpenBPM — это новый самостоятельный продукт компании Haulmont, не влияющий на развитие Jmix.

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

С уважением,
Команда платформы Jmix


#мероприятия
👍174🔥3
Три месяца назад вышла версия Jmix 2.4 с новыми (классными!) функциями и улучшениями. Надеемся, она вам понравилась!

Об этих фичах мы уже писали в нашем телеграм-канале, держите весь список, чтоб было удобнее:

🔹 REST Data Store – чужие сущности как родные!
🔹 В Jmix 2.4 есть канбан-доска!
🔹 Дополнение Calendar
🔹 Асинхронные задачи UiAsyncTasks
🔹 «Запрет определенных действий» с помощью UI Constrains

🚀Расскажите, какими адд-онами вы успели воспользоваться в своих проектах!

#обновления
👍7
🎉Вперед, к полиглотной персистентности!

NoSQL базы данных в некоторых кейсах выглядят лучше реляционных – когда нужно горизонтальное масштабирование, гибкие структуры данных и так далее. Например, если нужно хранить логи и искать по ним.

И, возможно, вы думали, что было бы неплохо использовать, допустим, MongoDB 🍃 в своем Jmix-проекте, чтобы эти кейсы реализовать. Но скорее всего вас останавливали сложности интеграции.🤯

Технически есть два варианта:

1️⃣ Взять обычные UI Data-компоненты и написать для них кастомные методы loadDelegate и saveDelegate, чтобы обойти обращения к DataManager И вуаля – у вас есть CRUD-операции для нереляционных данных. 🏆

2️⃣ Заморочиться и написать свой кастомный DataStore для той же MongoDB🍃. Этот подход, в отличие от первого, поддерживает высокоуровневые функции Jmix, включая систему безопасности и компонент genericFilter. Но и потрудиться придется побольше.😓

В нашем новом гайде MongoDB Integration in Jmix подробно по шагам и с примерами показан первый вариант. Во-первых, он проще. В принципе этого уже достаточно, если вас интересует быстрый результат.

Скачивайте демо-проект PetClinc с логами в MongoDB, экспериментируйте и применяйте в своих проектах! Теперь ваше приложение будет обладать полиглотной персистентностью💡 – то есть, уметь работать с БД различных типов.

#гайд
🔥42
🔐 Jmix + Social Login: легко, удобно, безопасно! 🚀

Jmix уже из коробки дает мощную систему безопасности и функции управления пользователями. А еще можно подключить авторизацию через соцсети — GitHub, Google и другие.

🔥 Что это дает?

Пользователи заходят в систему не создавая лишних аккаунтов
Поддержка OAuth и OpenID Connect — быстро и безопасно
Интеграция с LDAP/Active Directory и кастомными решениями

Хотите внедрить Social Login в свое Jmix-приложение?
🔗Следуйте нашему гайду — разберем всё по шагам! 💡

Что мы будем делать:

🔸Создадим обычное full-stack приложение Jmix
🔸Сконфигурируем Authentication Providers:
GitHub OAuth и Google OpenID
🔸Доработаем сущность User, чтобы работать с токенами
🔸Настроим OAuth2 Login и экран входа в приложение

В общем-то и все!🎉

Да, еще хотели лишний раз напомнить о безопасности🛡️:

Когда будете экспериментировать, помните, что не стоит выкладывать в публичные репозитории секретные ключи! 🚫🔒

#гайд
👍8
Долой ручную работу! Интеграция на основе OpenAPI стала проще в Jmix 2.4!

Приготовьтесь, сейчас будет немножко сложно😅, но оно того стоит! 💪 Ведь если говорить о разработке серьезного корпоративного приложения 🏢, редко когда удается остаться в рамках одного приложения. Скорее всего это будет мульти-модульное приложение 🧩, а то даже и с микросервисами.

Конечно, путь понятен – берем разнообразные API 🔗 и интегрируем, интегрируем, интегрируем. Хитрости особо никакой нет, просто очень много рутинной работы 🤖.
Даже если вы используете инструменты OpenAPI ⚙️, на стороне Jmix до недавних пор приходилось делать все вручную ✍️. Потому что никакой Swagger не сгенерит за вас сущности и все прочее в Jmix Studio.

Но с релизом 2.4 все изменилось! 🎉 Теперь Jmix Studio предоставляет расширенную поддержку интеграции на основе OpenAPI, включая настройку генератора OpenAPI-клиента в вашем проекте, автоматическую генерацию DTO-сущностей, мапперов и промежуточных сервисов 🪄.

Однако новых фич так много, что разобраться методом проб и ошибок (или как у нас говорят, методом тыка👆) займет слишком много времени.

Поэтому мы подготовили для вас подробный гайд 📚 Интеграция приложений с использованием OpenAPI, где все расписано по шагам 👣.

Кстати, вы же помните, что Jmix это не лоукод, да? 😉 Поэтому в нашем гайде рассказано не только, как пользоваться визардами 🧙♂️, но и даны примеры, как можно доработать код вручную 👨‍💻 – ведь без этого в реальных проектах никак не обойтись.

Когда вы пройдете этот демо-пример, то будете готовы внедрять интеграции на основе OpenAPI в своих собственных проектах! 🚀


#гайд
🔥9👍1
🎉Jmix Community Meetup: 6 марта 2025, оффлайн

Мы ждем окончания зимы не только из-за надоевших серости и холода, но и из-за первого технологического митапа Jmix в начале весны!

Мы усердно готовим доклады по экспертизе наших разработчиков, выпущенным и планируемым обновлениям продукта, копим темы для нетворкинга и, конечно, закупаем пенный напиток для настоящего пиво-брейка!

Выступления будут огонь!🔥 Подробности тут.

Это супер возможность встретиться с частью команды Jmix, получить ответы на давно волнующие вопросы и обсудить будущее развитие технологии.🚀

Участие бесплатное, требуется только регистрация здесь.

Будем рады всех видеть! До встречи 6 марта в 18:00 часов в Москве!😉
🔥7👍3