Flexberry PLATFORM

Блог платформы Flexberry

Распознавание текста на основе Tesseract и ElasticSearch

Платформа Flexberry позволяет реализовывать решения для разнообразных бизнес-требований. Распознавание документов – одна из полезных и интересных возможностей, поэтому специалистами «Новой платформы» разработан пример, демонстрирующий возможности не только распознавания документов формата pdf, но и поиск необходимой информации в полученных текстах. Пример представляет собой систему, состоящую из следующих сервисов:

1) Стандартное приложение, основанное на применении фреймфорка Ember, odataBackend и базы данных.

2) Сервис распознавания на основе Tesseract.

3) Сервис поиска на основе ElasticSearch.

В приложении у пользователя есть возможность загрузить отсканированный pdf, который конвертируется в png с помощью утилиты ImageMagic и распознается с помощью инструмента Tesseract. Обработка текста происходит по технологии OCR.

Полученный текст загружается в базу данных ElasticSearch, благодаря чему обеспечивается возможность быстрого поиска по содержимому в специальной форме ember-приложения. В итоге пользователю выводится список найденных документов с возможностью просмотреть страницу, где был найден искомый текст (по клику на наименовании). Для отображения pdf используется пакет ember-pdf-js, основанный на pdfJS.

Познакомиться с возможностями разработанного примера можно, запустив его в Docker в соответствии с инструкцией.

Легенды креативных индустрий в Перми

В Перми состоялся форум «Легенды креативных индустрий». Мероприятие является одним из флагманских событий в рамках Перми-300.

На одном из мероприятий в рамках форума 18 августа была представлена и «Новая платформа» в лице директора по развитию - Евгения Хаберева. Евгений рассказал про разработку программного обеспечения в рамках дискуссии «Креативные сообщества и ИТ из Перми».

На форуме встретились представители власти, топ-менеджеры компаний, инвесторы и креативные предприниматели Прикамья, чтобы обсудить «экономику будущего» в неформальной обстановке.

Подробнее о мероприятии можно прочитать на сайте Министерства информационного развития и связи Пермского края, а также на страницах Пермского интернет-журнала “Звезда”.

Новинки на тестовом стенде Ember Flexberry

Платформа Flexberry позволяет реализовывать решения для разнообразных бизнес-требований.Одним из самых востребованных направлений является реализация тестового пространства для знакомства с доступными технологиями продуктов Flexberry. Специалистами “Новой платформы” на тестовый стенд Ember Flexberry внесены изменения и добавлены новые компоненты:

  1. добавлена возможность выбора нескольких пунктов в выпадающем списке дочернего элемента,
  2. добавлен выпадающий список для фильтрации,
  3. изменена структура подменю списковых форм - теперь кнопки управления настройками располагаются прямо в строке,
  4. модифицирован сценарий работы валидации: она срабатывает только после попытки сохранения формы,
  5. реализована возможность встраивать в тулбар списковых форм пользовательские компоненты,
  6. добавлена статья о применении пользовательских типов данных.

Международное сотрудничество Flexberry Platform

Команда Flexberry Platform занимается активным продвижением заказной разработки информационных систем и приложений на международном рынке. На данный момент наиболее перспективными направлениями является сотрудничество со странами Африки и Азии. Компания “Новая платформа” предлагает помощь в разработке проектов под ключ. Для компаний-разработчиков в странах Африки и Азии это позволит выполнять проекты, для которых у них не хватает ресурсов или компетенций.

На сегодняшний день команда по международному сотрудничеству провела несколько десятков встреч, некоторые компании уже заинтересованы в сотрудничестве, с ними продолжается дальнейший диалог. Всего отправлено несколько сотен приглашений в компании-разработчики за пределами РФ. В рамках данного проекта также планируется получать информационную и юридическую поддержку от Центра поддержки экспорта.

Система отчетов с применением Quartz.Net

Платформа Flexberry позволяет реализовывать решения для разнообразных бизнес-требований. Очень часто в информационных системах встречается логика построения отчётов. Платформа Flexberry позволяет оптимальным образом реализовать логику асинхронного построения отчётов с отправкой уведомления пользователю. Данное решение основано как на сторонних компонентах, таких, как Quartz.Net, так и на компонентах платформы Flexberry. Такая комбинация даёт максимальную скорость и качество разработки и сопровождения.

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

Техническое описание примера: применяется OData в качестве бакэнда и Ember в качестве фронтенда, в качестве БД – PostgreSQL, в качестве сервиса авторизации пользователей показан Keycloak. SignalR-соединение с пользователем осуществляется через Web Socket для отправки уведомлений о формировании отчетов. Если нет соединения с пользователем по SignalR, то на почту с помощью MailKit отправляется уведомление по шаблонам Т4 или Razor.
Особенности сервиса Quartz: на каждое задание инициализируется свой интерфейс с соответствующим уровнем прав. Его инициализация зависит от параметров запуска отчета в части пользователя и его ролей.

Для построения DOCX-отчетов используется специальный пакет с отчетами, который представляет из себя доработку базового пакета. Он предоставляет более широкий набор функционала по поиску и замене параметров при формировании отчетов.

Пример реализации геоинформационной системы

Платформа Flexberry позволяет реализовывать решения для разнообразных бизнес-требований.Одним из самых востребованных направлений является реализация геоинформационных систем.

Специалистами “Новой платформы” разработано приложение с использованием БД PostgreSQL для демонстрации возможностей ember-flexberry-gis с использованием ember-cli, ember-flexberry и ember-flexberry-data. Оно является своего рода руководством для реализации подобного функционала разработчиками, что позволяет экономить временные затраты, так как показан наилучший способ применения всех инструментов.

Пример использования Apache NiFi

Платформа Flexberry позволяет реализовывать решения для разнообразных бизнес-требований, поэтому активно использует наиболее современные и востребованные инструменты. Например, Apache NiFi. Это достаточно простой в использовании, open source ETL-инструмент (от Extract, Transform и Load – извлечение, преобразование, загрузка). Он представляет собой способ объединения данных из нескольких источников в одном центральном хранилище, которое называется складом данных. Обычно ETL-процессы используются, когда нужно перенести много разнородных данных: собрать их, привести к единому виду, загрузить в новую систему и сохранить всю информацию по пути. Системы бывают разными, и задача ETL — в том числе адаптировать под них данные из разных источников. Apache NiFi обладает следующими особенностями:

  • умеет работать со множеством систем и технологий. Например - HDFS, Hive, HBase, Solr, Cassandra, MongoDB, ElastcSearch, Kafka, RabbitMQ, Syslog, HTTPS, SFTP,
  • удобен для поддержки драйверов для всех видов БД. Есть API для написания своего модуля в качестве дополнительного приемника или преобразователя данных,
  • имеет распределенную архитектуру для быстрой параллельной загрузки и обработки данных,
  • а также большое количество плагинов для источников и преобразований,
  • обладает многофункциональным Web-интерфейсом, который с помощью интерактивных блоков и связей позволяет создавать DataFlow любой сложности.

Использование данного инструмента продемонстрировано на стенде в открытом репозитории, разработанном специалистами «Новой платформы». Он основан на двух источниках данных:

  • основная БД приложения PostgreSQL,
  • БД аудита в Clickhouse.

NiFi на основе построенной логики DataFlow производит вычитку данных из основной БД и БД аудита, преобразовывает их и сохраняет в отдельную аналитическую БД. Для просмотра и аналитики БД NiFi в стенд добавлен сервис ApacheSuperset. Также добавлена система логирования GrafanaLoki, для сбора логов работы NiFi.

На стенде можно изучить следующие аспекты:

  • как запустить NiFi в виде docker-сервиса,
  • какие базовые функции есть в его интерфейсе и как делается DataFlow
  • как осуществить соединение с БД PostgreSQL и Clickhouse,
  • как реализовать вычитку и преобразование данных,
  • как сохранить преобразованные данные в аналитическую БД,
  • как сохранить конфигурацию DataFlow,
  • как подключить к NiFi Superset,
  • как отправлять из NiFi логи работы в Loki.

Пример работы с логами и аналитикой приложений

Платформа Flexberry позволяет реализовывать решения для разнообразных бизнес-требований, поэтому активно использует наиболее современные и востребованные инструменты. Например, GrafanaLoki - опенсорс-систему логирования. Система логирования GrafanaLoki – это совокупность двух компонентов: непосредственно сборщика логов Loki и инструмента аналитики Grafana. Их использование отображено на стенде в открытом репозитории Flexberry Platform в виде отдельных дополнительных сервисов. На стенде используются базовые компоненты технологии Flexberry - фронтенд, бэкенд и БД. Loki – это система сбора логов, она выполняет следующие функции:

  • агрегации логов,
  • их хранение в специально организованном собственном хранилище,
  • выполнение запросов на чтение логов.

Благодаря специализированному подходу к хранению логов, доступ к ним отличается большой скоростью. Loki может принимать логи как по WebApi-интерфейсу, так и извлекать их из файлов с помощью дополнительного инструмента Promtail. Grafana - система аналитики, представляющая собой многофункциональный web-интерфейс просмотра данных различных источников (может работать не только c Loki). Grafana предоставляет следующие функции:

  • Web-интерфейс визуализации данных,
  • конструктор запросов к данным,
  • построение сложных панелей мониторинга,
  • аналитика.

В открытом репозитории стенда, разработанного специалистами “Новой платформы”, не только представлен собственно пример использования сервиса, но и написана документация, благодаря чему разработчики смогут добавить GrafanaLoki в стек своих сервисов и настроить базовый функционал.

Реализация MVP проекта Business analyst AI assistant

Новая платформа приступила к активной фазе разработки MVP проекта ИИ-ассистента для бизнес-аналитиков. Идея данного проекта была протестирована в рамках предакселератора Архипелаг 2121, а также в рамках десятков проведённых CustDev-интервью.
Ключевой идеей данного ИИ-ассистента является возможность разбирать тексты технических заданий и постановок, с которыми приходится работать бизнес-аналитикам и менеджерам проектов, строить на основе разобранных данных формализованную модель. Эта формализованная модель может быть преобразована в полезные для проекта артефакты, например:

  • UML-диаграммы
  • BPMN-диаграммы
  • SQL
  • Макет пользовательского интерфейса
  • Готовое приложение на Flexberry Platform
  • Детальная постановка
  • Актуальная техническая документация
  • и т.д.

Данный проект нацелен на широкую аудиторию и предусматривает работу с текстами и артефактами любых ИТ-проектов, не обязательно применяющих платформу Flexberry для разработки.

Для разработки максимально полезного инструмента нужны качественные входные данные. Мы ищем компании, готовые поучаствовать в пилотном внедрении нашего ИИ-ассистента. Если у вас есть интересный пример, которым вы могли бы поделиться, или хотите попробовать ИИ-ассистента в своей компании, свяжитесь, пожалуйста, с нами любым удобным вам способом.

Новый корпоративный клиент - Газпром добыча Ямбург

Компания ООО “Газпром добыча Ямбург” приобрела лицензию на использование платформы Flexberry для проектирования и разработки собственных информационных систем. Несмотря на то, что цикл сделки у таких крупных компаний, как Газпром, занимает не один месяц и включает в себя множество сложностей, ООО “Новая платформа” в итоге выполнила эту поставку. Надеемся на дальнейшее плодотворное сотрудничество с новым клиентом и дальнейшее расширение географии продаж.

Выпущена утилита генерации NewPlatform.Flexberry.Designer.CommandLine

Наша команда разработала кроссплатформенную утилиту для генерации исходного кода - Flexberry Designer CLI.
Данная утилита позволяет встраивать процесс генерации и перегенерации исходного кода в различные этапы жизненного цикла разработки и использовать её в различных сценариях. Например, утилита может использоваться для контроля качества проектирования и программирования (согласованности UML и программного кода). Ещё один вариант использования - встраивание интерфейса Flexberry Designer и процесса генерации исходного кода в конечное приложение для реализации возможностей LowCode или NoCode. В отличие от Flexberry Designer Desktop утилита генерации Flexberry Designer CLI может использоваться в Linux и позволяет работать с метаданными без прямого доступа к БД метаданным Flexberry: метаданные могут быть заранее переданы в виде экспортированного crp-файла, либо будут загружены из веб-приложения Flexberry Designer. Для корпоративных пользователей платформы утилита генерации Flexberry Designer CLI доступна в виде установочного файла и интегрирована в качестве средства генерации в Flexberry Designer Enterprise.
Для всех остальных пользователей утилита доступна через NuGet-пакет.

Выпущены версии ember-flexberry@2.6.0, ember-flexberry@3.6.0 и ember-flexberry-data@2.6.0, ember-flexberry-data@3.6.0

Flexberry Ember 2.6.0 Release

С полным списком изменений можно ознакомиться в журналах изменений для ember-flexberry@2.6.1 и ember-flexberry-data@2.6.0.

Добавлено в 2.6.0

  • Компонент flexberry-lookup теперь генерирует событие lookupOnChange в сервисе LookupEvents при смене значения.
  • Компонент flexberry-validationsummary теперь поддерживает динамическое добавление свойств с массивами ошибок при валидации с испольованием аддона ember-validations.
  • Параметр isNullable в компоненте flexberry-checkbox для отображения промежуточного состояния компонента.
  • Настройки списков можно задавать для класса модели, они будут применяться, если не задано других настроек списка. Для добавления настроек в приложение используйте команду ember g default-user-setting [model-name].

Исправлено в 2.6.0

  • Компонент flexberry-lookup не вызывает экшен updateLookupAction при выборе значения в модальном окне.
  • Отображение уведомлений о сохранении на формах редактирования.

Важные изменения

  • Зависимость от bower-пакета semantic-ui-daterangepicker, которая использовалась в компоненте flexberry-datepicker, заменена на bower-пакет daterangepicker.
  • Удалён мобильный шаблон компонента flexberry-lookup.

Flexberry Ember 3.6.0 Release

С полным списком изменений можно ознакомиться в журналах изменений для ember-flexberry@3.6.0, ember-flexberry-data@3.6.0 и ember-flexberry-security@3.6.0.

