История изменений DBGate

История изменений DBGate

Версия 3.0 от 07.05.2024

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

  • Для работы требуется ASP.NET Core 8.0.
  • С версии 3.0 не поддерживается Microsoft Internet Explorer.
  • DBGate 3.0 не включает поставщики данных для Oracle Database, NuoDB и SQLite (их можно установить отдельно).
  • Ключ EditRoots стал секцией и включает корневые сегменты и соответствующие им страницы. Секция EditPages удалена.
  • Для работы клиента JavaScript требуется поддержка модулей JavaScript.
  • Установочные пакеты DBGate включают новые настройки приложения и файлы каталога wwwroot. Мы исключили примеры, чтобы можно было начать работать без дополнительных настроек.

Новые возможности:

  • Новый мастер setup.exe позволяет настраивать веб-сайты и приложения IIS, сервисы Windows и сертификаты SSL в Windows.
  • DBGate включает новый пакет с установщиком для Windows.
    Мы рекомендуем использовать в Windows именно его.
  • DBGate включает схему аутентификации JWT и настройку страниц входа и регистрации новых пользователей.
  • DBGate позволяет аутентифицировать пользователей хранимыми процедурами с поддержкой ролей пользователей.
    Например, можно разрешить пользователям самостоятельно регистрироваться в приложении как покупателю или продавцу и использовать соответствующие роли buyer с разными возможностями.
  • DBGate автоматически заменяет тег <base href="/" /> для приложений IIS.
    Соответственно, можно использовать один и тот же каталог wwwroot для веб-сайтов и приложений IIS, сервисов Windows и консольных приложений.
  • Разработчики могут настроить изменение имен объектов для сервиса в секции ApiNameReplacements настройки подключения.
    Например, можно изменить имя "view_money_transactions" на "transactions".
  • DBGate автоматически определяет наличие SSL сертификата в Windows и использует конечные точки HTTPs.
  • DBGate автоматически перенаправляет на конечные точки HTTPs, если обслуживаются конечные точки HTTP и HTTPs.
  • DBGate позволяет настроить порт по умолчанию.
  • Обработчики WhereByDefault позволяют задать колонки, которые по умолчанию используются в качестве фильтров.
  • Обработчики HideByDefault позволяют задать колонки и параметры, скрытые по умолчанию.
  • DBGate позволяет изменять сервер, базу данных и порт для подключения (если разрешено).
    Например, можно использовать адрес типа /edit/mssql:db.savetodb.com,1433,AzureDemo100/ для подключения к базе данных AzureDemo100 на сервере db.savetodb.com по порту 1433.
  • Домашняя страница подключений к базам данных master, mysql и postgres позволяет выбрать доступную базу данных на сервере.
  • Клиент JavaScript поддерживает темную тему.
  • Клиент JavaScript отображает панель слева для быстрого подключения к любому объекту.
  • Клиент JavaScript позволяет фильтровать таблицы.
  • Клиент JavaScript позволяет использовать виды таблиц (используйте надстройку SaveToDB для создания и сохранения видов).
  • Клиент JavaScript отображает иконку с описанием таблицы из базы данных.

Улучшения:

  • DBGate поддерживает имя подключения как первый сегмент.
    Сейчас поддерживаются оба варианта: /<root>/<connection>/<query> и /<connection>/<root>/<query>.
    Например: https://dbgate/edit/mssql/ и https://dbgate/mssql/edit/.
  • Обработчики DoNotAddValidationLists отключают также автоматическое создание списков значений параметров.
  • Схема таблиц настройки приложений используются для поиска объектов без заданных схем.
  • Тип tinyint(1) MySQL трактуется как boolean.
  • DBGate определяет типы колонок хранимых процедур по объектам сохранения изменений.
  • DBGate возвращаем массив имен колонок для пустых результатов хранимых процедур с неизвестным набором выходных колонок.
  • Поле RowNumber скрыто по умолчанию.
  • DBGate поддерживает переменную среды ASPNETCORE_WEBROOT для определения папки webroot.
  • DBGate позволяет задать базовый путь приложения ASP.NET в свойстве ApplicationPathBase.
  • DBGate позволяет обслуживать конечные точки API при отсутствии папки wwwroot.