Добавлено в 3.6.0

  • Изменения из соответствующих 2.6.0 версий.
  • Поддержка 3 версии эмбера в аддоне ember-flexberry-security.

Изменено в 3.6.0

  • Улучшения пользовательского интерфейса генерируемых приложений.

Исправлено в 3.6.0

  • Расчет позиции выпадающего меню компонента flexberry-lookup в режиме dropdown.

Приглашение в летнюю Школу веб-разработчиков

Приглашаем в летнюю Школу веб-разработчиков

Бесплатное онлайн-обучение созданию веб-приложений от компании «Новая платформа», разработчика платформы Flexberry. 🔥 Всего за месяц вы освоите востребованный навык быстрого создания качественных приложений с использованием одного из JavaScript-фреймворков.

⏱ Начало обучения 16 августа Прием заявок на бесплатные места до 13 августа

✅ Для кого:

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

✅ Условия: Обучение бесплатное. Прием по результатам тестирования. По окончании - сертификат о прохождении Школы веб-разработчиков. Лучшим студентам мы предложим стажировку и официальное трудоустройство в компании «Новая платформа» или компаниях-партнерах с возможностью удаленной работы.

✅ Что будет на курсе:

  • основы функционирования и архитектура современных одностраничных (SPA) веб-приложений
  • создание веб-приложений с использованием фреймворка Ember.js
  • управление сборкой, тестированием и развертыванием веб-приложений, в том числе с использованием Docker
  • знакомство с технологической платформой Flexberry

✅ В результате вы:

  • познакомитесь с методами и лучшими практиками разработки сложных одностраничных (SPA) веб-приложений
  • освоите инструменты создания, тестирования, отладки и развертывания веб-приложений на основе фреймворка Ember.js
  • узнаете, как можно в разы ускорить разработку сложных веб-приложений с использованием технологической платформы Flexberry
  • сможете пройти стажировку и устроиться на работу в компании-разработчики ПО с возможностью удаленной работы
  • получите сертификат о прохождении Школы веб-разработчиков

✅ Когда: ⏱Старт 16 августа 2021 г. Продолжительность обучения 1 месяц

✅ Формат:

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

Обучение бесплатное. Отбор по результатам тестирования.

✅ Для обучения необходимо:

  • обладать базовыми знаниями HTML, CSS, JavaScript
  • желательно наличие опыта использования CSS-фреймворков и CSS-препроцессоров
  • желательно иметь опыт работы с СУБД и понимать принципы функционирования бэкенда
  • знать английский язык на уровне чтения технической документации
  • готовность уделять обучению до 20 часов в неделю на протяжении одного месяца

✅ Как подать заявку: Прием заявок до 13 августа 23:59 👉🏻👉🏻👉🏻 Регистрация и входное тестирование здесь: https://forms.gle/CwaLPWqt2FrjqMrq8

✉ Если у вас остались вопросы по обучению, пишите на job@neoplatform.ru

Завершена работа над подсистемой AuditBigData

Новые проекты ставят новые вызовы перед технологической платформой Flexberry. Аудит изменения данных - одна из самых объёмных в плане данных частей приложений с высокой интенсивностью работы с данными.
Командой Flexberry был реализован новый способ организации данных аудита: хранение данных аудита в одной append-only-таблице. Данная архитектура, с одной стороны, является дружественной к BigData-хранилищам, с другой стороны, упрощает конфигурацию и для РСУБД. Для обеспечения максимальной совместимости с реализованными проектами при проектировании новой схемы хранения данных аудита был предусмотрен вариант использования различных хранилищ, как реляционных, так и BigData.
В качестве стандартной реализации “из коробки” новая реализация аудита была адаптирована под следующие варианты хранилища:

  • Microsoft SQL Server
  • PostgreSQL
  • ClickHouse

В случае использования BigData решения на основе ClickHouse пользователи могут получить максимальную скорость работы подсистемы аудита. Однако следует учесть, что согласованность данных в данном случае реализуется на программном уровне веб-приложения. В случае использования реляционного хранилища одного типа с основной базой данных приложения, пользователи получают работу подсистемы аудита в одной транзакции с изменяемыми данными - согласованность данных обеспечивается на уровне РСУБД, что считается более надёжным.

Разработка AuditBigData ведётся на GitHub в открытом репозитории. Готовый NuGet-пакет публикуется в публичную галерею.

Команда Flexberry принимает участие в предакселераторе Архипелаг 2121

Этим летом проходит интенсив Архипелаг 2121. Данное мероприятие объединяет в себе множество участников и мероприятий, которые проходят как в онлайн формате, так и в офлайне.
Команда Flexberry подала заявку на участие и сформировала видение нового направления развития - ИИ ассистент для бизнес-аналитика.
Проект Flexberry - Business analyst AI assistant прошёл предакселератор и попал в топ-100 проектов предакселератора Архипелага, получив положительные отзывы экспертов.

Выпущена очередная стабильная версия ODataService 6.1.0

Опублкован NuGet-пакет NewPlatform.Flexberry.ORM.ODataService 6.1.0.

Также под эту версию собраны все зависимости и обновлены генераторы.
При обновлении ODataService на проекте с версий 5.х до 6.х воспользуйтесь этим примером, чтобы ничего не упустить.

[6.1.0] - 2021.06.12

Новое в 6.1.0

  1. Netstandard 2.0 implementation.

[6.0.0] - 2021.06.06

Изменено в 6.0.0

  1. [BREAKINGCHANGE] Update dependencies: Microsoft.AspNet.OData (NewPlatform.Flexberry.AspNetCore.OData) to 7.5.1, Microsoft.OData.Core to 7.7.2, NewPlatform.Flexberry.ORM to 6.0.

[5.2.0] - 2021.06.03

Новое в 5.2.0

  1. Microsoft .NET Framework 4.6.1 compiled assemblies.
  2. Batch update MessageQuotas.MaxOperationsPerChangeset and MessageQuotas.MaxReceivedMessageSize parameters.

Изменено в 5.2.0

  1. Removing files through file providers.
  2. Add additional edm mapping into model builder.

Исправлено в 5.2.0

  1. Batch update InternalServerError event handling.
  2. SafeLoadDetails for models with TypeUsage.
  3. Batch update CallbackAfterCreate, CallbackAfterUpdate, CallbackAfterDelete call.
  4. SafeLoadDetails for partial loaded agregator.

[5.1.0] - 2020.05.03

Новое в 5.1.0

  1. Handle httpResponseException with OdataError wrapped in targetInvocationException.
  2. Support $batch request for transactional update data objects.
  3. Support for limits on master details.
  4. Support for limits on pseudodetails.
  5. Decode Excel export column name.
  6. HttpConfiguretion MapDataObjectRoute() extension method.

Изменено в 5.1.0

  1. JavaScriptSerializer replaced with Newtonsoft.Json.JsonConvert for better performance.
  2. [BREAKINGCHANGE] Method MapODataServiceDataObjectRoute now requires HttpServer as parameter.
  3. At creation of dynamic views of the master in them are added with primary keys.
  4. Use common DataObjectCache for all sql queries per http request.
  5. [BREAKINGCHANGE] Details BS not apply changes in agregator. Use BS for agregator when details changed.
  6. Refactor DataObjectControllerActivator to simplify overriding DOC initialization.
  7. Mapping only selected properties on getting objects.
  8. [BREAKINGCHANGE] The namespace of api-extensions is changed to NewPlatform.Flexberry.ORM.ODataService.WebApi.Extensions.
  9. [BREAKINGCHANGE] The namespace of api-controllers is changed to NewPlatform.Flexberry.ORM.ODataService.WebApi.Controllers.
  10. [BREAKINGCHANGE] The namespace of GenericCorsPolicyProvider is changed to NewPlatform.Flexberry.ORM.ODataService.Cors.
  11. [BREAKINGCHANGE] HttpConfiguration MapODataServiceDataObjectRoute extension method is marked obsolete.
  12. Code unification with Microsoft.AspNetCore.OData.

Исправлено в 5.1.0

  1. Fix error with POST request and header “Prefer”.
  2. Getting objects by primary key with using $select and $expand query options.
  3. Loading masters with common DataObjectCache.
  4. Naming of details when exporting data to Excel.
  5. Call BS for agregator when details changed in batch requests.
  6. WebFile type support in batch requests.
  7. Fix error on creation DataObject with pseudodetail field defined.
  8. Loading masters with not stored property in batch requests.
  9. Using ObjectStatus instead of private collection to determine if object is created.

Выпущены очередные стабильные версии Flexberry ORM: 5.1.0, 6.0

Опублкован NuGet-пакет Flexberry ORM 5.1.0

Это последняя версия, которая собирается только под Microsoft .NET Framework 4.5. Последующие версии будут совместимы с .NET Standard 2.0.

Изменения в ORM 5.1.0

Новое в 5.1.0
  • FunctionBuilder implements BuildLike(VariableDef, string) functions.
  • DbTransactionWrapper class to wrap IDbConnection and IDbTransaction.
  • Interfaces IConverterToQueryValueString and IConvertibleToQueryValueString to control the conversion of objects to a query string.
  • Interfaces INotifyUpdateObjects, INotifyUpdateObject, INotifyUpdateProperty and INotifyUpdatePropertyByType for notify when data is updates.
  • Support of postgres table suffix and prefix modifiers.
  • Differ table modifiers from and join expressions.
  • Property AuditService.DetailedLogEnabled to disable audit log info.
  • Interface IExportStringedObjectViewService for fast export service based on ObjectStringDataView type.
Изменено в 5.1.0
  • ChangesToSqlBTMonitor now split queries by ‘;’.
  • Signatures of the method GenerateQueriesForUpdateObjects and its overloads.
  • Upgraded Npgsql version to 3.2.6.
  • Optimize left join with SQLDataService.GenerateSQL methods for some cases.
  • Moved group audit from SQLDataService to AuditService.
Исправлено в 5.1.0
  • Parsing nullable guids with PKHelper.GetKeys method.
  • Getting property storage name when resolving circular dependencies.
  • Getting Unity container by replace UnityFactory.CreateContainer to UnityFactory.GetContainer.
  • Loading details to delete on deleting aggregator object (using single transaction).
  • Appending view properties from not stored prop expression.
  • Updating empty array via SQLDataService.UpdateObjects (connections remain opened).
  • Updating array with no changes via SQLDataService.UpdateObjects (connections remain opened).
  • Incorrect altered state of masters after loading in some cases.
  • Setting LoadingState.Loaded to DataObject after loading.
  • Objects updating order if exists cycle in dependencies graph of them.
  • DbTransactionWrapper commit and rollback over expired connections.
  • Null GetHandler or SetHandler via cache dictionary.
  • Rethrowing exception while handling special scenario via UpdateObjects.
  • Fix loading __PrimaryKey property of NotStored master.
  • Fix InitDataCopy for already loaded details.
  • Removed usage of DataServiceProvider.DataService for ExternalLangDef.
  • Auditing objects with Unaltered status and Deleted not presented in database.
  • Removed memory lock by business server (possible memory leakage).
  • Removed caching business server (fix multi-threading).
  • Getting new instance of audit data service on every write audit operation.
  • Getting inherited business servers.
  • Concurrent getting business servers.
  • Ordering in PostgresDataService when used RowNumber.

Опублкован NuGet-пакет Flexberry ORM 6.0.0

Изменения в ORM 6.0.0

Новое в 6.0.0
  • .NET Standard 2.0 implementation. NuGet package contains net45 and netstandard2.0 targets.
Изменено в 6.0.0
  • [BREAKINGCHANGE] MSSQLDataService, PostgresDataService, OracleDataService in it’s own NuGet packages.
  • [BREAKINGCHANGE] ToolXML.DataObject2XMLDocument uses ToolBinarySerializer for serialize DynamicProperties.
  • [BREAKINGCHANGE] CurrentUserService support only windows users.
  • [BREAKINGCHANGE] DataServiceProvider.IsWebApp now always return false.
  • [BREAKINGCHANGE] ChangesToSqlBTMonitor class moved to ICSSoft.STORMNET.Business assembly.
  • [BREAKINGCHANGE] DRDataService class moved to ICSSoft.STORMNET.Business.MSSQLDataService assembly.
  • [BREAKINGCHANGE] Assembly ExternalLangDef renamed to ICSSoft.STORMNET.Business.ExternalLangDef.
  • [BREAKINGCHANGE] Assembly CurrentUserService renamed to NewPlatform.Flexberry.ORM.CurrentUserService.
  • [BREAKINGCHANGE] Assembly UnityFactory renamed to NewPlatform.Flexberry.ORM.UnityFactory.
Удалено в 6.0.0
  • Information.GetPropertyDataFormat method.
  • [BREAKINGCHANGE] CurrentWebHttpUser class.
  • ServiceContract for IAudit, IAuditWcfService interfaces.
  • RemoteAuditController class.
  • CurrentUserFromLockService class.
  • ICSSoft.STORMNET.Business.ODBCDataService assembly.
Исправлено в 6.0.0
  • ControlProviderAttribute(string) constructor ignores type loading error.
  • Multiple concurrency fixes.

Инструменты генерации

Также были обновлены инструменты генерации, поэтому важно обновить Flexberry Designer до последней версии с сайта https://designer.flexberry.net.

Важно учесть при обновлении

Наиболее важными пунктами при обновлении ORM до версии 6 являются следующие:

  • Пакета NewPlatform.Flexberry.ORM теперь недостаточно для функционирования системы - для каждой конкретной СУБД теперь есть свой отдельный пакет, например, NewPlatform.Flexberry.ORM.PostgresDataService.
  • CurrentUserService больше не содержит реализацию для web, если нужно, переопределяйте на прикладном уровне.
  • Переименованы некоторые сборки, что потребует изменений в конфигурационных файлах.

В качестве примера можно использовать вот этот PR.

Исходный код

Исходный код Flexberry ORM доступен на GitHub под лицензией MIT. Изменения относительно версии 5.0.0 можно оценить по этому PR. Если есть необходимость внести исправление в код ORM, это можно сделать следующим образом:

  • Добвить issue с описанием проблемы или предложения
  • Сделать Fork репозитория
  • В этом форке выполнить доработку, добавить юнит-тест
  • Создать Pull Request в upstream-репозиторий Flexberry ORM
  • По аналогичной схеме внести доработки в документацию и сделать PR в репозиторий с документацией

Реализована интеграция Flexberry Designer Online с GitHub Actions

Инструмент проектирования Flexberry Designer Online теперь позволяет генерировать исходный код по UML диаграммам с использованием инфраструктуры GitHub благодаря GitHub Actions.
Благодаря такому решению запускать процесс генерации можно прямо из GitHub-репозитория, лог генерации также хранится в контексте конкретного запуска GitHub Actions.
Workflow GitHub Action выполняет следующие действия:

  • Установка инструментария генерации и сборки
  • Генерация (перегенерация) исходного кода для привязанного проекта Flexberry Designer Online (метаданные загружаются при каждой генерации)
  • Commit и push сгенерированного исходного кода в текущий git-репозиторий
  • Сборка ember-приложения с офлайн-хранилищем, commit и push в ветку gh-pages

Workflow для генерации описан в файле .github/workflows/generator.yml.

Выпущены версии ember-flexberry@2.5.0, ember-flexberry@3.5.0 и ember-flexberry-data@2.5.0, ember-flexberry-data@3.5.0

Выпуск очередных версий Flexberry Ember состоялся, полный список изменений можно найти в журналах изменений для соответствующих версий:

Коротко о главном

Перед обновлением обратите внимание на разделы с описанием важных изменений в ember-flexberry и ember-flexberry-data.

Это могут заметить ваши пользователи

  • В компоненте flexberry-objectlistview появилось поле ввода, в которое можно ввести номер нужной страницы и перейти к ней.
  • Дизайн таблицы в окне экспорта списка в Excel и настроек столбцов списка был немного изменен.
  • В мобильной версии компонента flexberry-objectlistview теперь отображается текущая сортировка списка, при выделении одной строки списка появляется меню с возможностью выбора всех строк, и обновлен дизайн блока со списком страниц.

Это может оказаться вам полезным

  • В компоненте flexberry-file добавлена возможность проверки типов файлов и задания ограничения размера файла не только в байтах.
  • Экшены confirmDeleteRow и confirmDeleteRows теперь могут возвращать промис.
  • Можно оптимизировать иерархические списки для уменьшения количества запросов.

Взгляд в будущее

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

Выпущены версии ember-flexberry@3.4.0 и ember-flexberry-data@3.4.0

Рады представить вашему вниманию версию Flexberry Ember с новой темой оформления, получившей название ghost. В следующих версиях мы продолжим прогрессивное развитие всех тем оформления, выпуск этой верии можно считать лишь завершением первого этапа.

Изменения в версиях ember-flexberry@3.4.0 и ember-flexberry-data@3.4.0

Основные изменения этих версий связаны с добавлением новой темы оформления, полный список изменений можно найти в журналах изменений: для ember-flexberry@3.4.0 и для ember-flexberry-data@3.4.0.

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

Обновление с версии ember-flexberry@3.3.0

Этот процесс не автоматизирован, поэтому некоторые действия необходимо выполнить вручную.

Обновление зависимостей

Для обновления установленной версии ember-flexberry рекомендуется использовать команду ember install ember-flexberry@3.4.0, эта команда, кроме обновления версии ember-flexberry, также обновит и его зависимости.

Если в процессе обновления зависимостей произошла ошибка, или вы по какой-либо причине не можете воспользоваться этой командой, после обновления установленной версии ember-flexberry запустите команду ember generate ember-flexberry, она также обновит зависимости ember-flexberry.

Настройка приложения

Кроме обновления зависимостей, необходимо обновить настройки тем оформления и сборки приложения.

  • Обновите содержимое файла theme.config, находящегося в корневой директории вашего приложения, содержимым из файла node_modules\ember-flexberry\blueprints\flexberry-core\files\theme.config.
  • Обновите содержимое файла theme.less, находящегося в директории app\styles, содержимым из файла node_modules\ember-flexberry\blueprints\flexberry-core\files\__root__\styles\theme.less.
  • Замените импорт стилей ember-flexberry в файле app.less, находящегося в директории app\styles.

Было:

@import 'src/semantic';
@import 'node_modules/ember-flexberry/addon/styles/addon';

Стало:

@import 'src/flexberry-imports';
  • Добавьте настройки сборки приложения в файл ember-cli-build.js, находящийся в корневой директории вашего приложения.

Было:

let app = new EmberApp(defaults, {
  lessOptions: {
    paths: [
      'bower_components/semantic-ui'
    ]
  }
});

Стало:

let app = new EmberApp(defaults, {
  lessOptions: {
    paths: [
        'bower_components/semantic-ui',
        'node_modules/ember-flexberry-themes',
    ]
  },
  postcssOptions: {
    compile: {
      enabled: false,
      browsers: ['last 3 versions'],
    },
    filter: {
      enabled: true,
      plugins: [
        {
          module: autoprefixer,
          options: {
            browsers: ['last 3 versions']
          }
        }
      ]
    }
  }
});

Альтернативный вариант обновления

Для обновления настроек тем оформления и сборки приложения можно выполнить перегенерацию приложения, запустив следующую команду:

ember generate flexberry-application app --metadata-dir vendor/flexberry

Чтобы использовать тему оформления ghost, можно выполнить перегенерацию приложения, добавив в команду параметр --new-theme true:

ember generate flexberry-application app --metadata-dir vendor/flexberry --new-theme true

Более подробную информацию по переходу на тему оформления ghost читайте в этом руководстве.

Выпущены версии ember-flexberry@2.3.0, ember-flexberry@2.4.0 и ember-flexberry@3.3.0

Версии ember-flexberry@2.3.0 и ember-flexberry-data@2.3.0

Эти версии не включают больших изменений, в основном это исправления, накопившиеся с последних выпусков.

Со всеми изменениями можно ознакомиться в журналах изменений соответствующих версий, для ember-flexberry@2.3.0, и для ember-flexberry-data@2.3.0.

Версии ember-flexberry@3.3.0 и ember-flexberry-data@3.3.0

Эти версии также включают исправления, накопившиеся с последних выпусков, и изменения из соответствующих 2.3.0 версий.

Со всеми изменениями можно ознакомиться в журналах изменений соответствующих версий, для ember-flexberry@3.3.0, и для ember-flexberry-data@3.3.0.

Версии ember-flexberry@2.4.0 и ember-flexberry-data@2.4.1

Список изменений этих версий получился довольно внушительным, немалую его часть внесли наши коллеги с прикладных проектов.

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

  • Локализованы и расширены условия фильтрации на списках, теперь их можно использовать без собственных доработок!
  • Расширены возможности настройки сервиса логирования.
  • В компоненте flexberry-file добавленна возможность работы со значениями в формате base64.

Со всеми изменениями можно ознакомиться в журналах изменений соответствующих версий: для ember-flexberry@2.4.0 и для ember-flexberry-data@2.4.1.

Важные изменения этих версий

Зависимость от пакета NewPlatform.Flexberry.ORM.ODataService

Для исправления проблем экспорта в Excel списков, в именах столбцов которых используются запятые, добавлена кодировка имен столбцов. Для корректной работы функции экспорта на сервере необходимо обновить пакет NewPlatform.Flexberry.ORM.ODataService до версии 5.1.0.

display: none !important

Удален !important в свойстве display из класса hidden в стилях аддона. Это определение мешало правильному вычислению направления для открытия выпадающего списка в компоненте flexberry-dropdown.

Это изменение повлияет на стили в вашем приложении, если у вас используется разметка, генерируемая по умолчанию, для элемента переключения сайдбара приложения. Для исправления добавьте в стили вашего приложения следующее определение:

.text-menu-hide.hidden, .text-menu-show.hidden {
  display: none;
}

Другим вариантом решения будет обновить разметку и код методов для элемента переключения сайдбара в шаблоне приложения:

<a {{action "toggleSidebar"}}
  class="launch icon item"
  title={{t "forms.application.header.menu.sitemap-button.title"}}>
  <i class="sidebar icon text-menu-show">
    <span class="text_menu">
      {{t "forms.application.header.menu.show-menu.caption"}}
    </span>
    <span class="text_menu hidden-text hidden">
      {{t "forms.application.header.menu.hide-menu.caption"}}
    </span>
  </i>
</a>

В мобильном шаблоне приложения:

<a {{action "toggleSidebarMobile"}}
  class="launch icon item mobile"
  title={{t "forms.application.header.menu.sitemap-button.title"}}>
  <i class="sidebar icon text-menu-show"></i>
</a>

В контроллере приложения:

toggleSidebar() {
  let sidebar = Ember.$('.ui.sidebar.main.menu');
  sidebar.sidebar('toggle');

  Ember.$('.full.height').css({
    transition: 'width 0.35s ease-in-out 0s',
    width: sidebar.sidebar('is visible') ? '100%' : `calc(100% - ${sidebar.width()}px)`,
  });

  Ember.$('.sidebar.icon .text_menu').toggleClass('hidden');
  Ember.$('.sidebar.icon').toggleClass('text-menu-show');
  Ember.$('.sidebar.icon').toggleClass('text-menu-hide');
  Ember.$('.bgw-opacity').toggleClass('hidden');
},

toggleSidebarMobile() {
  Ember.$('.ui.sidebar.main.menu').sidebar('toggle');

  Ember.$('.sidebar.icon').toggleClass('text-menu-show');
  Ember.$('.sidebar.icon').toggleClass('text-menu-hide');
  Ember.$('.sidebar.icon').toggleClass('hidden-text');
  Ember.$('.bgw-opacity').toggleClass('hidden');
},
Изменение в пакетном сохранении

При сохранении моделей с использованием метода batchUpdate для всех моделей будет вызван метод save с опцией softSave, реализованный в базовом классе моделей из ember-flexberry-data. Просто знайте об этом при обновлении версии и использовании пакетного сохранения.

Мастер-класс по проектированию информационных систем с использованием языка UML

Мастер-класс по проектированию информационных систем с использованием языка UML

21 января 2020 года пройдёт вебинар на тему «Мастер-класс по проектированию информационных систем с использованием языка UML».

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

Ведущий вебинара: Хаберев Евгений

Зарегистрироваться на вебинар можно по ссылке: https://flexberry.timepad.ru/event/1222266/

Приглашайте друзей и знакомых, кому этот вебинар был бы интересен!

Добавлена новая услуга по быстрой разработке прототипа

Очень многие люди боятся публичных выступлений. Представьте ситуацию: вы идёте на важные переговоры с потенциальным заказчиком. Ваша цель - договориться о достаточно дорогом проекте по разработке информационной системы. Вот тут как раз важно хорошо подготовиться эмоционально и не побояться выступления.
Что же рекомендуют психологи?
Во-первых, публичные выступления - это такой же навык, как, например, умение хорошо петь. Существуют курсы ораторского мастерства, тренинги и просто хорошие книги. Не поленитесь перед важным выступлением ознакомиться с базовыми приёмами работы с публикой. Возможно, сосредоточившись на этих рекомендациях, вы тем самым снимете страх неопределённости и будете меньше волноваться. Во-вторых, практика и ещё раз практика. Чем больше вы выступаете, тем проще это даётся. Наверное, это можно сравнить с прыжками с парашютом. Для большего эффекта рекомендуется записывать свои выступления на камеру и обязательно просматривать, анализировать. Это позволит выявить типичные ошибки и исправить их.
В-третьих, перед выступлением важно хорошо выспаться, настроиться эмоционально, решить все вопросы с естественными потребностями, как бы смешно это ни звучало. Человеческий организм в состоянии стресса может усиливать имеющийся дискомфорт и, даже если это позволяет забыть о страхе, то публика будет считывать состояние докладчика и делать выводы даже неосознанно.
И самое важное - хорошая подготовка к выступлению. Если вы рассказываете о чём-то с хорошим пониманием дела, то это почувствует и аудитория, а в ответ на положительную реакцию аудитории страх, как правило, снижается. Хорошая презентация (мало букв и больше схем) - это половина успеха. Если возвращаться к примеру с переговорами, вашей уверенности и успеху в целом, помимо презентации, в переговорах хорошо будет способствовать демонстрация работающего прототипа информационной системы, которую вы хотите сделать. Прототип, разумеется, должен оставлять ощущение прототипа - иначе будет сложно объяснить зачем вам такой бюджет.
Этот же пример хорошо подходит и для студентов, которые идут сдавать свои курсовые и выпускные квалификационные работы и даже для стартаперов, презентующих свой проект.
PS: Если так случилось, что вам действительно нужен работающий прототип программы для демонстрации, то команда проекта Flexberry Quick готова реализовать такой прототип недорого и всего за 48 часов.

Новости о подсистеме полномочий Flexberry

Flexberry Security - подсистема полномочий технологической платформы Flexberry.

Flexberry Security теперь совместима с .NET Core

Продолжается работа по переводу исходного кода серверной части платформы Flexberry на .NET Standard 2.0. На этот раз подготовлена для испытаний версия NuGet-пакета NewPlatform.Flexberry.Security - 3.0.0-alpha01: https://www.nuget.org/packages/NewPlatform.Flexberry.Security/3.0.0-alpha01.

Security Console с поддержкой PostgreSQL

Приложения, разработанные на Flexberry Winforms для настройки полномочий используют отдельную программу - Security Console. Изначально Security Console поддерживала в качестве СУБД только Microsoft SQL Server, что объясняется её большой популярностью в Windows-среде. Структура данных Flexberry Security универсальна для всех фреймворков: Flexberry Winforms, Flexberry ASP.NET и Flexberry Ember. Несмотря на наличие в Flexberry ASP.NET и Flexberry Ember средств управления полномочиями непосредственно в создаваемом приложении, в некоторых случаях удобно использовать внешнее настольное приложение для работы с настройками полномочий. Одним из ключевых преимуществ Security Console при разработке и сопровождении информационных систем является функция записи SQL-скриптов, позволяющая выполнить перенос настроек между базами данных. Для удобства использования Security Console теперь можно установить в виде NuGet-пакета NewPlatform.Flexberry.Security.Applications. После установки, приложение располагается в packages, в каталоге с именем пакета и номером версии, далее во вложенном каталоге tools. Перед использованием обязательно нужно настроить строку соединения с БД в конфигурационном файле.