Исправленные ошибки:

  • MySqlConnectorNet в Linux вызывает исключение, связанное с _dataCache.
  • DBGate не экранирует переводы строк в мета-данных.

Версия 2.7 от 12.07.2023

Улучшения:

  • Улучшена обработка исключений.

Версия 2.6 от 10.04.2023

Улучшения:

  • DBGate позволяет использовать объекты MySQL с пустыми схемами. В этом случае используется схема активного соединения.
  • Повышена производительность загрузки метаданных SQL Server.

Версия 2.5 от 21.02.2023

Новые возможности:

  • DBGate генерирует списки значения на основе значений ENUM MySQL и PostgreSQL.
  • DBGate поддерживает тип данных SET MySQL.
  • DBGate преобразует данные MySQL binary(16) и varbinary(16) в формат GUID при наличии в COLUMN_DEFAULT функций uuid_to_bin(uuid()), uuid_to_bin(uuid(),0) или uuid_to_bin(uuid(),1).

Улучшения:

  • DBGate использует поставщик данных MySql.Data.MySqlClient, установленный в системе.
    До этого использовался поставщик, поставляемый с приложением.
    Данное решение позволяет устанавливать и использовать наиболее свежую версию поставщика:
    https://dev.mysql.com/downloads/connector/net/
  • DBGate выполняет динамическую замену отсутствующего поставщика данных MySql.Data.MySqlClient на встроенный поставщик MySqlConnector.
  • Улучшена производительность получения метаданных MySQL 8.

Исправленные ошибки:

  • Подключение к MySQL 8 с использованием поставщика данных MySql.Data.MySqlClient вызывает различные исключения.

Версия 2.4 от 23.01.2023

Улучшения:

  • Обновлены примеры приложений на 2023 год.
  • Обновлены поставщик данных .NET и .NET Framework для Snowflake.
  • Обновлена утилита регистрации.

Версия 2.3 от 13.12.2022

Улучшения:

  • DBGate позволяет использовать страницы редактирования, специфичные для языка.
  • DBGate включает специальные страницы редактирования для упрощенного китайского, традиционного китайского, японского и корейского языков.
  • DBGate включает новую темную тему.
  • Примеры и пакеты SaveToDB Framework выпущены под лицензией MIT.

Версия 2.2 от 05.10.2022

Исправленные ошибки:

  • Значения типа даты и времени SQLite и MySQL через поставщиков .NET выводятся в виде строк.

Версия 2.1 от 17.08.2022

Критические изменения:

  • DBGate не активирует сохранение изменений для представлений, процедур и SQL кода на основе соединения нескольких таблиц.
    Для сохранения изменений таких объектов следует вручную задать целевую таблицу в таблице xls.objects.
  • Поля представлений и процедур на основе нескольких таблиц помечаются как расчетные.
  • Контекстные параметры для клиентских приложений включаются в состав полей объектов (например, rownum).

Улучшения:

  • Перевод в SQLite и SQL Server Compact с пустыми схемами и именами объектов добавляется в схему Default.
  • Улучшено определение полей для списков значений (понижен приоритет Guid и Char(36)).
  • $orderby= возвращает данные без сортировки по умолчанию.

Исправленные ошибки:

  • DBGate отключает сохранение процедурами, если задан обработчик изменений _change.
  • DBGate не сохраняет изменения данных из форм JSON.
  • Не работает редирект на домашнюю страницу при изменении свойства base страниц HTML.

Версия 2.0 от 05.07.2022

DBGate включает измененное Лицензионное соглашение.

Наиболее важное изменение:

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