Документация по FunctionBuilder

Уже почти год назад в Flexberry ORM был добавлен FunctionBuilder - удобный инструмент для построения функций ограничения.

  • Устали писать громоздкие функции ограничения с помощью langdef.GetFunction()?
  • Не доверяете LinqProvider при построении функций ограничения с помощью LINQ?
  • Сталкиваетесь с опечатками в именах свойств, из-за которых ограничение не работает?
  • Хотите иметь полный контроль над выстраиваемым ограничением, но с лучшей читаемостью и меньшим количеством символов?

Предлагаем вам попробовать FunctionBuilder и ваша жизнь уже не будет прежней!

FunctionBuilder:

  • Поддерживает большинство стандартных функций языка запросов, используемых при построении ограничений
  • Предоставляет более лаконичный и типобезопасный синтаксис
  • Покрыт множеством тестов
  • Изначально разрабатывался пользователями платформы, но успешно используется несколькими проектами уже более 5 лет

Ознакомиться с описанием, примером использования и документацей по имеющимся методам можно в статье.

Все примеры в документации, где использовался langdef, были переписаны с использованием FunctionBuilder.

FunctionBuilder - новый стандарт в деле построения функций ограничений Flexberry ORM.

Новый дизайн для Flexberry Designer Online

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

Flexberry Designer Desktop также будет доступен, как и прежде.

Познакомиться с новым внешним видом Flexberry Designer Online можно уже сейчас на примере аддона ember-flexberry-designer в его Dummy-приложении на GitHub Pages.

Анонс школы разработчиков

Идёт активная разработка учебных материалов для школы разработчиков на платформе Flexberry.

О школе

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

Школа дает актуальные знания по:

  • Основам функционирования современных веб-приложений
  • Cозданию веб-приложений в архитектуре Single Page Application с использованием фреймворков Ember.js и ASP.NET Web API
  • Использованию средств командной разработки приложений
  • Автоматизации создания SPA-приложений с использованием платформы Flexberry

Для кого

Школа рассчитана на разработчиков, которые имеют опыт разработки веб-приложений на различных технологиях и знакомы с основными технологиями разработки веб-приложений.

Если у Вас нет опыта веб-разработки, рекомендуем для начала изучить базовые технологии, которые используюся в веб-разработке и при разработке на платформе Flexberry.

Основные требования к обучающимся

Знание на базовом уровне, опыт работы с:

  • Языки разметки: HTML, XML
  • Таблицы стилей: CSS
  • Препроцессоры таблиц стилей: LESS
  • JavaScript, библиотека jQuery, работа с DOM, JSON
  • СУБД (желательно MS SQL Server, Postgres), язык SQL

Формат проведения школы

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

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

Flexberry ORM для .NET Core

Введение

Компания Microsoft развивает платформу .NET в сторону кроссплатформенности за счёт новой имплементации под названием .NET Core. На текущий момент актуальной является версия .NET Core 2.0. Она не совместима напрямую с привычным нам .NET Framework 4.5, поскольку он был реализован исключительно для работы под Microsoft Windows. Также она не совместима и с mono, который базируется на API .NET Framework и реализует кроссплатформенность исполнения .NET-программ.

Чтобы не отставать от трендов мы проделали работу по обновлению нашего ключевого элемента всех разрабатываемых на платформе систем - компонентов доступа к данным - Flexberry ORM.

Новый Flexberry ORM

Подготовлена alpha-версия NuGet-пакетов Flexberry ORM 6. Ключевой особенностью данной версии является перевод формата проектов на .NET Standard 2.0. Данная модификация позволяет использовать один и тот же код в проектах на .NET Core 2 и в проектах на .NET Framework 4.6.1+ (это будет минимальная версия, поддерживаемая ORM 6). Второй важный момент - Flexberry ORM теперь поставляется в виде набора пакетов. Центральным звеном является пакет NewPlatform.Flexberry.ORM.Abstractions, который является основной зависимостью в реализациях под конкретные СУБД:

  1. NewPlatform.Flexberry.ORM.PostgresDataService
  2. NewPlatform.Flexberry.ORM.MSSQLDataService
  3. NewPlatform.Flexberry.ORM.OracleDataService

Таким образом, если прикладное решение реализует поддержку только одной СУБД, то в проектах не будет присутствовать следов лишних провайдеров СУБД.

Изменения можно оценить в этом PR.

Обратная связь

На текущий момент реализация находится на стадии испытаний, поэтому большая просьба ко всем заинтересованным попробовать восопользоваться представленным NuGet-пакетом и представить нам краткий отчёт: получилось или нет, какие возникли сложности, проблемы, что с производительностью. Сообщения можно отправлять на почту команды поддержки.

Добавлена встроенная поддержка транзакционных запросов в Flexberry Ember

С целью реализации встроенной поддержки транзакционных запросов были выпущены следующие preview-пакеты.

Выпущена версия NewPlatform.Flexberry.ORM.ODataService 5.1.0-alpha01

Добавлена поддержка batch запросов. Внимание! Сменилась сигнатура метода HttpConfiguration.MapODataServiceDataObjectRoute(), пример изменения кода после обновления.

Выпущена версия ember-flexberry-data@2.2.0-beta.0

В версию вошли следующие изменения:

  • добавлено:
    • Adapter.Odata:
      • добавлен метод batchUpdate для отправки запроса на добавление/изменение/удаление нескольких моделей одной транзакцией (документация)
  • примечание:
    • для корректной работы batchUpdate на бакенде необходимо поставить версию NewPlatform.Flexberry.ORM.ODataService не ниже 5.1.0-alpha01

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Выпущена версия ember-flexberry@2.2.0-beta.0

В версию вошли следующие изменения:

  • добавлено:
    • компонент flexberry-lookup:
      • в режиме autocomplete выбирается первое найденное значение при нажатии кнопки Enter
      • добавлен класс для выпадающего списка в режиме dropdown
      • добавлена возможность лукапу в строке групедита указать функцию ограничения, зависящую от других значений в строке
    • компонент flexberry-file:
      • добавлена возможность задать настройки для модального окна предпросмотра
    • списковые компоненты:
      • добавлена возможность добавлять несколько списков на одну форму (инструкция, пример на стенде, на форме редактирования первого списка расположено несколько списков)
  • breaking changes:
    • в компоненте flexberry-objectlistview переименовано свойство _availableCollExpandMode в availableCollExpandMode. Нужно поправить в шаблонах если оно где-то использовалось.
    • из технологического edit-form контроллера удален миксин flexberry-objectlistview-on-edit-form-controller, который использовался для размещения olv на форме редактирования, для сохранения старого поведения необходимо добавить миксин ‘ember-flexberry/mixins/flexberry-objectlistview-on-edit-form-controller’ к контроллерам форм с olv на форме редактирования
    • при создании новых форм с olv на форме редактирования желательно делать их по инструкции для нескольких olv на форме редактирования, даже если olv один (если есть возможность, то старые формы также желательно перевести по инструкции на использование миксинов для нескольких olv на форме редактирования)

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Flexberry ASP.NET 3.1.0 Release

Изменения в Flexberry ASP.NET 3.1.0

Важные изменения

  • Добавлено поле Comment на технологических формах редактирования объектов полномочий, необходимо обновить пакет NewPlatform.Flexberry.Security до версии 2.1.0.

Добавлено

  • Поддержка Nullable-типов для интеграции пользовательских контролов в WebObjectListView.
  • Делегат UniqueKeySaltBuilderDelegate для изменения ключа настроек в WebObjectListView.
  • Сервис ConcurrentDictionarySessionService иеперь очищает истекшие сессии.
  • Статический метод SetAvailableItemsOnPageCounts в классе Pager.
  • Операция FullViewFilter для фильтрации по всем полям в WebObjectListView.
  • Операция HierarchyDisableAutoSelectChildren для отключения автоматического выбора дочерних элементов в иерархическом WebObjectListView.

Исправлено

  • Выполнение валидации на технологических формах.
  • Фильтрация по перечислению, содержащему пустое значение, в WebObjectListView.
  • Кеширование сервиса пользовательских настроек.
  • Фильтрация с использованием контрола DatePicker в WebObjectListView.
  • Закрытие технологических форм редактирования объектов полномочий.
  • Выбор схожих объектов с использованием автодополнения в Lookup контролах.

Изменено

  • Если всплывающая подсказка для ячейки WebObjectListView равна тексту ячейки, всплывающая подсказка будет удалена.
  • Расширен интерфейс ISessionService.

Удалены неиспользуемые сборки

  • ICSSoft.STORMNET.Business.BFDataService.dll
  • ICSSoft.STORMNET.Business.HttpDataService.dll
  • ICSSoft.STORMNET.EBSI.dll
  • ICSSoft.STORMNET.LockServices.dll
  • IIS.Validation.dll
  • ImageResizerKernel.dll
  • SmartScroller.dll

Flexberry Ember 2.1.0/3.1.0 Release

Выпущена версия ember-flexberry-data@2.1.0

В версию вошли следующие изменения:

  • добавлено:
    • зависимость от ember-moment
    • утилита Information:
      • добавлен метод isOrdered для проверки атрибутов
    • Adapter.Odata:
      • добавлены методы callEmberOdataFunction и callEmberOdataAction для получения ember моделей с бэкенда

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Выпущена версия ember-flexberry-data@3.1.0

В версию вошли следующие изменения:

  • добавлено:
    • изменения из версии 2.1.0

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Выпущена версия ember-flexberry@2.1.0

В версию вошли следующие изменения:

  • добавлено:
    • блюпринты для генерации приложения:
      • добавлена генерация свойства index для полей представлений
    • компонент flexberry-lookup:
      • добавлена кнопка предпросмотра
      • добавлен флаг autocompletePersistValue, отвечающий за необходимость сбрасывать текст для автокомплита при потере фокуса
      • добавлена возможность указать представление для автокомплита (необходимо, если в лукапе автокомплит происходит по вычислимому полю)
      • добавлен флаг autofillByLimit, автоматически проставляющий в лукап значение, если при применении ограничения возвращается только одна запись
    • компонент flexberry-file:
      • добавлена возможность открывать файлы вместо загрузки
    • списковые компоненты:
      • добавлена возможность скрывать кнопку установки сортировки по умолчанию
      • добавлена возможность фиксировать шапку списка (fixedHeader)
    • компонент flexberry-groupedit
      • добавлена возможность добавлять кастомные кнопки в тулбар
      • добавлена кнопка выбора всех записей
      • добавлена поддержка ordered атрибутов
  • изменено:
    • компонент flexberry-lookup:
      • в режиме dropdown теперь используется представление из свойства projection
  • исправлено:
    • миксин reload-list-mixin:
      • исправлена проблема с DatePredicate, когда условие равно neq, а значение null
      • исправлена фильтрация по null для string, number и date
    • компонент flexberry-file:
      • исправлена “крутилка” на превью, если компонент находится в модальном окне

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Выпущена версия ember-flexberry@3.1.0

В версию вошли следующие изменения:

  • добавлено:
    • изменения из версии 2.1.0
  • удалено:
    • компонент flexberry-button:
      • удалено использование миксина DomActionsMixin

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Flexberry Security 2.1.0 Release

Изменения в Flexberry Security 2.1.0

  1. Поле Comment добавлено объектам полномочий Agent и Subject.

Соответствующие изменения были выполнены в консоли администрирования полномочий.

Релиз базовых Docker-образов

Выпущены очередные технологические Docker-образы. Все образы flexberry/alt.p8… пересобраны на основе официального docker-образа ALTLinux.

Образы flexberry/alt.p8

Для mono выпущен flexberry/alt.p8-apache2-mono с новым функционалом по корректировке XML-файлов.

Образ flexberry/alt.p8-apache2 и его дочерний образ flexberry/alt.p8-apache2-mono поддерживают механизм добавления требуемых модулей apache2. Подробнее в README образа.

Также он доступен с наименованиями:

  • flexberry/alt.p8-apache2-mono:4.6.2.7-1.3.0
  • flexberry/alt.p8-apache2-mono:4.6.2.7-1.3
  • flexberry/alt.p8-apache2-mono:4.6.2.7-1
  • flexberry/alt.p8-apache2-mono:4.6.2.7

Образы pentaho 8.2

Для последней версии pentaho 8.2 собраны образы на основе ubuntu и altlinux flexberry/pentaho-official:8.2 и flexberry/alt.p8-pentaho:8.2 (для тестирования в сертифицированных решениях на основе ALTLinux).

Для образов flexberry/pentaho-official:8.2-1.0.9 и flexberry/alt.p8-pentaho:8.2-1.0.0 (документация):

  • Осуществлен переход с версии pentaho:7.1 на pentaho:8.2
  • Для корректной поддержки экспорта кириллических отчетов в PDF установлены шрифты Microsoft TrueType.
  • Удалены файлы для создания данных по-умолчанию в запускаемом Pentaho Server.
  • Удалено задание периодической проверки наличия обновлений.
  • Убрано выпадающее меню с тестовыми пользователями с экрана логина в Pentaho Server.
  • Обеспечена возможность задавать имена пароли и роли новых пользователей с удалением стандартных пользователей joe, pat, suzy, tiffany;
  • Обеспечена возможность смены пароля пользователя admin
  • Добавлены драйвера баз данных: postgresql-42.2.5, clickhouse-0.1.50 (компиляция драйвера производится при создании образа);
  • Образ позволяет в качестве административной базs данных использовать как встроенную базу HSQLDB, так и, при использовании в production, внешнюю реляционную базу (в настоящий момент postgresql).

Образы alt.p8-postgresql

Для образов flexberry/alt.p8-postgresql и flexberry/alt.p8-postgresql-postgis добавлено расширение PostgreSQL tds_fdw, которое может подключаться к базам данных, использующим протокол Tabular Data Stream (TDS), таким как базы данных Sybase и сервер Microsoft SQL.

Образ flexberry/alt.p8-nginx

Собран начальный образ nginx - flexberry/alt.p8-nginx:1.14.2-0.5.7.

Общие изменения