Новые возможности:

  • Добавлена документация DBGate на русском языке.
  • DBGate включает новое Руководство разработчика.
  • DBGate доступен на упрощенном китайском, традиционном китайском, японском и корейском языках.
  • DBGate поддерживает языковые коды длиной до 10 символов. Например, можно использовать zh-cn, zh-hans и zh-hans-cn. zh-hans и zh-hant являются предпочтительными для китайского языка.
  • DBGate поддерживает SQL код во всех таблицах настройки.
  • DBGate поддерживает .NET Framework 4.7.2.
  • DBGate поддерживает провайдер Microsoft.Data.SqlClient.
  • DBGate поддерживает пакетные запросы POST /$batch, совместимые с OData.
  • DBGate поддерживает конечные точки управления приложением: /api/$stop, /api/$show, /api/$hide.
    Для включения поддержки команд, установите StopEnabled в true в файле настроек приложения.
  • DBGate поддерживает параметр $reloadMetadata=true в HTTP запросах для обновления метаданных базы данных.
    Пользователи могут нажать Ctrl и кликнуть на кнопке Reload для обновления метаданных в клиента JavaScript.
  • DBGate поддерживает параметр $distinct=true для возврата данных запросов SELECT DISTINCT.
  • DBGate поддерживает параметр $orderby в URL запроса.
  • DBGate поддерживает параметр $groupby в URL запроса.
  • DBGate поддерживает параметр $iscount=true в URL запроса для возврата значения SELECT COUNT(*).
  • DBGate поддерживает параметр $binaryAsHex в URL запроса и параметр binaryAsHex в заголовке Prefer.
  • DBGate поддерживает параметр $bigNumbersAsString в URL запроса и параметр bigNumbersAsString в заголовке Prefer.
  • DBGate поддерживает параметр $dateTimeAsDateTimeOffset в URL запроса и заголовке Prefer.
  • DBGate поддерживает параметры $timezone и $timezoneoffset в URL запроса и заголовке Prefer.
  • Настройки DBGate в файле конфигурации выделены в группы DBGate и DBGateW.
  • DBGate поддерживает новые опции в файле конфигурации:
    MaxPageSize, UppercaseNamesInLowercase, DisableEditPageCache, BinaryAsHex, BigNumbersAsString, FunctionPrefixes, FunctionSuffixes, TraceSQL, StopEnabled.
  • DBGate поддерживает новые опции в разделах строк подключения в файле конфигурации:
    AllowDatabaseChange, Offline, Home.
  • DBGate поддерживает конечные точки в формате /schema/name/{id} для выборки единственной записи по значению первичного ключа.
  • DBGate добавляет заголовок "dbgate-version: 2.0".
  • DBGate добавляет заголовок для отключения кэширования:
    Cache-control: no-cache, no-store, must-revalidate.
  • DBGate сортирует результаты таблиц и представлений по умолчанию.
    Для сортировки могут использоваться первичные ключи, колонки identity или полный набор выходных колонок.
  • Метаданные объектов включают описание обработчиков событий.
  • Метаданные параметров могут включать свойство CONTEXT_TYPE со следующими значениями: Language, Top, Skip.
  • Разработчики могут переопределить значение DEFAULT_VALUE в метаданных параметров используя обработчики DefaultValue.
  • DBGate поддерживает разбивку результата по страницам и параметры $top и $skip в URL запроса.
    Разбивка на страницы для таблиц и представлений выполняется автоматически.
    Разработчики могут реализовать разбивку на страницы для хранимых процедур, используя следующие пары параметров:
    top и skip, limit и offset, $top и $skip или $limit and $offset.
    Используйте опцию MaxPageSize для настройки максимального размера страницы.
  • Клиент JavaScript поддерживает фиксацию колонок.
  • Клиент JavaScript позволяет выполнять обработчики типа Actions и ContextMenu.
  • Клиент JavaScript поддерживает JSON-параметры процедур редактирования.
  • Клиент JavaScript поддерживает процедуры обновления единственным запросом (bulk update).

Улучшения:

  • Платформа DBGate обновлена до .NET 6.0.
  • DBGate поддерживает SaveToDB Framework 10.
  • Клиент JavaScript значительно переработан, включая CSS.
  • DBGate преобразует пустые значения не строковых типов в NULL.
  • DBGate выводит в свойствах DATA_TYPE значения System.DbType вместо типов данных SQL конкретной платформы.
  • DBGate не добавляет поля @ псевдокода SQL в выходные поля SELECT.
    Например, id, state, @country_id преобразуется в SELECT id, state FROM ... WHERE country_id = @country_id.
  • Параметры хранимых процедур и SQL кода могут использовать символы в кодировке XML для получения значений из базовых колонок.
    Например, параметр @company_x0020_name получает значение колонки "company name".

Исправленные ошибки:

  • DBGate не читает объекты SQL Data Warehouse.
  • DBGate возвращает пустой заголовок content-type для некоторых ответов text и HTML.