Все пересобранные образы собраны с тегами согласно Semantic versioning и поддерживают минорные, мажорные и версионные теги (рекомендуется в дальнейшем их использовать). Docker-образы поддерживают механизм тегирования: одному образу можно присвоить несколько тегов. По умолчанию собранный docker-образ имеет тег :latest.

Автодокументация API и улучшение поиска по документации

Отличные новости! Теперь в документации Flexberry flexberry.github.io используется поиск от Algolia. Скорее всего, вы уже не раз сталкивались с ним, ведь такой же поиск используется в документациях ember.js, React и так далее. Использование технологии позволяет быстрее находить требуемую информацию в нужной категории.

Кроме этого, для основных технологических репозиториев была настроена автоматическая документация API на основе XML-комментариев кода на C# и YUIdoc-комментариев ember-кода. Примеры документации:

Выпущена версия Flexbery Designer 2018-12-28

Версию можно скачать с сайта designer.flexberry.net.
Обратите внимание, что для генерации ember приложения необходимо в конфиге указывать нужную версию ember-flexberry аддона, по умолчанию указана ember-flexberry@2.0.0.

<appSettings>
  <add key="EmberPluginAddonName" value="ember-flexberry@2.0.0" />
</appSettings>

В данной версии обновлены плагины генерации для поддержки последних версий подсистем платформы Flexberry.

Выпущена версия Flexberry Service Bus 1.2.0

Опубликованны NuGet-пакеты и Docker-образы версий 1.2.0.

Основным направлением работ, в данной версии, была интеграция с брокером сообщений RabbitMQ. Цель этой интеграции заключается в увеличении производительности и пропускной способности обмена сообщениями, которую обеспечивает RabbitMQ, при этом, для управления маршрутизацией сообщений, используются привычные для пользователей понятия и инструменты.

В дополнении к основному направлению, были начаты работы по проектированию и реализации новых версий интерфейсов для клиентов Flexberry Service Bus. Перепроектирование этих интерфейсов, было начато, с целью четко разделить операции отправки и получения сообщений, и, операции управления маршрутизацией. Предыдущие версии интерфейсов помечены как устаревшие и не рекомендуются к использованию.

Что нового в версии Flexberry Service Bus 1.2.0

  • Для интеграции с RabbitMQ создан пакет NewPlatform.Flexberry.ServiceBus.RabbitMQ с реализацией следующих компонентов:
    • ReceivingManager - позволяет получать сообщения хранящиеся в RabbitMQ привычным для клиентов Flexberry Service Bus способом
    • SendingManager - позволяет отправлять сообщения в RabbitMQ привычным для клиентов Flexberry Service Bus способом
    • StatisticsService - собирает статистику сообщений RabbitMQ и преобразует ее в статистику Flexberry Service Bus
    • SubscriptionsManager - позволяет управлять маршрутизацией сообщений в RabbitMQ
    • SubscriptionsSynchronizer - актуализирует настройки маршрутизации сообщений в RabbitMQ
    • MessageConverter - преобразует сообщения в формат Flexberry Service Bus
    • MessageManager - позволяет управлять сообщениями хранящимися в RabbitMQ
  • Исправлена ошибка параллельного приема сообщений с группой
  • Обновлены зависимости до последних версий
  • Создан Docker-образ RabbitMQ настроенный для использования с Flexberry Service Bus

Интеграция Flexberry Service Bus и RabbitMQ

По умолчанию, Flexberry Service Bus, хранит получаемые сообщения, вместе с настройками маршрутизации, в базе данных. Использование RabbitMQ позволяет увеличить пропускную способность, когда поток сообщений велик, и скорости базы данных недостаточно. Обработка сообщений выполняется RabbitMQ, настройки маршрутизации, создаются и храняться, в базе данных, а Flexberry Service Bus переводит их в понятия RabbitMQ. При этом, для получения и отправки сообщений, можно использовать как интерфейсы Flexberry Service Bus так и интерфейсы RabbitMQ.

Для настройки интеграции Flexberry Service Bus и RabbitMQ необходимо:

Выпущена очередная стабильная версия Flexberry ASP.NET 3.0.0

Список изменений во Flexberry ASP.NET - 2.3.0

  • Изменения в зависимостях

    • Обновлен Flexberry ORM до 5.0.0. Внимание! Обновлен Unity до версии 5.x.
    • Интерфейс NewPlatform.Flexberry.Services.ICacheService заменен на NewPlatform.Flexberry.Caching.ICacheService
    • Изменены защищенные виртуальные модификаторы в NewPlatform.Flexberry.Web.Http.PlaceholderPageContentConnector
    • Обновлен Flexberry Security до версии 2.0.0, обновление по инструкции.
    • Удалены зависимости от старых классов Flexberry Security
    • Удалены кеш-декораторы для классов Flexberry Security
    • Удалена EnterpriseLibrary
    • Обновлены версии тем до 3.0.0
  • Общие изменения:

    • Исправлено исключение OutOfRangeException
    • Заменены модификаторы для методов AttachScripts, AttachStyles, AttachRawHtml на protected virtual
    • Добавлена валидация на технологические формы
    • Исправлено сохранение значений контролов во ViewState
    • Исправлено отображение кнопок сохранения в теме BlueSky в Linux
    • Обработчики lookup show и кнопки create перемещены в файл js.
    • Исправлен ArgumentOutOfRangeException при вызове метода Flush
    • Исправить обработчик window.onload в jquery.ics.js
    • Исправлен AddDynamicPageRoute на Mono
  • Изменения в генераторе ASP.NET-приложений

    • Исправлена генерация каталогов: перегенерация только для измененной части модели
  • Редактор ограничений:

    • Исправлено редактирование ограничение с детейлами
  • WOLV:

    • Исправлено удаление всех элементов после нажатия удалить в строке при всех выделенных строках
    • Исправлено открытие модального окна в строке
    • Исправлена обработка отмеченных строк на странице
    • Реализована возможность передавать на клиент ключ функции ограничения, выгруженной в сессию
    • Исправлен BaseResponseStreamFilter
    • Исправлена функция getSelectedItems для .Web.AjaxControls в flex.Wolv.CheckBoxModule.
  • LookUp:

    • Исправлено отображение кнопки просмотра в MasterEditorAjaxLookup в случае, когда в лукапе изначально выбрано значение при открытии формы
    • Исправлены параметры в URL в юникоде при открытии лукапа через ShowObjectUrl
    • Исправлено окно настройки столбцов
    • Исправлена передача title в юникоде при открытии лукапа на просмотр
    • Реализована кнопка добавления новой записи в лукапе
  • DatePicker

    • DatePicker теперь реализует IPostBackDataHandler
  • AjaxGroupEdit

    • Исправлено имя главного динамического представления

Выпущена очередная стабильная версия Flexberry Security 2.0.0

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

Изменения в Security - 2.0.0

Зависимости

  1. Пакет Flexberry.ORM обновлен до 5.0.0 (см. подробности в новости о выпуске версии ORM 5.0.0).

Новое

  1. Добавлен внутренний кеш в менеджере полномочий.
  2. Добавлено кеширование пользователей и ролей.
  3. Наряду с менеджером безопасности добавлен менеджер агентов для работы с агентами, ролями и группами.
  4. Добавлены провайдеры членства, ролей и профилей, работающие на основе новых классов безопасности.
  5. Метод bool AccessCheck (string operationId) добавлен в интерфейс ISecurityManger. Р​реализация данного метода выполнена для классов SecurityManager и DefaultSecurityManager.

Исправлено

  1. Проект переведен на .NET Framework 4.5.
  2. Все объекты полномочий теперь сериализуемы.
  3. Исправлена ​​и улучшена логика добавления и удаления фильтров в разрешениях на объекты данных.
  4. Пароль пользователя теперь хэшируется в бизнес-сервере класса Агента.
  5. Кэши для менеджеров агентов и безопасности теперь очищаются в бизнес-серверах классов полномочий.
  6. Пользовательские логины, имена ролей и имена групп теперь обрезаются перед выполнением запросов к БД полномочий. То есть например, логины «pupkin» и «pupkin » считают одинаковыми. Перечисленные имена будут храниться без пробелов в БД полномочий.
  7. Устаревшие классы полномочий (RightManager, CheckingLibrary и пр.) перенесены в пакет NewPlatform.Flexberry.LegacySecurity.

Выпущена очередная стабильная версия Flexberry ORM 5.0.0

Изменения в ORM 5.0.0

Новое

  1. Add simply (Update/Insert style) order for write audit operation.
  2. Add interface IODataExportService.
  3. Add geometry type support.
  4. Add CheckLoadedProperty generic extension methods.
  5. Add delegate to check compatible property storage types.
  6. Add PersistUtcDates property to AuditService.
  7. Add PKHelper and FunctionBuilder utilities.

Исправлено

  1. Fix for Init Custom AuditService.
  2. Fix DataService init.
  3. Fix PostgresDataService wrong access to short names dictionary in multithreading app.
  4. Fix support multithreading in View.AddProperty method.
  5. Fix error for inherited aggregator type with same storage.
  6. Fix empty file saving in PostgresDataService.

Изменено

  1. [BREAKINGCHANGE] Upgrade Unity to 5.x version.
  2. Upgrade Npgsql to 3.x version.

Удалено

  1. [BREAKINGCHANGE] Support for .NET 3.5 and .NET 4.0 has been dropped - minimal version has been upgraded to .NET 4.5.

Изменения в ODataService 5.0.0

Новое

  1. Add exception handling in user functions.
  2. Add permissions for masters and details.
  3. Add export to excel with parameters.
  4. Add the ability to export to an excel function odata.

Исправлено

  1. Fix error when query contains same properties.

Изменено

  1. Update dependencies.
  2. Update ODataService package version to according ORM package version.

Переход на .NET 4.5

В связи с тем, что основной перечень создаваемых на платформе приложений уже давольно давно был переведён на .NET 4.5, было принято решение отказаться от использования .NET 3.5 в качестве основной версии при выпуске новых релизов. Напомним, что ранее Flexberry ORM поставлялся в виде NuGet-пакета, в котором присутствовали 3 версии: net35, net40, net45. Начиная с версии Flexberry ORM 5.0.0 в NuGet-пакете останется только net45.

В чём польза

Данное решение позволяет обновить зависимости, в частности Unity и npgsql, поскольку свежие версии этих пакетов также были лишены сборок для .NET ниже версии 4.5. Также технологам открываются возможности из .NET 4.5.

Что будет с проектами на .NET 3.5 и 4.0

Если проект не может по тем или иным причинам обновить версию .NET до 4.5, то остаётся возможность использования версии Flexberry ORM 4.1.0 включительно. В случае острой необходимости, по запросу будут выполняться работы по переносу исходного кода из текущей версии в ветки со старыми версиями и выпускаться обновления.

Про сломанную обратную совместимость и NuGet

Обновление ORM до версии 5.0 требует некоторого вмешательства в прикладной набор пакетов и, иногда, в исходный код - обратная совместимость нарушена из-за обновления пакетов Unity: потребуется перенастроить конфигурационные файлы и, возможно, using-и, поскольку у них сменились некоторые неймспейсы и названия сборок. Теперь используются следующие пакеты:

<dependency id="Unity.Abstractions" version="3.3.0" />
<dependency id="Unity.Configuration" version="5.2.2" />
<dependency id="Unity.Container" version="5.8.6" />

После обновления ORM до версии 5.* эти зависимости установятся автоматически, но обязательно нужно вручную удалить пакет (через NuGet Package Manager)

<dependency id="Unity" version="[2.1.505.2]" />

В конфигурационном файле нужно выполнить следующие изменения.
Было:

<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Microsoft.Practices.Unity.Configuration" />
<!-- ... -->
<alias alias="singleton" type="Microsoft.Practices.Unity.ContainerControlledLifetimeManager, Microsoft.Practices.Unity" />

Стало:

<section name="unity" type="Microsoft.Practices.Unity.Configuration.UnityConfigurationSection, Unity.Configuration" />
<!-- ... -->
<alias alias="singleton" type="Unity.Lifetime.ContainerControlledLifetimeManager, Unity.Abstractions" />

В C# коде там где использовался неймспейс:

using Microsoft.Practices.Unity;

Теперь будет:

using Unity;

Выпущена версия ember-flexberry-data 3.0.0 и ember-flexberry 3.0.0

Переход на Ember ~3.1.3

В дальнейшем доработки в версии Flexberry Ember, которая основана на ember-cli@3.х будут выполняться в версии 3.х. В данном релизе был совершен переход с EmberJS 2.4.3 на ~3.1.3. Подробная инструкция по обновлению EmberJS и Flexberry Ember на существующем проекте будет подготовлена позже (пока можно пользоваться данными из открытых источников).

В версию ember-flexberry-data 3.0.0 вошли следующие изменения:

  • breaking changes:
    • Из Projection.Model удален механизм валидации, предоставляемый аддоном ember-validations (для валидации теперь используется другой аддон)

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

В версию ember-flexberry 3.0.0 вошли следующие изменения:

  • добавлено:
    • блюпринты для генерации приложения:
      • слияние сгенерированных файлов локализации с уже существующими
      • для моделей генерируется локализация для всех атрибутов
    • зависимости от ember-cp-validations@~3.5.2 и ember-i18n-cp-validations@~3.1.0
    • компонент flexberry-sidebar
    • компонент flexberry-sitemap
  • изменено:
    • компонент flexberry-dropdown:
      • убрано использование компонента ui-dropdown из аддона semantic-ui-ember
    • компонент modal-dialog:
      • убрано использование компонента ui-modal из аддона semantic-ui-ember
    • функция run.after переименована в runAfter и перенесена из initializer в utils
    • компонент flexberry-validationsummary:
      • свойство headerText переименовано в header
      • в шаблоне для заголовка добавлен div с классом header
    • компонент flexberry-validationmessage:
      • у свойства pointing изменено значение по умолчанию на ‘pointing’
    • контроллер edit-form выполняет валидацию до попытки сохранить модель
    • миксин flexberry-objectlistview-on-edit-form-controller:
      • свойство customFolvContent не может иметь promise в качестве значения
  • исправлено:
    • блюпринты для генерации приложения:
      • исправлена генерация длинных строк для JSCS
    • миксин flexberry-objectlistview-route:
      • присваивание текущего контроллера при переходе на форму редактирования
    • получение контроллера для списковой формы
    • flexberry-toggler компонент:
      • вложенные друг в друга toogler’ы теперь работают корректно
    • компонент flexberry-lookup:
      • настройки иерархии для lookup-dialog
      • инициализация semantic dropdown для лукапа в режиме dropdown
    • компонент flexberry-objectlistview:
      • смена локализации в мобильном режиме
      • свойство recordsTotalCount в мобильном режиме
    • компонент modal-dialog:
      • инициализация настроек
    • компонент olv-toolbar:
      • стили кнопок экспорта и настройки столбцов
  • удалено:
    • шаблоны sitemap, sitemap-node, sitemap-node-content
    • контроллер sitemap-node
    • компонент flexberry-simpleolv
    • компонент flexberry-datepicker (вместо него рекомендуется использовать компонент flexberry-simpledatetime)
    • зависимость от аддона ember-validations@~2.0.0-alpha.4
  • breaking changes:
    • компонент flexberry-objectlistview:
      • query параметры из свойства customParameters передаются по отдельности (раньше они передавались одним объектом customParameters)
    • удалена зависимость от semantic-ui-ember
    • semantic-ui обновлен до 2.3.1
    • механизм валидации был изменен, желательно перегенерировать приложение
    • компонент flexberry-lookup:
      • в шаблоне свойство items должно идти до свойства value
      • в режиме dropdown множество настроек для semantic ui, заменены на свойство dropdownSettings
    • компонент flexberry-dropdown:
      • множество настроек для semantic ui, заменены на свойство settings

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Выпущена версия ember-flexberry-data 2.0.0 и ember-flexberry 2.0.0

На смену версии 0.12.1 приходит версия 2.0.0. В дальнейшем доработки в версии Flexberry Ember, которая основана на ember-cli@2.4.3 будут выполняться в версии 2.х.

В версию ember-flexberry-data 2.0.0 вошли следующие изменения:

  • добавлено:
    • в базовом сериализаторе (Serializer.Base) добавлен метод normalize для обновления typeClass в случае полиморфной связи
    • Query language: GeometryPredicate для геометрического типа данных
  • исправлено:
    • в OData сериализаторе (Serializer.OData) исправлен метод normalize для обновления typeClass в случае полиморфной связи

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

В версию ember-flexberry 2.0.0 вошли следующие изменения:

  • добавлено:
    • блюпринты для генерации приложения:
      • генерация componentName для лукапов
    • роуты формы редактирования:
      • возможность передавать имя модели в query параметрах. Пользовательские query параметры можно передать через свойство customParameters в options экшена objectListViewRowClick
    • компонент flexberry-simpledatetime:
      • свойства defaultHour и defaultMinute для установки времени по умолчанию
    • списковые компоненты:
      • свойство для пользовательских кнопок disabled для возможности контроллировать состояние пользовательских кнопок
    • компонент flexberry-file:
      • свойство headers для добавления заголовков в запрос скачивания файла
  • исправлено:
    • списковые роуты:
      • удаление блокировки при уходе с роута
    • списковые компоненты:
      • убрана возможность нажимать неактивные кнопки путем установки фокуса и нажатия Enter
      • фильтр по колонкам с типо дата
      • применение пользовательских настроек, если query параметры не менялись
    • компонент flexberry-file:
      • меню в мобильной версии компонента
      • превью в случае, когда компонент находится внутри flexberry-groupedit
      • открытие файла вместо загрузки, если файл был удален из компонента, но еще остался на сервере
    • компонент colsconfig-dialog-content:
      • сохранение имен колонок при экспорте в excel
    • компонент flexberry-tab-bar:
      • добавление класса active к текущей вкладке
    • компонент flexberry-simpledatetime
      • установка времени после сброса значения компонента

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Выпущена версия ember-flexberry 0.12.1

[UPDATE] После выпуска версии 0.12.1 были выпущены дополнительно версии 0.12.2 и 0.12.3. В них вошли следующие изменения:

  • исправлено:
    • отсутствующие вызовы _super-методов внутри ряда технологических методов. Это могло приводить к неправильному поведению в ряде мест технологии, например, к несрабатыванию технологического хука routeWillTransition в контроллерах форм редактирования
    • работа свойства inHierarchicalMode в настройках лукапа внутри метода getLookupFolvProperties. Пример на стенде можно посмотреть тут. Документацию можно посмотреть тут
    • переход на списковую форму при наличии кастомных параметров

В версию ember-flexberry 0.12.1 вошли следующие изменения:

  • добавлено:
    • блюпринты для генерации приложения:
      • аддитивное слияние содержимого файлов локализации при прегенерации приложения
    • сервисы:
      • управление визуальным отображением загрузки данных (“крутилки”) сделано глобальным и вынесено в сервис app-state Внимание! Использование свойства loadingState и метода setLoadingState сервиса objectlistview-events переведено в состояние Deprecated до выпуска версии ember-flexberry@1.0.0! Начиная с этой версии данное свойство и метод будут удалены из сервиса objectlistview-events! Для использования сервиса app-state необходимо во всех шаблонах приложения код добавления класса {{objectlistviewEventsService.loadingState}} в разметке заменить на {{appState.state}} (в том числе в шаблоне application.hbs), а в контроллеры соответствующих форм добавить инъекцию сервиса app-state.
  • исправлено:
    • блюпринты для генерации приложения:
      • длина строк при генерации моделей не соответствовала правилам JSCS
    • списковые роуты:
      • ошибки, связанные со сбросом параметров запроса в URL
      • неправильное обращение к контроллеру при загрузке модели
    • списковые компоненты:
      • некорректно отображается элемент для выбора количества строк в IE при небольшой ширине списка
    • компонент flexberry-objectlistview:
      • вычислимое свойство colsSettingsItems перезаписывало само себя
      • не отображается сообщение об успешном сохранении настроек при экспорте в Excel
    • компонент flexberry-toggler:
      • закрытие вложенного toggler закрывало родительский toggler
      • проблемы со стилями вложенных элементов после сворачивания и разворачивания toggler
    • компонент flexberry-lookup:
      • вывод сообщения об отсутствии подходящего значения при включенном автокомплите
    • компонент flexberry-textbox:
      • компонент неправильно отображается с классом input error
    • компонент flexberry-dropdown:
      • компонент переставал работать при наличии null-значений в перечне отображаемых элементов
    • сервис user-settings:
      • неправильное отображение страниц при выключении сервиса пользовательских настроек

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Выпущена версия ember-flexberry-data 0.12.0 и ember-flexberry 0.12.0

В версию ember-flexberry-data 0.12.0 вошли следующие изменения:

  • добавлено:
    • для базового стора (Offline.Store) добавлен оналйновый стор (Projection.OnlineStore) для возможности явного переопределения методов в нем
    • для базового стора и соответственно онлайнового/оффлайнового сторов, а также для Adapter.OData реализованы методы deleteAllRecords для удаления всех записей со всех страниц Внимание! Для поддержки этого функционала в OData-бакенде должен быть реализован экшн DeleteAllSelect.
  • изменено:
    • Query language: теперь невозможно создать Query.DatePredicate с недопустимым значением даты или значением null
    • Добавлена поддержка различных типов первичных ключей в запросах к OData-бакенду Внимание! Свойство idType, для определения типа первичного ключа на бакенде, перенесено из адаптера Adapter.OData в модель Projection.Model
  • исправлено:
    • сохранение полей аудита в случаях, когда текущее имя пользователя из свойства currentUserName модели возвращает промис
    • Query language:
      • возможность использования Query.DatePredicate для Query.JsAdapter без указания времени (в timeless-режиме)
      • создание запросов для моделей со строковым типом первичного ключа

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

В версию ember-flexberry 0.12.0 вошли следующие изменения:

  • добавлено:
    • компонент flexberry-toggler: теперь сохраняет статус в пользовательских настройках (имя компонента в параметре componentName шаблона должно быть указано!)
    • списковые компоненты:
      • возможность удаления всех записей, когда выделены все элементы на всех страницах (с учетом текущего фильтра) Внимание! В шаблонах форм для списковых компонентов должен быть добавлен параметр beforeDeleteAllRecords для передачи экшна, который будет срабатывать пере удалением всех элементов на всех страницах (в технологическом контроллере списковой формы добавлен одноименный экшн, который может передаваться по умолчанию). Все предупреждения при удалении записей по кнопке “все со всех страниц” должны быть добавлены на прикладном уровне в экшн beforeDeleteAllRecords в контроллере соответствующей списковой формы. При невыполнении указанных условий удаление всех записей со всех страниц будет осуществлятсья сразу без предупреждений, что чревато серьезными потерями данных у заказчиков!
    • компонент flexberry-objectlistview:
      • свойство customButtonsInRow для добавления кнопок в строки (по аналогии с свойством customButtons)
      • возможность передать функцию в свойстве buttonAction для свойств customButtons и customButtonsInRow
      • возможность переименования столбцов при экспорте в Excel
    • компонент flexberry-error и шаблон error теперь поддерживают перевод сообщений об ошибках, если в сообщении об ошибке указано свойство messageLocaleKey
  • изменено:
    • cортировка, применяемая при нажатии на заголовок столбца, сохраняется в пользовательских настройках
    • при установке или обновлении аддона с помощью команды ember install ember-flexberry версия аддона ember-data принудительно понижается до 2.4.3
  • исправлено:
    • мелкие исправления внешнего вида и поведения компонентов, в том числе в мобильном режиме
    • списковые компоненты:
      • отображение спиннера при применении пользовательских настроек из диалогового окна
    • компонент flexberry-objectlistview:
      • возможность отмечать все элементы на всех уровнях иерархии в иерархическом режиме
      • поведение кнопок из служебныйх столбцов в строках в иерархическом режиме
      • после отключения иерархического режима на мобильном устройстве кнопка для отображения/скрытия вложенных записей больше не остается
    • компонент flexberry-simpledatetime: невозможность выбора крайних значений диапазона дат, когда установлены минимальные или максимальные значения
    • компонент flexberry-lookup: при слишком “длинном” значении (когда значение больше области для его вывода) в мобильном режиме добавлен перенос слов

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Выпущена версия Flexberry Service Bus 1.1.0

Что нового в версии Flexberry Service Bus 1.1.0

  • Переведены на русский язык заголовки в представлених для объектов данных шины.
  • Исправлена логика работы свойства Description для объекта Subscription.
  • Обновлен пакет Npgsql до версии 3.0.8.

Автоматизация сборки Docker-образов

kpv
Разработка приложений уровня предприятия заканчивается успешной установкой информационной системы и её внедрением в бизнес-процессы. Для обеспечения успешной интеграции приложения в действующие бизнес-процессы, как правило, разрабатывают инструкции и проводят учебные курсы. Установка и внедрение приложений в корпоративную инфраструктуру может быть выполнена различными способами: ручная установка и настройка непосредственно на виртуальных или физических машинах, или более современный вариант - автоматизированное разворачивание кластера или стека сервисов, представляющих собой контейнеры. Промышленным стандартом для контейнеризации можно считать решение Docker, которое разрабатывается одноимённой компанией. Подробнее об использовании Docker для разворачивания решений можно прочитать в статье о базовых технологиях платформы Flexberry.
Платформа Flexberry предоставляет возможности по созданию сложных корпоративных приложений, каждое из которых может быть развёрнуто в виде некоторого количества отдельных сервисов. Каждый из таких сервисов может быть естественным образом представлен в виде Docker-контейнера. В самом простейшем варианте один сервис может содержать базу данных PostgreSQL, а второй сервис – веб-приложение.
Для удобного создания Docker-контейнеров, включающих в себя сервисы разрабатываемых решений в платформе Flexberry предусмотрен ряд базовых образов. В Docker реализован механизм наследования, который позволяет «добавлять» в базовый образ что-то новое. Docker-образы строятся на основе файлов специального вида – Dockerfile. Ввиду того, что платформа Flexberry соблюдает принцип свободного программного обеспечения, набор Dockerfile для всех базовых образов опубликован в открытом репозитории на GitHub.
Компания Docker предоставляет не только программное обеспечение для создания образов и запуска контейнеров, но и ряд интернет-сервисов, облегчающих работу с контейнерами. Так, для открытых проектов доступен репозиторий Docker-образов – Docker Hub. Этот репозиторий может использоваться для получения популярного ПО, которое уже кто-нибудь «научил» работать в Docker-контейнере. Базовые Docker-образы, которые разработаны для проектов на Flexberry расположены в разделе организации Flexberry.
Разработчикам образов Docker Hub предоставляет возможность автоматизации процесса сборки Docker-образов. Используя этот подход, все базовые Docker-образы Flexberry собираются и публикуются в репозитории в автоматическом режиме. Это позволяет быстро выполнять доработку образов, в том числе принимать Pull request от сообщества, если пользователям платформы потребуется внести что-нибудь нужное в базовые образы. В качестве ещё одного примера успешного использования контейнеризации можно рассказать о Flexberry Service Bus, которая может быть легко развёрнута и запущена на компьютере по краткой инструкции.

Выпущена очередная стабильная версия Flexberry Service Bus 1.0.1

Flexberry Service Bus это сервисная шина с открытим исходным кодом размещенным на GitHub. Подробнее со структурой проектов и списком репозиторием можно ознакомиться в статье Разработка Flexberry Service Bus на сайте документации платформы Flexberry.

Результатами работ над проектом Flexberry Service Bus являются следующие продукты:

Для начала работы можно воспользоваться статьями Установка и запуск шины в Docker, Пример WCF-адаптеров и Пример REST-адаптера шины.

Что нового в версии Flexberry Service Bus 1.0.1

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

Выпущена очередная стабильная версия Flexberry ORM 4.1.0

Все коммиты теперь сопровождаются сборкой на Travis-CI под mono (без интеграционных, но с выполнением автономных модульных тестов).
С целью синхронизации версий NuGet-пакетов ORM и ODataService была поднята версия пакета ODataService до 4.1.0. В дальнейшем они будут выпускаться синхронно, чтобы избежать путаницы, поскольку между ними есть прямая зависимость.

Изменения в ORM 4.1.0

Added

  1. Add support Microsoft.Spatial.Geography for Net Framework 4.5.
  2. Add support string conversion to Microsoft.Spatial.Geography in Information.
  3. Add PostgresDataService method for comparing types.
  4. Add support Nullable<DateTime> and NullableDateTime for DateTime properties (Day, Month, Year, etc.).
  5. Add property for set connection string by name in DataService. Need confugure IConfigResolver in Unity config section
  6. Add ICSSoft.STORMNET.TuneStaticViewDelegate for tune static Views.

Fixed

  1. Fix LINQ to LCS when sorting with types convert.
  2. Fix error when use unsigned types in LINQ expression.
  3. Fix using UnityFactory.CreateContainer method instead of UnityFactory.GetContainer. It should increase performance.
  4. Fix update error Geography type.
  5. Fix converting LINQ expressions with sorting to custom nullable types.
  6. Fix sql query sequence for delete hasMany data objects with cyclic associations.

Changed

  1. Remove implicit dependency from ICSSoft.STORMNET.RightManager. Now implementation of ISecurityManager specified via Unity is used instead.
  2. Optimized requests to Postgres if LCS has a populated RowNumber property.

Изменения в ODataService 4.1.0

Added

  1. Add support user function geo.intersects.
  2. Add support LoadingCustomizationStruct in user functions.
  3. Add support actions.
  4. Add handler, called after exception appears.
  5. In user functions and actions add possibility to return collections of primitive types and enums. In actions add possibility to use primitive types and enums as parameters.

Fixed

  1. Fix reading properties of files.
  2. Fix error which occured in Mono in method DefaultODataPathHandler.Parse(IEdmModel model, string serviceRoot, string odataPath).
  3. Fix errors in work of user functions.
  4. Fix error in association object enumeration filtration.

Changed

  1. Update dependencies.
  2. Update ODataService package version to according ORM package version.

Выпущена версия ember-flexberry-data 0.11.0 и ember-flexberry 0.11.0

В версию ember-flexberry-data 0.11.0 вошли следующие изменения:

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

В версию ember-flexberry 0.11.0 вошли следующие изменения:

  • добавлены:
    • компонент flexberry-groupedit:
      • сохранение ширины столбцов в пользовательских настройках
      • кнопка для восстановления пользовательских настроек по умолчанию (флаг defaultSettingsButton)
      • кнопка сброса сортировки
    • компонент flexberry-lookup:
      • поддержка пользовательских настроек (для списков лукапа теперь можно задавать developerUserSettings, пример)
      • поддержка perPage
      • поддержка режима иерархии (пример)
    • компонент flexberry-objectlistview:
      • возможность использовать вычислимые свойства в getCellComponent (статья)
    • форма редактирования:
      • прокрутка формы редактирования вверх при возникновении ошибок сохранения
  • изменены:
    • для совместимости с Ember Inspector восстановлено свойство tagName у приложения
    • в логах поле processName теперь содержит имя приложения (ENV.modulePrefix из environment.js)
    • на форме редактирования в методе onSaveActionRejected теперь можно обработать ошибки сохранения для каждого детейла (в данный метод приходит массив с результатами промисов по всем детейлам, как успешным, так и неуспешным)
    • заголовок окна настройки экспорта в Excel
  • исправлено:
    • списковые компоненты:
      • свойство readonly из componentProperties для динамических компонентов (встроенных в ячейки)
      • отображение ошибки о недоступности сервера
    • тема blue-sky:
      • ширина компонента flexberry-checkbox
      • отображение placeholder’ов в IE
    • компонент flexberry-simpleolv:
      • диалоговое окно “Показать установки” из выпадающего меню пользовательских настроек
    • компонент flexberry-lookup:
      • обновление отображаемого свойства при изменении displayAttributeName
      • имя компонента для списка в окне выбора
    • компонент flexberry-groupedit:
      • ошибки валидации когда editOnSeparateRoute и saveOnRouteLeave равны true
      • возможность изменять ширину столбцов, если свойство allowColumnResize было изменено динамически
    • компонент flexberry-file:
      • внешний вид в мобильном режиме
      • отображение ошибок в мобильном режиме
      • отображение превью, если загруженный файл не изображение
    • компонент flexberry-modal:
      • скрытие затемнения при закрытии окна выбора с помощью кнопки “Закрыть”
    • blueprints:
      • генерация локализаций в аддон
    • компонент flexberry-objectlistview:
      • загрузка записей иерархии
      • отображение olv-toolbar в мобильном режиме
    • компонент colsconfig-dialog-content:
      • пропадающее содержимое некоторых ячеек при изменении размера окна браузера
    • компонент flexberry-simpledatetime:
      • блокировка кнопки очистки значения при readonly режиме в IE
    • зависание на списковых и формах редактирования когда сеть недоступна
    • настройки пользователя для форм создания новых записей
  • удалено:
    • компонент flexberry-objectlistview:
      • свойство columnsWidthAutoresize в мобильной версии компонента
    • компонент flexberry-lookup:
      • свойство orderBy (теперь сортировка задается через developerUserSettings)

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Инструкция по обновлению с версии 0.10.0:

  • controllers.application.js:
    • добавить метод updateWidth
    • привести методы toogleSidebar и toogleSidebarMobile в соответствие с application.js
  • templates/application.hbs:
    • в компонент ui-sidebar добавить параметры как в application.hbs
    • для мобильной версии: application.hbs
  • templates/error.hbs:
    • привести в соответствие с error.hbs
  • views/application.js:
    • если тут есть только переопределения свойства tagName: '' и нет дополнительной прикладной логики, то можно удалить этот файл, иначе удалить только tagName: ''
  • так как sidebar теперь не прямой потомок тега body, а в отдельном блоке с классом ember-view, который в свою очередь уже является первым прямым потомком body, то возможно придется поправить прикладные стили (если была привязка стилей к sidebar’у как к прямому потомку body)
  • если на какой-либо из форм используется фильтрация по датам без времени, то нужно формировать предикат для дат с флагом timeless равным true

Flexberry RFC

Что такое Flexberry RFC

Flexberry RFC - это так называемый процесс запросов на комментарии (RFC - Request For Comments), который обеспечивает возможность согласованного и контролируемого принятия более “существенных” изменений, касающихся платформы Flexberry.

Запуск процесса RFC для платформы Flexberry - это еще один шаг в направлении открытости платформы и возможности ее доработки силами сообщества.

Различные OpenSource-проекты имеют аналогичный процесс - например, RFC для фреймворка Ember.js, RFC для языка RUST.

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

Кому и как это поможет

  1. Запуск данного процесса обеспечивает возможность фиксации всех пожеланий по доработке платформы Flexberry. Поэтому все прикладные проекты, желающие, чтобы какие-либо их доработки попали в технолигию, могут сформулировать соответствующий документ RFC и запустить процесс публичного обсуждения и согласования соответствующих идей. По результатам обсуждения будет сформулировано и зафиксировано решение, которое может быть добавлено в исходный код платформы либо технологами, либо прикладными разработчиками (в зависимости от наличия свободных ресурсов и срочности доработок).
  2. Данный процесс также позволит прикладным проектам участвовать в обсуждении более существенных доработок, которые будут внедряться в платформу технологами в плановом режиме.
  3. В перспективе данный процесс будет являться инструментом для включения в платформу функционала со стороны сообщества.

Куда смотреть и что делать

Более подробно с процессом Flexberry RFC можно ознакомиться здесь: https://github.com/Flexberry/rfcs

Выпущена версия ember-flexberry-data 0.10.0 и ember-flexberry 0.10.0

В версию ember-flexberry-data 0.10.0 вошли следующие изменения:

  • добавлено:
    • функция hasChangedBelongsTo для проверки изменений ‘belongsTo’
    • NotPredicate для выражений not
    • теперь адаптеры отвечают на ошибки, ожидаемые в формате OData JSON
  • изменено:
    • получение текущего имени пользователя для всего приложения теперь можно вызвать, вызвав метод getCurrentUserName
  • исправлено:
    • при расширении Projection.Model и использовании наследования вся иерархия моделей имеет общий объект проекций
    • отслеживание изменений для syncUp при изменении ‘belongsTo’
    • GeographyPredicate для flexberry-gis

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

В версию ember-flexberry 0.10.0 вошли следующие изменения:

  • добавлены:
    • контрол для отображения ошибок flexberry-error
    • кнопка удаления и отображения ошибок для flexberry-simpledatetime
    • выделение всех элементов списка и всех элементов списка на странице
    • очистка установленной сортировки
    • кнопки свернуть/развернуть для иерархического списка
    • локализация и сортировка для автокомплита в flexberry-lookup
    • свойство управления длиной текста для flexberry-field and flexberry-textbox
  • изменены:
    • отображение ошибок на списках и формах редактирования (через компонент flexberry-error)
    • работа фильтров (фильтрация по пустому значению, использование Enter)
    • метод beforeDeleteRecord теперь поддерживает асинхронный режим
    • получение текущего имени пользователя
    • режим readonly для flexberry-datepicker
  • исправлено:
    • функционирование иерархического списка
    • фильтрация элементов списка
    • функционирование flexberry-simpleolv с пользовательскими настройками по умолчанию
    • теперь журнал не пытается сохранить неопределенные ошибки
    • функционирование flexberry-simpledatetime для мобильных устройств, а также в режиме readonly и обработка введеного значения
    • тема blue-sky для мобильных устройств, стили для модальных диалогов, отображение боковой панели и высота содержимого страницы.
    • поддержка checked для IE
    • создание шаблона компонента flexberry-groupedit в формах редактирования

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Инструкция по обновлению:

  • Новость от 29.09.2017
  • При обновлении с ember-flexberry 0.9.2-beta.2 нужно перегенерировать приложение, либо внести изменения вручную:
    • В шаблоне application.hbs у блока с классом “full height”, удалить «style=”min-height: 90vh”» (если это не было изменено на прикладном уровне)
    • В шаблонах форм редактирования добавить {{flexberry-error error=error}} после тега «form» Пример
    • В шаблонах списковых форм добавить {{flexberry-error error=error}} в начало Пример
    • В папку с шаблонами добавить error.hbs

Выпущена версия ember-flexberry 0.9.1

В версию вошли следующие доработки:

  • Добавлены темы оформления.
  • Добавлена возможность экспорта списка в excel.
  • В аддон перенесены некоторые компоненты из ember-flexberry-gis.

Более подробно со списком изменений можно ознакомиться в CHANGELOG.md:

Инструкция по обновлению с версии ember-flexberry без тем:

Если есть возможность, то желательно сгенерировать приложение в чистую папку, а затем перенести в него прикладную логику. Иначе нужно:

  • В packages.json добавить "ember-block-slots": "1.1.3" и "ember-cli-less": "^1.5.4". Удалить "ember-cli-sass". Изменить версии "ember-data": "~2.4.3" и "ember-flexberry": "0.9.1".
  • В bower.json добавить "js-beautify": "1.6.4", "jquery-minicolors": "2.2.6" и "seiyria-bootstrap-slider": "6.0.6". Изменить версии "semantic-ui": "git://github.com/Flexberry/Semantic-UI.git#fixed-abort" и "flatpickr-calendar": "2.3.4".
  • Выполнить npm install/bower install.
  • ember-cli-build.js привести в соответствие с ember-cli-build (если необходимо, добавить прикладную логику).
  • В app/index.html после content-for "body" добавить <script src="//cdn.polyfill.io/v1/polyfill.js?features=es6"></script>.
  • app/styles/app.scss переименовать в app/styles/app.less, добавить в начало @import "src/semantic"; и @import "node_modules/ember-flexberry/addon/styles/addon";. Также проверить нет ли в этом файле чего-нибудь несовместимого с less. Для аддона проделать то же самое для addon/styles/addon.scss.
  • Добавить theme.less в app/styles или в addon/styles (для приложения и аддона соответственно).
  • Добавить theme.config в папку спроектом. В конце файла указать путь к theme.less из предыдущего шага.
  • Добавить в vendor font-icon.css, папки fonts и serviceImages из ember-flexberry.
  • В locales/локализация/model для всех моделей в представлениях поменять caption на __caption__.
  • В шаблонах форм редактирования:
    • Удалить state из классов формы.
    • Удалить класс positive у кнопок Сохранить и Сохранить и закрыть, добавить классы save-button и save-close-button соответственно.
    • Удалить класс negative у кнопки удаления, добавить ей класс save-del-button.
    • Кнопке закрытия добавить класс close-button.
  • В приложении в app/controllers/application.js добавить objectlistviewEventsService и привести toggleSidebar/toggleSidebarMobile в соответствие с application.js.
  • В приложении в app/controllers/sitemap-node.js добавить subMenuEl в соответствие с sitemap-node.js.
  • В приложении app/templates/application.hbs привести в соответствие с application.hbs. Скорее всего этот шаблон нужно будет доверстать под проект. В мобильной версии этого шаблона нужно toogleSidebar заменить на toogleSidebarMobile.

Выпущена стабильная версия Flexbery Designer 2017-08-22

Обновить Flexberry Desinger можно, скачав с сайта flexberry.ru. Инструкция по установке находится в статье Установка Flexberry Designer, раздел Установка новой версии Flexberry Desinger (обновление).

Список изменений

  • Общее
    • Исправлена ошибка генерации, если в интрефейсе есть два метода с одинаковыми именами, но с разными сигнатурами.
    • Изменены имена генерируемых сборок, теперь по умолчанию они будут генерироваться без скобочек, и вместо - Namespace.ProjectName(Objects) - Namespace.ProjectName(BusinessServers) - Namespace.ProjectName(BusinessServersBF) - Namespace.ProjectName(ASP.NET Application)

      теперь по умолчанию будут генерироваться имена
      
      - `Namespace.ProjectName.Objects`
      - `Namespace.ProjectName.BusinessServers`
      - `Namespace.ProjectName.BusinessServersBF`
      - `Namespace.ProjectName.ASP.NET Application`
      
      чтобы это не мешало перегенерации уже существующих проектов, в свойствах стадии `ORM -> C# -> Свойства модели` была добавлена дополнительная настройка, позволяющая настроить шаблон для генерируемых имен.
      
      По умолчанию он выглядит так `{Name}.{Purpose}`, чтобы вернуть скобочки в имена сборок, потребуется изменить его на `{Name}({Purpose})` на вкладке `Дополнительно` на форме `Дополнительные настройки`.
      
  • Плагины
    • ORM
      • Добавлены пункты меню для генерации полномочий в плагин ORM -> SQL -> PostgreSQL
      • Пункты меню под плагины DocGen, HistoryPlugin, MoveCase перемещены в ORM -> Утилиты
      • Убран пункт меню ORM -> SQL -> ... -> Сгенерировать SQL, для генерации скриптов нужно использовать ORM -> SQL -> ... -> Привести БД в соответствие с моделью
    • Ember
      • Добавлена генерация бакенда
      • Добавлена генерация метаданных для фронтенда отдельно от всего остального
      • Добавлена обработка external-классов при генерации метаданных
      • Возможность генерации для фронтенда для каждого отдельного класса (доступно из контекстного меню класса)
    • ASP.NET
      • Генератор приведен в соответствие с версией Flexberry ASP.NET 2.3.0
      • Убрана установка пакетов со всеми темами при генерации нового приложения, теперь по умолчанию устанавливаются только темы Spring и BlueSky
      • Исправлена транслитерация при генерации форм с ь/ъ - теперь эти символы пропускаются.
      • Исправлена перегенерация базовых и технологических форм (не меняются существующие, не имеющие локальных изменений)

Обратная связь

Замечания и пожелания, касающиеся Flexberry Designer-a и его плагинов, можно направлять на электронную почту.

Выпущена очередная стабильная версия Flexberry Winforms 3.0.1

В версию вошли следующие доработки:

  • Исправлен поиск по пустому списку.
  • Добавлена возможность работы ExtendedLookUp c несколькими DataObjectTypes.

Выпущена очередная стабильная версия Flexberry ASP.NET 2.3.0

Список изменений во Flexberry ASP.NET - 2.3.0

  • Изменения в зависимостях
  • Общие изменения:
    • Исправлена ошибка порядка обновления агрегатора и детейла с циклической связью (если объект является необязательным мастером ассоциации для своего агрегатора).
    • CustomSiteMapProvider.dll был удален из-за конфликта версий и был изменен на CustomSiteMapProvider.cs, включенный в ICSSoft.STORMNET.Web.Tools.
    • Добавлены вкладки для страниц Администрирование: Группы и Операции.
    • Название темы Crimea изменено на BlueSky (пакет с темой оформления под старым названием Crimea по прежнему находится в nuget-галерее, но более не будет обновляться).
    • Добавлена возможность включения SupportsCredentials для CORS (в пакете Flexberry ASP.NET WebAPI CORS extensions 1.1.0).
    • Исправлена ошибка при построении ограничения для lcs по полю даты, когда имя поля совпадает со свойством DateTime.
  • Изменения в генераторе ASP.NET-приложений
    • Исправлена транслитерация для ьЬъЪ в ASPNETCasePlugin.
    • Исправлена перегенерация технологических файлов: при перегенерации технологические файлы исключены из изменений, если они не менялись локально.
    • Изменена генерация ключа для кеширования XML в WebBinder’е: сейчас он уйсточив к изменениям модели.
    • Исправлена ошибка генерации, если в интрефейсе есть два метода с одинаковыми именами, но с разными сигнатурами.
    • Добавлена обработка external-классов при генерации метаданных.
  • AiaxGroupEdit:
    • Исправлена сортировка по мастеровым полям.
    • При неправильном представлении теперь выводится ошибка, в которой есть информация о названии контрола на странице.
    • Исправлена проблема с фоном, закрывающим собой границы в Firefox и Internet Explorer.
    • В обработчик нажатия на кнопку редактирования в строке детейла добавлена проверка на новую строку.
  • Аудит:
    • Реализовано использование Caption из представления AuditView в объектно-ориентированной форме аудита.
    • Исправлена загрузка данных аудита из другой БД.
  • Редактор ограничений:
    • Изменена и дополнена логика редактирования выражения в редакторе ограничений:
      • Изменение выражения осуществляется только через дерево атрибутов при редактировании правого выражения реализована возможность изменить знак операции и левое выражение;
      • В правое выражение запрещено подставлять тот же атрибут что находится в левом выражении;
      • При попытке снять выделение с редактора правого выражения при невалидном значении, если возможно, возвращается последнее валидное значение (по аналогии с кнопкой ESC).
    • Доработана панель инструментов редактора ограничений:
      • На вкладке “Главная” блок “Применить ограничение” объеденен с блоком “Действия” и назван “Действия”;
      • За блоком назван “Действия” размещен блок “Свойства”;
      • При попытке сохранить ограничение без имени, фокус переходит на поле “Имя ограничения” и выводится подсказка.
    • Реализовано добавление пустому выражению кнопки для удаления в редакторе ограничений.
    • Добавлен запрос на подтверждение действий пользователя при замене группы выражений в редакторе ограничений.
    • Добавлена кнопка для создания пустой строки в выражении в редакторе ограничений.
    • Исправлено оформление редактора ограничений: скрыты лишние отступы, увеличен шрифт в дереве атрибутов.
    • Добавлена проверка существования неиспользуемых параметров перед сохранением ограничения.
    • Исправлено создание и использование ограничений с параметрами.
    • Исправлено открытие редактора ограничений в новом окне в chrome-е (после обновления chrome-а редактор открывался в новой вкладке вместо нового окна).
  • WOLV:
    • Добавлен переход к объекту в WOLV после закрытия модального окна при условии, что объект был сохранён.
    • Поправлена перемотка к объектам найденным модулем поиска WOLV-a.
    • Добавлена возможность переопределять URL-ы форм редактирования, прототипирования, просмотра и добавления в WOLV-е в клиентских обработчиках событий.
    • Исправленно отображение заголовков групп при использовании OverflowWordEllipsis.
    • Исправлена логика возвращения первичного ключа из формы редактирования в модальном окне или новой вкладке: теперь первичный ключ не возвращается для объектов, которые еще не были сохранёны в БД.
    • Поправлено хранение состаяния выделенных строк при переходе между страницами.
    • Во ViewColumnProvider исправлена ошибка загрузки данных из кэша, приводившая к тому, что списки иногда не открывались пока не почистишь кэш.
  • LookUp:
    • Сокращено количество запросов к БД из лукапов.
    • В интерфейсе IMasterEditorAjax добавилось опционально свйство “Object”, в которое WebBinder проставляет объект данных ассоциированный с мастеровым свойством, соответствующим lookup-у.
    • Поправлена работа autocomplete при вставке из буфера обмена через контекстное меню ПКМ.
  • Изменения в зависимых пакетах
    • В пакете Flexberry.Web.Reports также были обновлены все зависимости, включая зависимость от Flexberry.ASP.NET до выпущенной версии 2.3.0.
    • В пакете Flexberry.Web.VeloCache также были обновлены все зависимости, включая зависимость от Flexberry.ASP.NET до выпущенной версии 2.3.0.

Выпущена очередная стабильная версия Flexberry Security 1.7.0

Список изменений во Flexberry Security - 1.7.0

  • Изменения в зависимостях * Пакет Flexberry.ORM обновлен до 4.0.0 (см. подробности в новости о выпуске версии ORM 4.0.0).

  • Общие изменения:

    • Добавлена поддержка сериализуемости для объектов полномочий
    • Исправлены объединение и разность функций ограничения в классе LimitFunctionArithmetic.
    • Добавлены проверки добавляемой и вычитаемой функций на null в классе LimitFunctionArithmetic.
    • Добавлены методы полного удаления фильтра в полномочиях доступа к конкретному объекту данных для роли и пользователя.
    • Расширена логика добавления и удаления фильтров в полномочиях на объекты данных.
    • Исправлено чтение полномочий в операции удаления фильтра у SecurityManager.
    • Исправлена проверка типа доступа к классу данных при получении ограничения для текущего пользователя в SecurityManager.

Выпущена очередная стабильная версия Flexberry Winforms 3.0.0

В версию вошли следующие доработки:

  • Проект ICSSoft.STORMNET.Drawing перенесён из ORM в Winforms.
  • Реализована сериализация в json примитивов диаграммы классов.

Выпущена очередная стабильная версия Flexberry ORM 4.0.0

В версию вошли следующие доработки:

  • Проекты из пакетов UnityFactory и CurrentUserService вошли в пакет ORM. Отдельно теперь их не нужно устанавливать, если есть установленный пакет ORM. При обновлении до ORM 4.0 нужно будет предварительно удалить NuGet-пакеты UnityFactory и CurrentUserService из всех проектов с предыдущей версией ORM.
  • Из ExternalLangDef удалена зависимость от пакетов *DataService. Интерфейс IDataService поменялся (добавлен ещё один метод для интерпретации языка запросов).
  • Проект ICSSoft.STORMNET.Drawing перенесён из ORM в Winforms.
  • Удалён проект ICSSoft.STORMNET.Business.BF (если он кому-нибудь будет нужен, то отдадим в виде исходного кода).
  • Исправлена ошибка порядка обновления агрегатора и детейла с циклической связью (если объект является необязательным мастером ассоциации для своего агрегатора).
  • Реализована поддержка в OData кастомных имён для EDM-моделей (названий классов и свойств).
  • Для всех типов убрано наследование от MarshalByRefObject.
  • Из конструкторов типа ICSSoft.STROMNET.FunctionalLanguage.ObjectType убран параметр “objImagedView” типа “Image”.
  • В функции GetViewByAuditRecord заменено Enum на EnumCaption.
  • Исправлена ошибка при построении ограничения для lcs по полю даты, когда имя поля совпадает со свойством DateTime.
  • Исправлена ошибка при использовании атрибута PrimaryKeyStorageAttribute.
  • ORM опубликован на GitHub
  • LogService, также опубликован на GitHub

Выпущены очередные версии ember-flexberry 0.8.6 и ember-flexberry-data 0.8.4

В версии вошли следующие доработки:

  • Исправлен метод базовой модели, проверяющий изменения в hasMany-отношениях: ранее ошибка могла возникать в случаях, когда свойство canonicalState было неопределено. Первый вариант исправления был предложен в версии ember-flexberry-data@0.8.2, но этот вариант приводил впоследствии к неправильному значению свойства canonicalState у агрегатора при дальнейших изменениях списка связанных детейлов.

Более подробно со списком изменений можно ознакомиться в CHANGELOG-ах соответствующих проектов:

Выпущена очередная версия ember-flexberry 0.8.5

В версию вошли следующие доработки:

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

Более подробно со списком изменений можно ознакомиться в CHANGELOG-ах соответствующих проектов:

Выпущена очередная версия ember-flexberry-data 0.8.3

В версию вошли следующие доработки:

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

Более подробно со списком изменений можно ознакомиться в CHANGELOG-е соответствующего проекта:

Выпущены очередные версии ember-flexberry 0.8.4 и ember-flexberry-data 0.8.2

В версии вошли следующие доработки:

  • Исправлено отсутствие проверки изменений в детейловых моделях при переходе с роута агрегатора на роут детейла следующего уровня. В результате изменения, сделанные в детейлах до перехода на роут детейла следующего уровня, теперь не теряются.
  • В свойство canonicalState hasMany-отношений теперь записывается значение свойства currentState при сохранении модели агрегатора. Данное дополнение устраняет баг при проверке изменений в hasMany-отношениях после первичного сохранения модели агрегатора с детейлами.

Более подробно со списком изменений можно ознакомиться в CHANGELOG-ах соответствующих проектов:

Выпущена очередная версия ember-flexberry 0.8.3

В версию вошли следующие доработки:

  • Исправлено зацикливание вызова обработчика клика при выборе даты в flexberry-simpledatetime (в мобильном режиме).

Более подробно со списком изменений можно ознакомиться в CHANGELOG-е соответствующего проекта:

Выпущена очередная версия ember-flexberry 0.8.2

В версию вошли следующие доработки:

  • Исправлено зависание приложения при смене количества отображаемых страниц на списке в IE.
  • Исправлена невозможность изменять ширину столбцов на списке при переопределении хука model в прикладном роуте.
  • Исправлена ошибка, из-за которой не сбрасывалось количество выделенных строк после перехода на форму редактирования и обратно.
  • Исправлено некорректное отображение пейджинга в оффлайн-режиме после ухода со списка и возврата обратно.
  • Исправлено зависание приложения в оффлайн-режиме при переходе на форму редактирования в том случае, когда в поле для хранения детейлов записано значение undefined.

Более подробно со списком изменений можно ознакомиться в CHANGELOG-ах соответствующих проектов:

Выпущена очередная версия ember-flexberry-data 0.8.1

В версию вошли следующие доработки:

  • Исправлена ошибка чтения детейлов в оффлайн-режиме в том случае, когда в поле для хранения детейлов записано значение undefined.
  • Исправлено некорректное вычисление значения свойства meta.count в оффлайн-режиме при чтении данных.

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

Более подробно со списком изменений можно ознакомиться в CHANGELOG-е соответствующего проекта:

Выпущена очередная версия ember-flexberry 0.8.1

В версию вошли следующие доработки:

  • Поддержка иерархического flexberry-objectlistview на форме редактирования + возможность указывать отступы в иерархическом списке.
  • Исправление ошибки на списках (когда свойство modelProjection не определено).
  • Исправление ошибки flexberry-simpledatetime в мобильном варианте.

Более подробно со списком изменений можно ознакомиться в CHANGELOG-е соответствующего проекта:

Выпущены очередные версии ember-flexberry и ember-flexberry-data 0.8.0

Со списком изменений можно ознакомиться в CHANGELOG-ах соответствующих проектов:

Всем успехов и новых достижений в Новом году!

Попробуйте сами

На период ознакомления или для открытых проектов продукты платформы доступны бесплатно. Попробуйте, и решите, подходят ли они
для ваших задач.

Попробовать

Также вы можете ознакомиться с исходным кодом продуктов на GitHub.