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

OSCHINA-MIRROR/dotnetchina-Furion

03.03.2025 18:19
GitLife Service Account
  • Новые возможности

    • [Добавлено] Упрощённая функциональность шаблонов строк с поддержкой удалённых запросов, модулей баз данных, логирования, событийной шины, планировщика задач, исключений и валидации данных #I402BL
    • [Добавлено] Нормализация обработки по умолчанию для кода состояния HTTP 404 #I408F5
  • Критические изменения

    • [Удалено] Статический метод Db.GetNewDbContext() #I400BK
    • [Удалено] Поддержка расширения временных таблиц в модуле баз данных #I405HI
    • [Изменено] Аргументы интерфейса IJsonSerializerProvider, добавлен аргумент inherit #I3ZQU5
  • Исправление ошибок

    • [Исправлено] Проблема границ значений в службе Worker Services, приводящая к пропуску одноразовых задач #I405NI
    • [Исправлено] Ошибка независимого выпуска службы Worker Services, при котором сканирование сборок прекращается #I3ZH3X
    • [Исправлено] Исключение при передаче пустого адреса запроса RequestUrl при конфигурации клиента Client #I40BC6
    • [Исправлено] Исключение при нормализации кода состояния при короткоживущих операциях #I408F5
Последнее сообщение коммита: 🔔 publish v2.13.0 version.
03.03.2025 18:18
GitLife Service Account

Версия v2.10/2.11/2.12 (текущая версия)

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

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

    • [Добавлено] Расширение App.Configuration.Reload() #I3XYI8
    • [Добавлено] Поддержка асинхронных методов в ISubscribeHandler #I3XYHJ
  • [Добавлено] Настройка изменяемых кодов ответа с помощью app.UseUnifyResultStatusCodes() #I3VZQH

  • [Добавлено] Добавление по умолчанию заголовка User-Agent для удалённых запросов #I3W17C

  • [Добавлено] Поддержка расширенной прокси SQL для переключения контекста баз данных #I3XFP6 #I3XDCR

  • [Добавлено] Автоматическое распознавание формата Cron для задач планировщика #I3Y7GT

  • [Добавлено] Возможность перехвата операций расширенной прокси SQL #I3YHG4

  • [Добавлено] Перехват всех исключений для удалённых запросов #I3YPDE

  • [Добавлено] Настройка времени ожидания (timeout) для удалённых запросов #I3YPPK

  • [Добавлено] Новый алгоритм шифрования RSA #I3YZNU !345

  • [Добавлено] Поддержка DataTable и DataSet без указания строгого типа возврата #I3Z6RI

  • Разрушительные изменения

    • [Удалено] Все функции "False Delete" / "Soft Delete" #I3XKII
    • [Удалено] Алгоритм шифрования PBKDF2 #I3Z0IO
    • [Изменено] Переименование атрибута [NonAutomatic] в [Manual] #I3XKKX
    • [Изменено] Переименование атрибута [NotChangedListener] в [SuppressChangedListener] #I3XKLZ
    • [Изменено] Переименование атрибута [ManualSaveChanges] в [ManualCommit] #I3XKNP
    • [Изменено] Переименование свойства DbContext.TenantIdQueryFilterExpression в DbContext.BuildTenantQueryFilter #I3XKTB
    • [Изменено] Переименование атрибута [SkipScan] в [SuppressSniffer] #I3XN5N
    • [Изменено] Переименование атрибута [SkipProxy] в [SuppressProxy] #I3XN7O
    • [Переработано] Улучшение производительности выполнения SQL на 20% #I3W33U
  • Исправления ошибок

    • [Исправлено] Проблема сканирования контроллеров для динамических WebAPI, где не регистрировались сторонние контроллеры #I3Y7TJ
    • [Исправлено] Недействие установки TablePrefix в AppDbContext: #I3Y57Q
    • [Исправлено] Ошибка завершения программы при использовании асинхронного делегата для задач планировщика #I3XVZ0
    • [Исправлено] Проблема с триггером первого обработчика при нескольких обработчиках одного сообщения #I3XYP0
    • [Исправлено] Ошибка при передаче отрицательного или нулевого номера страницы в методе пагинации .ToPagedList() #I3XNAN
    • [Исправлено] Исключение при сериализации DateTimeOffset по умолчанию JSON #I3XMOL
    • [Исправлено] Баг повторного логирования в Worker Service при наследовании Serlig #I3WA0L !331
    • [Исправлено] Баг добавления типа Clay в объект Clay #I3W9LW
    • [Исправлено] Ошибочное регулярное выражение для проверки чисел в ValidationTypes.Numeric #I3WADS
    • [Исправлено] Проблема с параметром Value DbParameter, который является типом object и не указан #I3YKM6
    • [Исправлено] Ошибка при работе с курсорами параметров хранилища Oracle #I3ZBYE
    • [Исправлено] Проблема запуска Worker Services после самостоятельной публикации #I3ZH3X
    • [Исправлено] Исключение при сериализации без возвращаемого значения для удалённых запросов !348
  • Другие изменения

    • [Улучшено] Поддержка использования кириллического имени для конфигурационных файлов, таких как appsettings.json #I3YBFD
    • [Улучшено] Обработка совместимости адреса BaseAddress для конфигурации удалённых запросов #I3YCRH
    • [Удалено] Безполезный код из фреймворка, оптимизация кода
    • [Оптимизировано] Производительность Furion в среде без веб-сервера
  • Изменения в документации

    • [Добавлено] Документация по управлению сессий и состояния #I3YI3G
    • [Обновлено] Документация по удалённым запросам, логам, контексту базы данных, удалённым запросам, расширенной прокси SQL
    • [Обновлено] Конфигурационные файлы #I3Y2EV
  • Ответы на вопросы

    • [Ответ] Как наследовать несколько источников данных с помощью dapper? #I3WUOI

    • [Ответ] Вопросы о многократном выполнении SpareTime #I3XEQU

    • [Ответ] Как уведомить опцию о необходимости изменения при изменении данных в базе данных? #I3XYI8

    • [Ответ] Проблема получения Id арендатора при добавлении нового арендатора SaaS #I3Y5CF

    • [Ответ] Получение _httpContextAccessor.HttpContext равняется null #I3Y6BI

    • [Ответ] Проблема чтения значений App.Configuration в Ubuntu #I3Y74H

    • [Ответ] Вопросы о области действия контекста базы данных #I3YHXP

    • [Ответ] Проблема успешного выполнения транзакций Unit of Work, но наличие системных ошибок #I3YIWU

    • [Ответ] Настройка случайного выбора вторичного сервера для чтения и записи #I3YVR7- Не реализовано

    • [Устарело] Добавление панели управления Dashboard для SpareTime, позволяющей приостанавливать, удалять и просматривать задачи #I3XELY

Последнее сообщение коммита: 🎗 publish v2.11.1 version.
03.03.2025 18:16
GitLife Service Account

В этом выпуске внесены несколько существенных изменений, поэтому при обновлении внимательно проверьте изменения.

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

    • [Добавлено] app.UseUnifyResultStatusCodes() — конфигурирование модификации возвращаемых кодов состояния #I3VZQH
    • [Добавлено] Добавление по умолчанию заголовка User-Agent для удалённых запросов #I3W17C
    • [Добавлено] Поддержка Sql с возможностью переключения контекста баз данных через прокси-локатор #I3XFP6 #I3XDCR
  • Существенные изменения

    • [Удалено] Все функции FakeDelete (ложное удаление / мягкое удаление) #I3XKII
    • [Изменено] Переименование атрибута [NonAutomatic] в [Manual] #I3XKKX
    • [Изменено] Переименование атрибута [NotChangedListener] в [SuppressChangedListener] #I3XKLZ
    • [Изменено] Переименование метода [ManualSaveChanges] в [ManualCommit] #I3XKNP
    • [Изменено] Переименование свойства DbContext.TenantIdQueryFilterExpression в DbContext.BuildTenantQueryFilter #I3XKTB
    • [Переработка] Улучшение производительности выполнения SQL-запросов на 20% #I3W33U
  • Исправления ошибок

    • [Исправлено] Ошибка генерации повторяющихся логов при наследовании от Serlig в сервисах Worker #I3WA0L !331
    • [Исправлено] Ошибка добавления типа Clay к объекту Clay динамически #I3W9LW
    • [Исправлено] Неправильное регулярное выражение для проверки типов значений Numeric #I3WADS
  • Другие изменения

    • [Удалено] Безполезный код в рамках проекта, оптимизация кода
    • [Оптимизация] Улучшение производительности Furion в среде работы вне веб-сервера
  • Изменения в документации

    • [Обновлено] Обновление документации по удалённым запросам, логам, контексту баз данных и другим разделам
  • Ответы на вопросы

    • [Ответ] Как наследовать несколько источников данных с помощью Dapper #I3WUOI
  • [Ответ] Проблемы многократного выполнения задач SpareTime #I3XEQU

  • Не реализовано

    • [Устарело] Создание панели управления Dashboard для задач SpareTime, позволяющей приостанавливать, удалять и просматривать задачи #I3XELY
Последнее сообщение коммита: 🎉 publish v2.10.0 version, this version has many break changes.
03.03.2025 18:15
GitLife Service Account
  • Новые возможности

    • [Добавлено] Поддержка глобального слушателя независимых от .NET ресурсов приложения и реализация освобождения этих ресурсов в определённые моменты времени #I3VXAU
    • [Добавлено] Версия пакета Furion.Pure, которая не зависит от EntityFramework.Core #I3VGW8
    • [Добавлено] Возможность настройки Swagger для поддержки нескольких языков, язык автоматически добавляется в конец адреса API #I3VDTD
    • [Добавлено] Динамическая поддержка WebAPI с использованием параметров [FromRoute], которые могут быть не обязательными #I3VFIM
    • [Добавлено] Поддержка настройки ограничений маршрута для параметров WebAPI #I3VFIR
    • [Добавлено] Поддержка шифрования MD5 и DES с возможностью вывода в верхнем регистре #326
  • Разрушение статус-кво

    • [Добавлено] Генерация пакетов .snupkg для всех пакетов Furion, что позволяет прямо отладить исходный код всех пакетов Furion во время разработки #I3VFIX
    • [Изменено] Возвращаемое значение метода repository.BuildChange(), теперь дополнительно возвращает объект IServiceScope #I3VX3D
    • [Изменено] Изменение параметра days на minutes в методе обновления Token JWT #I3VXNB
  • Устранение ошибок

    • [Исправлено] Ошибка парсинга корневого сервиса при вызове App.GetOptionsSnapshot<>() #I3VS2X
  • [Исправлено] Устранение проблемы возникновения исключения при возврате null значения типа Stream при удалённых запросах #I3VSTU

  • Другие изменения

    • [Оптимизация] Реализация автоматического освобождения независимых от .NET ресурсов после завершения запроса для снижения использования оперативной памяти #I3VXAU
  • Изменения в документации

    • [Обновление] Обновление документации для статического класса App, документации для удалённых запросов и документации для разделения таблиц и баз данных
  • Ответы на вопросы

    • [Ответ] Разрешение ошибки при создании правил генерации [HttpMethod] на основе имени метода для динамических WebAPI #I3VKQG
    • [Ответ] Ответ на вопрос о том, почему при вызове InsertAsync выдается сообщение об ошибке "ID" равен null #I3VS7E
  • Не реализовано

Последнее сообщение коммита: 🤣 publish v2.9.0 LTE version.
03.03.2025 18:14
GitLife Service Account
  • Новые возможности

    • [Добавлено] Метод Db.GetMSRepository() для получения статического репозитория для основной и репликационной баз данных #I3UBSJ
    • [Добавлено] Поддержка работы с единой транзакцией в статических классах #I3S9N8
    • [Добавлено] Логирование выполнения SQL запросов через EFCore #I3SE8X
    • [Добавлено] Поддержка использования по умолчанию конфигурации HttpClient для удалённых запросов #I3SI17
    • [Добавлено] Возможность генерации короткого уникального ID #I3T7JP
    • [Добавлено] Настройка замены чувствительных слов при использовании атрибута [SensitiveDetection] #I3THIA
    • [Добавлено] Открытые методы SpecificationDocumentBuilder.DocumentGroups и SpecificationDocumentBuilder.CheckApiDescriptionInCurrentGroup(currentGroup, apiDescription) #I3UDSY
  • Разработки

    • [Переработано] Код распределенного непрерывного GUID #I3UBK0
    • [Изменено] Название метода Scoped.CreateUnitOfWork изменено на Scoped.CreateUow #I3SJPU
    • [Изменено] Изменение возвращаемых значений метода JWTEncryption.Validate, теперь поддерживаются объекты типа TokenValidationResult #I3S2ND
  • Устранение ошибок

    • [Исправлено] Проблема с работой [DataValidation] и [SensitiveDetection] в многоязыковых приложениях #I3UH6U
    • [Исправлено] Ошибки при вызове асинхронных методов Scoped #I3SJF6
    • [Исправлено] Проблема с использованием ToPagedList в Mysql #I3SJQ3
    • [Исправлено] Проблема с отсутствием имени проекта в tool/cli.psl #I3S1T6
    • [Исправлено] Проблема с передачей Body при отправке файла через HTTP POST #I3TKFH
    • [Исправлено] Проблема с разделителем multipart/form-data #I3TNO9
  • Другие изменения

    • [Улучшено] Поддержка пропуска нормализации результата в middleware #I3T2AA
    • [Изменено] Обновление части колонок UpdateIncludeNowAsync имеет двусмысленность #I3RW9Q
      Yöntemleri içine yerleştirildi #I3S9T5
    • [Оптимизация] Улучшение производительности фреймворка, снижение потребления памяти до 86МБ с 136МБ
    • [Другое] Удаление ненужного кода, улучшение названий
  • Изменения в документации

    • [Добавлено] Документация по внедрению зависимостей Inject #I3TITA
    • [Обновлено] Примеры кода версии 4.2.9, методы перемещены внутрь класса #I3S9T5
    • [Исправлено] Ошибка в ссылках на изображения в разделе "Нормализация результата 6.5.6" #I3UBOQ
    • [Обновлено] Документация для статического класса Scoped
  • Ответы на вопросы

    • [Ответ] По умолчанию MasterDbContextLocator не создаётся с учётом пользовательских параметров #I3SDBB
    • [Ответ] В событийном байпасере невозможно получить информацию пользователя, это нормально? #I3SS0U
    • [Ответ] Есть ли способ получить полные данные при наличии фильтра многопользовательской системы? #I3T0VI
    • [Ответ] Ошибка при использовании &"tools/cli.ps1" для страницированной загрузки структуры таблицы в MySQL #I3T4F8
    • [Ответ] Приоритет запуска других Web начальных конфигураций #I3T8IP
    • [Ответ] Советы по реализации служб помощников #I3T906
    • [Ответ] После активации easy connection доступ из одного LAN адреса работает, но удалённые запросы нет #I3TA2U
    • [Ответ] scope.ServiceProvider.GetService<IOtherService> не существует #I3TQMV
    • [Ответ] Можно ли использовать в WPF проекте? #I3TMCC
    • [Ответ] Использование Dapper с несколькими источниками данных #I3TM9B
    • [Ответ] Ошибка при использовании метода L.GetSelectCulture() #I3TQS4
    • [Ответ] Полученные значения при повторном использовании IDGen.NextID() не являются последовательными #I3UAF6
    • [Ответ] Поддержка динамической загрузки плагинов с использованием шаблонов #I3UDT8
    • [Ответ] Ошибка при создании View в контроллере MVC #I3UFGB
    • [Ответ] Отсутствие семян данных при миграциях базы данных #I3UI7G
  • Не реализовано

    • [Устарело] Добавление алгоритма ограничения потока с помощью бакета токенов #I3SCDV
    • [Устарело] Реализация немедленного выполнения задач по расписанию #I3SF4A
    • [Устарело] Предложение по документации относительно Redis и ES, очередей сообщений #I3T90I
    • [Устарело] Ограничение частоты запросов по IP #I3UHE1
    • [Устарело] Большой модуль перенаправления URL #I3TZHO
Последнее сообщение коммита: 🤐 publish v2.8.0 version.
03.03.2025 18:12
GitLife Service Account
  • Новые возможности

    • [Добавлено] Поддержка работы с единицами транзакций, включая обязательное использование общих транзакций для статических классов #I3S9N8
    • [Добавлено] Вывод логов при выполнении SQL-запросов через EFCore #I3SE8X
    • [Добавлено] Поддержка использования конфигурации HttpClient по умолчанию для удалённых запросов #I3SI17
  • Критические изменения

    • [Изменено] Имя метода Scoped.CreateUnitOfWork изменено на Scoped.CreateUow #I3SJPU
    • [Изменено] Возвращаемое значение метода JWTEncryption.Validate теперь поддерживает тип TokenValidationResult #I3S2ND
  • Устранение ошибок

    • [Исправлено] Проблема отмены задачи при использовании асинхронных методов серии Scoped #I3SJF6
    • [Исправлено] Ошибка использования MySqlConnection при вызове метода ToPagedList для баз данных MySQL #I3SJQ3
    • [Исправлено] Отсутствие имени проекта в файле tool/cli.ps1 #I3S1T6
  • Другие изменения

    • [Оптимизация] Повышена производительность фреймворка, значительно снижены потребление памяти и вероятность её переполнения, размер начальной памяти снижен до 86 МБ с 136 МБ
    • [Изменено] Обновлено имя метода UpdateIncludeNowAsync, которое было двусмысленным #I3RW9Q
  • Изменения в документации

    • [Обновлено] Документация примеров кода для версии 4.2.9, где методы были неправильно расположены внутри класса #I3S9T5
  • Ответы на вопросы

    • [Ответ] По умолчанию MasterDbContextLocator не создаётся с учётом переданных параметров #I3SDBB
  • Не реализовано

    • [Удалено] Реализация алгоритма ограничения частоты запросов с помощью бакета токенов #I3SCDV
    • [Удалено] Реализация требования немедленного выполнения планировщика задач #I3SF4A
Последнее сообщение коммита: 😎 publish v2.7.0 version.
03.03.2025 18:11
GitLife Service Account
  • Новые возможности

    • [Добавлено] Виртуальный сервис файлов, поддерживающий физические файлы и встроенные ресурсы #I3RBR9
    • [Добавлено] Чтение и запись с разделением нагрузки/основной и резервной базы данных хранилища IMSRepository и IMSRepository<TMasterDbContextLocator>, позволяющие случайным образом или по своему выбору получать резервную базу данных #I3R5ZF
    • [Добавлено] Обработка конфиденциальной информации #I3R5ZF
  • Разрушительные изменения

    • [Удалено] Серию методов работы с базой данных InsertOrUpdate #I3RI9L
    • [Удалено] Все методы работы с базой данных, содержащие слово Exists #I3RJ0T
    • [Изменено] Название статического класса генератора GUID IDGenerater на IDGen #I3RGUA
  • Исправление ошибок

    • [Исправлено] Ошибку вызова удаленного метода, при которой заголовок запроса Headers не может быть добавлен к подинтерфейсу IHttpDispatchProxy #I3RAF7
  • Другие изменения

    • [Оптимизация] Улучшение производительности запуска приложения за счет снижения выделения памяти
  • Изменения в документации

    • [Добавлено] Документация по обработке конфиденциальной информации #I3R6WZ
  • [Добавлено] Документация по файловой системе, статическому классу FS #I3RCC4

  • [Обновлено] Документация по чтению и записи с разделением нагрузки/основной и резервной базы данных, хранилищу базы данных, статическому классу Db #I3R3B6

  • Ответы на вопросы

    • [Ответ] По поводу кластеризации Furion #I3R3J4
    • [Ответ] После обновления до последней версии фреймворка возникли ошибки при создании моделей базы данных #I3R7TP
    • [Ответ] При выполнении транзакций в контексте базы данных после выполнения SaveNow появляется предупреждение #I3RAJI
  • Не реализовано

    • [Отклонено] Порядковый Guid имеет фиксированную точность в миллисекундах: несколько Guid могут быть сгенерированы в течение одной миллисекунды и будут непредсказуемыми #I3R59J
Последнее сообщение коммита: 🥽 publish v2.5.0 version.
03.03.2025 18:10
GitLife Service Account
  • Новые возможности

    • [Добавлено] Поддержка автоматической загрузки модульных/плагинных файлов с расширением .xml #I3Q7XY
    • [Добавлено] Свойство AppDbContext.FailedAutoRollback, позволяющее конфигурировать автоматическое откатывание транзакций #I3QOUS
  • Разрушительные изменения

    • [Обновление] .NET 5 SDK версии 5.0.6
    • [Добавлено] Интерфейсный метод IJsonSerializerProvider.GetSerializerOptions() #I3QIJN
  • Исправления ошибок

    • [Исправлено] Проблема с загрузкой модульных/плагинных компонент через services.AddInject() #I3Q7XH
  • [Исправлено] Возврат null при работе с семенами данных #I3QCM5

  • [Исправлено] Проблема с преобразованием свойств в нижний регистр после создания объекта Clay через Clay.Object #I3QRV3

  • Другие изменения

    • [Улучшение] Оптимизация производительности основного уровня Furion фреймворка, снижение потребления памяти и увеличение скорости инициализации приложения 92f8cc1
  • Изменения в документации

    • [Обновление] Документация по сериализации JSON, нормализации результатов и контексту базы данных
  • Ответы на вопросы

    • [Ответ] Ошибка при использовании InsertOrUpdateNowAsync #I3QKO5
  • Не реализованное

    • [Устарело] Самостоятельное определение события Failed для задач планировщика #I3QCM2
    • [Устарело] Создание таблиц базы данных динамически для модульных компонент #I3QH3G
    • [Устарело] Предложение добавить поддержку очередей сообщений (MQ) в событийной шине #I3QWZ4
    • [Устарело] Переработка всего модуля нормализации #I3NFT7

Последнее сообщение коммита: 😐 publish v2.4.0 version.
03.03.2025 18:09
GitLife Service Account
  • Новые возможности

    • [Добавлено] Поддержка расширения Furion.Extras.DatabaseAccessor.MongoDB #I3PKST
    • [Добавлено] Динамическое преобразование типов данных в object или dynamic #I3OY27
    • [Добавлено] Метод Oops.Retry, поддерживающий повторные попытки при ошибочном вызове метода #I3PJKQ
    • [Добавлено] Настройка узла конфигурации JWTSettings для алгоритма шифрования #I3PQGV
  • Разрушительные изменения

    • [Поддерживается] Поддержка версии .NET 6.0.0 Preview 3 #I3P2C7
  • Исправление проблем

    • [Исправлено] Ошибка генерации модели с помощью tools/cli.ps1 из таблиц базы данных #I3PL18
    • [Исправлено] Некорректное значение примера (Example Value) Swagger после применения атрибута [NonUntify] #I3PK0L
  • Другие изменения

    • [Улучшено] Конфигурирование сериализации по умолчанию вместо ручной настройки #I3P1SJ
    • [Улучшено] Расширение библиотеки SqlSugar, позволяющее получать объекты контекста без использования generics #I3PK2N
    • [Улучшено] Конфигурирование распределенного кеша памяти #I3POKD
  • Изменения в документации

    • [Документация] Добавлена отдельная документация для конфигурации JWTSettings #I3PQGW
  • Ответы на вопросы

  • Не реализовано

    • [Устарело] Поддержка CAS #I3PIET
Последнее сообщение коммита: 🎨 publish v2.3.0 version, close #I3PQGW #I3PQGV
03.03.2025 18:08
GitLife Service Account
  • Новые возможности

    • [Добавлено] тип данных Clay, который позволяет создавать слаботипизированные объекты с помощью C# и работать со слаботипизированными данными #I3O2QQ
    • [Добавлено] метод Scoped.Create с возвращаемым значением #I3O47J
    • [Добавлено] поддержка передачи фабрик области в методах Scoped.Create() #I3OAP5
    • [Добавлено] поддержка синхронного выполнения событий через шины событий #I3OAW2
    • [Добавлено] атрибут [DataValidation], который пропускает проверку пустых строк и нулевых значений #I3OGEN
    • [Добавлено] возможность конфигурации сервиса Worker для автоматической регистрации рабочих процессов #I3OLW4
  • Разработки

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

    • [Исправлено] задачи планировщика, которые не выполняются при установке параметра cancelInNoneNextTime: false #I3O3N0
    • [Исправлено] проблема с пустыми исключениями при использовании SpareTime для определения времени следующего выполнения #I3O46X
    • [Исправлено] отсутствие добавления интерцептора контекста базы данных при установке MiniProfiler как false #I3OAWX
    • [Исправлено] проблема с пустыми ссылками при одновременной конфигурации [Consumes("application/x-www-form-urlencoded")] и ModelQuery #I3ODUR
  • Другие изменения

    • [Улучшено] поддержка минимизации выходных файлов после выпуска #I3OAPF
    • [Улучшено] механизм автоматической перезагрузки токена с новыми значениями для обработки ошибок, что решает проблемы с конкурентной перезагрузкой токена #I3OGYF
  • Изменения в документации

    • [Добавлено] документация по объектам Clay #I3OG18
  • Ответы на вопросы

    • [Ответ] Как получить отправленные файлы в динамическом WebAPI? #I3O29B
    • [Ответ] Проблемы использования Scope.CreateUnitOfWork в задачах планировщика #I3O2CD
    • [Ответ] Неправильная работа однофайлового выпуска программы #I3O4D8
    • [Ответ] Конфликт между фильтрами арендатора и мягкими удалениями, приводящий к генерации только одной фильтрационной условности #I3OB0A
    • [Ответ] Утрата работы cross-origin после переадресации HTTP на HTTPS #I3OB8R
    • [Ответ] Исключение при использовании rep.FirstOrDefault(u => u.Id == UserId) в PostgreSQL #I3O5OF
  • Не реализовано

    • [Отменено] Есть ли планы предоставить возможность экспорта документов Swagger в формат markdown/word? #I3OL8O
    • [Отменено] Различия в SQL, сгенерированном для родителей и детей в наследовании базовых данных #I3NHU3
Последнее сообщение коммита: 😍 publish 2.2.0 version.
03.03.2025 18:07
GitLife Service Account
  • Новые возможности

    • [Добавлено] Поддержка планировщика задач ISpareTimeWorker с использованием конфигурационного пути [SpareTime("{конфигурационный_путь}") #I3NTUX
    • [Добавлено] Поддержка асинхронных делегатов в планировщике задач #I3NP96
    • [Добавлено] Лёгкий распределённый генератор непрерывных GUID #I3NKLZ
    • [Добавлено] Модуль ClayObject, работающий с типами ExpandoObject и IDictionary<string, object> #I3N3J4
    • [Добавлено] Метод Scoped.CreateUnitOfWork(handler), создающий область действия и автоматически отправляющий изменения в базе данных #I3NU3G
  • Разрушительные изменения

    • [Изменено] Нормализация метода результатов ответа OnResponseStatusCodes с добавлением параметра UnifyResultStatusCodesOptions #I3NDB9
    • [Удалено] Исходный код реализации ID снегурта #I3NKLZ
  • Исправление ошибок

    • [Исправлено] Swagger не поддерживает перечисления типа отличного от int #I3NQM8
    • [Исправлено] Проблема многопоточности пула соединений базы данных #I3NR4L
  • Другие изменения

    • [Улучшено] Поддержка миграции семян данных при запуске приложения #I3NH3M
  • Изменение документации

    • [Добавлено] Документация по распределённому генератору ID #I3B6CX
  • [Добавлено] Документация по модульной разработке #I3NSUS

  • [Обновлено] Ошибочный метод ToAESDecrypt был записан как ToToAESDecrypt #I3NNKV

  • Ответы на вопросы

    • [Ответ] Ответы на вопросы о планировщиках задач и делегатах #I3N3EW
    • [Ответ] Поддержка пользовательских настроек для унифицированного формата возврата #I3NU1G
  • Не выполненные задачи

    • [Отменено] Реализация расширения IEnumerableExtensions для метода OrderBy для поддержки сортировки по страницам #I3NOQ9
Последнее сообщение коммита: 🍚 close #I3NU3G #I3NTUX
03.03.2025 18:06
GitLife Service Account
  • Новые возможности

    • [Добавлено] Поддержка консольных приложений и служб Worker Services #I3K4DG
    • [Добавлено] Полная функциональность планировщика задач #I3IRUX
    • [Добавлено] Парсер выражений Cron #I3IQ9Y
    • [Добавлено] Поддержка кастомной конфигурации Swagger с адресами шаблонов swagger.json #I3IHMX
    • [Добавлено] Поддержка динамической конфигурации областей WebApi #I3IJAZ
    • [Добавлено] Поддержка передачи сервис-провайдера IServiceProvider в удалённые запросы #I3IVBL
    • [Добавлено] Глобальная конфигурация SupportPackageNamePrefixs для поддержки пакетных префиксов #I3K0SN
    • [Добавлено] Поддержка сканирования сборок типа referenceassembly при запуске приложения #I3K0SN
  • Разработки

    • [Переработано] Полная функциональность планировщика задач #I3IRUX
    • [Переработано] Функциональность модуля логирования #I3J2K0
    • [Переработано] Функциональность движка шаблонов #I3J46E
    • [Переработано] Нижележащий EFCoreRepository репозиторий #I3J6W5
    • [Переработано] Расширение нижележащей SQL строки #I3IVCE
    • [Переработано] Логика нижележащего репозитория SqlRepository #I3J6V6
    • [Переработано] Расширение методов базовых данных #I3J609
    • [Изменено] Преобразование синхронного выполнения событий в асинхронное #I3J0WA
    • [Удалено] Расширение HttpContext.IsAjaxRequest() в нижележащем фреймворке #I3IVAA
  • Исправление ошибок

    • [Исправлено] Проблема с незначением параметра InjectMiniProfiler и недействием кэша #I3IHLR
    • [Исправлено] Ошибочное освобождение контекста базы данных при вызове свойства Tenant в многопользовательской среде #I3IC70
  • [Исправлено] Исключение при возврате примитивного типа из SQL агента #I3IC84

  • [Исправлено] Название выходного значения в хранимых процедурах не совпадает с определенным #I3IC7Y

  • [Исправлено] Ошибка регулярного выражения для проверки номера телефона #I3ID10

  • [Исправлено] Проблема с отсутствием захвата внутренних исключений через AOP #I3IGCC

  • [Исправлено] Выполнение глобального фильтра исключений после отметки обработки исключения #I3J463

  • [Исправлено] Недействие пользовательского глобального фильтра исключений #I3K1SJ

  • Другие изменения

    • [Улучшено] Типы сканирования сборок при старте программы #I3K0SN
    • [Улучшено] Проблема получения одного значения через App.GetConfig<>("key") #I3ILF1
    • [Улучшено] Использование Uri.EscapeDataString() вместо HttpUtility.UrlEncode для UrlEncode #I3ICTK
  • Обновление документации

    • [Добавлено] Документация по задачам планировщика и фоновым задачам #I3JHHG
    • [Добавлено] Документация по службе ролей #I3K5GN
    • [Обновлено] Документация по динамическим WebAPI, нормализации и контексту базы данных
  • Ответы на вопросы

    • [Ответ] Проблема с невалидностью пользовательских ErrorMessage #I3ICL3
    • [Ответ] Влияние нового метода сериализации JSON на AOP #I3I7VE
    • [Ответ] Установка типа TenantId в Furion.DatabaseAccessor.PrivateEntityBase #I3IQV6
    • [Ответ] Вопросы относительно обработки исключений #I3IUFZ
    • [Ответ] Проблема игнорирования DataValidation при пустых значениях #I3IWSM
    • [Ответ] Отсутствие обновления документации по логированию #I3J1DX
    • [Ответ] Возможность отправки простых типов параметров в WebAPI в виде JSON #I3J18I
    • [Ответ] Проблема с типом UnifyModel в реализации IUnifyResultProvider #I3JBXF
    • [Ответ] Как организовать модульное развитие новых функций? #I3J7ZZ
    • [Ответ] Предложение добавить интеграцию микрослужбы #I3JTZQ
  • Не реализовано

Последнее сообщение коммита: 🍟 publish v2.0.0 version.
03.03.2025 18:04
GitLife Service Account
  • Новые возможности

    • [Добавлено] Поддержка баз данных SQL Server 2005–2008 с использованием EFCore 5.0 #I3HZZ6
    • [Добавлено] Высокоуровневый агент для шаблонов замены SQL #I3HHWU #I3HH2T
    • [Добавлено] Шифрование PBKDF2 #I3HN7A
    • [Добавлено] Общие методы работы с JSON #I3HUYO
    • [Добавлено] Все методы парсинга услуг поддерживают передачу параметра IServiceProvider #I3HXEU
  • Разрушительные изменения

    • [Обновление] Версия .NET 5 SDK установлена до 5.0.5
  • Исправленные ошибки

    • [Исправлено] Отдалённые запросы application/x-www-form-urlencoded автоматически декодируются #I3HDPC
    • [Исправлено] Ошибка при вызове ISqlDispatchProxy с возвратом значений из хранимых процедур #I3HISS
    • [Исправлено] Исключение при работе с несколькими базами данных в единой транзакции #I3I2KN #I3HYN5
    • [Исправлено] Серийные логи Serilog создают слишком много файлов #I3I2PN
    • [Исправлено] Проблема утечки соединений в пуле соединений базы данных версии Yöntem 1.18.0 #I3I5KO
    • [Исправлено] Исключение при завершении транзакций SQLite #I3I9F2
  • Другие изменения

    • [Улучшение] Добавлена поддержка перечисляемых типов в шаблонах представлений #I3GYEE
    • [Улучшение] В режиме разработки MiniProfiler выводит информацию о базах данных #I3I8VQ
    • [Улучшение] Добавлена поддержка адаптера SQLite для EFCore 5.0 #I3I9FC
  • Изменения в документации

    • [Обновление] Обновлены документы по контексту баз данных, многопользовательской модели, репозиториям, логированию и сериализации.
  • Ответы на вопросы

    • [Ответ] Предложение добавить функциональность Furion в MVC-паттерне #I3GY4R
    • [Ответ] Вопросы о связях между таблицами баз данных #I3H5QP
    • [Ответ] Проблема генерации swagger.json в версии 1.17.5 Swagger #I3HGPZ
    • [Ответ] Конфликт расширения dll Serilog и MiniProfiler Swagger #I3HWJM
    • [Ответ] Проблема получения пустого результата при возвращении DataTable через высокую уровень SQL-агентство #I3HUWG
    • [Ответ] Проблема выполнения операций с базой данных внутри Task.Run #I3HZ9D
  • Не реализовано

Последнее сообщение коммита: 🚥 publish 1.19.0 version.
03.03.2025 18:03
GitLife Service Account
  • Новые возможности

    • [Добавлено] Поддержка версии Oracle 11 #I3EVL5
    • [Добавлено] Поддержка официального пакета MySQL MySql.EntityFrameworkCore #I3E6J1
    • [Добавлено] Глобальная конфигурация параметров WebApi с использованием атрибута [FromQuery] #I3EFYJ
    • [Добавлено] Расширение регистрации зависимостей через services.AddRisterTypes(types) #I3EIV3
    • [Добавлено] Поддержка работы с блоками транзакций в SqlSugar #I3EJO5
  • Первичные изменения

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

    • [Исправлено] Проблема повторной отправки данных при ошибке выполнения запроса в пуле контекстов базы данных #I3EIJJ
    • [Исправлено] Добавлен префикс @ для всех параметров команд SQL #I3EBJP
    • [Исправлено] Устранена проблема потока безопасности событий #I3EGSB #PR236
    • [Исправлено] Недействие метода SignoutToSwagger в расширении HttpContextExtensions #I3EHNQ
    • [Исправлено] Проблема повторного создания маршрутов при применении атрибута [ApiController] к динамическим WebAPI #I3EOQQ
    • [Исправлено] Ошибка генерации документации при отсутствии контроллеров WebAPI #I3EVLB
    • [Исправлено] Проблема регистрации типов зависимостей #I3EX66
  • Другие изменения

    • [Изменено] Тип свойства Context в расширенном хранилище SqlSugar изменён на SqlSugarClient #I3EHXA
    • [Улучшено] Разделение черного списка токенов в Redis для обновления токенов #I3EQWO
    • [Улучшено] Обработка исключений при повторных запросах в модуле прокси-запросов #I3ER71
    • [Улучшено] Изменение кэша многопользовательских приложений на распределенный кэш #I3EXEU
  • Изменения в документации

    • [Обновлено] Документация по работе с базой данных #I3E84X
  • Ответы на вопросы

    • [Ответ] Как легко получить URL и параметры, созданные IDynamicApiController #I3ED17
    • [Ответ] Проблема использования команды Add-Migration в Code First #I3EHD0
  • [Ответ] Проблема сгенерировать модели при использовании tools v1.16.0 #I3ENZ8

  • [Ответ] Проблема очистки токена при выходе из системы кнопкой Logout #I3EOF9

  • Не реализовано

Последнее сообщение коммита: 👧 close #I3EXEU
03.03.2025 18:02
GitLife Service Account
  • Новые возможности

    • [Добавлено] Поддержка динамического WebAPI с возможностью наследования конфигураций базового класса #I3D5PX
    • [Добавлено] Поддержка типа содержимого multipart/form-data в удалённых запросах #I3D7KG
    • [Добавлено] Расширение шифрования строк #I3DHBW
    • [Добавлено] Возможность прямого скачивания ответа из удалённого запроса и преобразование его в строковый тип #I3DIGR
    • [Добавлено] Поддержка шаблонизатора в адресах удалённых запросов #I3D5Y8
    • [Добавлено] Поддержка операции string.Format в сообщении ошибки атрибута [DataValidation] #I3E08W
    • [Добавлено] Расширение метода AppendQueries() для объекта HttpRequestMessage, позволяющее добавлять дополнительные параметры запроса #I3E3DI
  • Разработки

    • [Изменено] Возвращаемое значение метода IRepository.AsAsyncEnumerable() #I3DIQ1 изменено на: rep.AsQueryable().ToListAsync()
  • Устранение проблем

    • [Исправлено] Проблема с выводом успешных полей после провала данных проверки #I3CVBS
  • [Исправлено] Недействие конфигурации contentType равной application/x-www-form-urlencoded в удалённых запросах #I3CWBS

  • [Исправлено] Отсутствие полного отображения адреса запроса при использовании HttpClient #I3CY42

  • [Исправлено] Ошибочное использование алгоритма исключения файла конфигурации по умолчанию, должно быть использована регулярное выражение #I3D9E7

  • [Исправлено] Отсутствие действия при успешном выполнении запроса в системе мониторинга #I3DOE4

  • [Исправлено] Проблема с отсутствием файла Oracle.ManagedDataAccess.Core при использовании расширения Dapper для работы с Oracle #I3DYM3

  • Другие изменения

    • [Улучшено] Поддержка конфигурирования префикса Token, такого как Bearer , при получении информации JWT токена #I3DJIV
    • [Улучшено] Обновление способа хранения чёрного списка токенов, переход с внутреннего кэша на распределённый кэш #I3DPBR
  • Изменения в документации

    • [Изменено] Документация по удалённым запросам #I3CPJO
  • Ответы на вопросы

    • [Ответ] Отсутствие метода с двумя параметрами в LinqExpression.And #I3CXKZ
    • [Ответ] Как записывать информацию об ошибках в базу данных? :) #I3DDGO
    • [Ответ] Выбор интерфейса IEntityNotKey для сущностей без ключа #I3DWRF
    • [Ответ] Проблема с удалением записи по первичному ключу без ошибок #I3DWWF
    • [Ответ] Как настроить формат возврата API-интерфейсов #I3DZN6
    • [Ответ] Как решить вопрос публикации действий в DynamicApiController во время выполнения #I3D5UL
    • [Ответ] Необходимость фильтрации свойств с атрибутом NotMapped в методе ConvertToDbParameters класса DbHelpers #I3E2XS
  • Не реализовано

    • [Удалено] Предложение предоставления интерфейса ISoftDelete #I3CP93
Последнее сообщение коммита: 🥓 update documents.
03.03.2025 18:01
GitLife Service Account
  • Новые возможности

    • [Добавлено] Алгоритм генерации уникальных идентификаторов (IDGenerator) с использованием алгоритма Snowflake, благодаря автору idgenerator за вклад PR #PR204 #I3B60S
    • [Добавлено] Расширение метода обновления кэша многопользовательской модели для DbContext #I39N5U
      Yöntem #I3A5XL
    • [Добавлено] Метод получения текущего выбранного языка системы #I3BSDH
  • Разработки

    • [Обновление] Обновление SDK .NET 5 до версии 5.0.4 #I3ASTL
    • [Переработка] Переработка всех функций удаленного запроса #I2LB7M
    • [Переработка] Переработка функции сериализации JSON с предоставлением унифицированного абстрактного интерфейса для удобной замены библиотеки JSON #I39GT9
    • [Переработка] Переработка модели сообщений при ошибке валидации и нормализация параметров проверки #I3AFQW
    • [Улучшение] Улучшение функции горячей замены плагинов для реализации динамической загрузки и выгрузки #PR200, благодарю @SamWangCoder
    • [Удалено] Удаление статического класса JsonSerializerUtility и связанных настроек #I3AFRJ
  • Исправления ошибок

    • [Исправлено] Ошибка поддержки пользовательских правил валидации в режиме MVC #I39LM5
    • [Исправлено] Ошибка регулярного выражения для валидации чисел, не поддерживающая отрицательные значения #I39YUV
    • [Исправлено] Ошибка загрузки сборок, не привязанных к проекту, при запуске программы #I3A3Z4
    • [Исправлено] Ошибка логики метода EFCoreRepository.IsAttached() #I3A824
    • [Исправлено] Ошибка конфигурации CamelCase для динамических API #I3AF32
    • [Исправлено] Ошибка совместимости скрипта cli.ps1 с новой версией EFCore #I3APO9
    • [Исправлено] Ошибка использования атрибута [Table] для конфигурации таблицы в EFCore #I3BAYH
    • [Исправлено] Ошибка в методе CheckIsSplitCamelCase для динамических WebAPI #I3BLKX
    • [Исправлено] Ошибка конфигурации динамических WebAPI, где суффикс Async игнорируется #I3C3DA
    • [Исправлено] Ошибка использования старого токена refresh после обновления JWT #I3C8ZH
    • [Исправлено] Проблема с кодировкой переменных мультиязычия Razor #I3CBMU
  • Другие изменения

    • [Улучшение] Устранение проблемы чувствительности к регистру при обратной сериализации строки в System.Text.Json #I3BSXV
    • [Улучшение] Улучшение производительности MessageCenter #I39PRR
    • [Улучшение] Маленькие улучшения производительности пула контекста баз данных
  • Изменения в документации

    • [Добавлено] Автоматизация развертывания в Docker #PR209
    • [Добавлено] Документация по сериализации JSON #I3B6D8
    • [Обновлено] Обновление документов по CORS, безопасному доступу, реальному времени, многоязычности и нормализации
  • Ответы на вопросы

    • [Ответ] Конфигурация нескольких баз данных для печати SQL-запросов в Furion.Extras.DatabaseAccessor.SqlSugar #I39PDC
    • [Ответ] Проблема зависания системы при работе с Oracle в режиме многопользовательского доступа #I39RNH
    • [Ответ] Исключение при "ложном" удалении #I39XZA
    • [Ответ] Где следует хранить конфигурацию многоязычности Furion? Внутри или вне AppSettings? #I3A4SB
    • [Ответ] Недоступность контекста базы данных #I3A5HS
    • [Ответ] Есть ли группа общения QQ? #I3AAM7
    • [Ответ] Проблема с SignalR в Vue3 #I3ALQ7
    • [Ответ] Настройка необязательных параметров Swagger #I3AT02
    • [Ответ] Исключение Unknown column 'Discriminator' при вызове Insert в EFCore #I3B2LC
    • [Ответ] Ошибка при обратном проектировании MySQL с помощью cli #I3B64F
    • [Ответ] Ошибка сериализации типа DateTime в SQL-запросах #I3AZXK
    • [Ответ] Ошибка выполнения Add-Migration для MySQL #I3B8EW
    • [Ответ] Проблема получения tenant в SaaS-режиме с независимыми базами данных #I3AVXU
    • [Ответ] Как настроить единую модель ответа для WebAPI? #I3BBYW #I3BBYV
    • [Ответ] Проблема с неожиданными методами при создании нового контроллера #I3BKH5
    • [Ответ] Как парсить сервисы при использовании AOP? #I3BUM3
    • [Ответ] Пропущенные параметры при возврате данных из динамических WebAPI #I3C2XR
    • [Ответ] Как настроить вывод полей без преобразования в нижний регистр? #I38L9B
    • [Ответ] Настройка автоматического применения миграций Code First #I3CCR0
    • [Ответ] Разграничение систем при использовании смешанного доступа в WebAPI #I3CJCY
    • [Ответ] Поддержка рекурсивного бесконечного уровня связи в EFCore #I3CET9
  • Не реализовано - [Заброшено] Предложение по настройке внешних ключей в EFCore #I3994X

    • [Заброшено] Предложение разделить EFCore как плагин для выбора нужного ORM #I3ABNX
    • [Заброшено] Предложение добавить возможность возврата значений в событиях EventBus #I3AWL6
    • [Заброшено] Предложение использовать шаблоны SQL аналогично Mybatis #I3ASRS
    • [Заброшено] Предложение добавить поддержку передачи DTO моделей для обновления или исключения обновления конкретных колонок в EFCore #I3AS5K
    • [Заброшено] Предложение добавить событие завершения транзакции UnitOfWork #I3BRMI
Последнее сообщение коммита: 👨‍🦰 update documents.
03.03.2025 17:58
GitLife Service Account
  • Новые возможности

    • [Добавлено] Возможность пропуска прослушивания операций с базой данных для конкретных сущностей #I386LB
    • [Добавлено] Поддержка OldEntity в интерфейсе IEntityChangedListener #I385X2
    • [Добавлено] Расширение автоматической конфигурации центров связи и новых возможностей #I387QX
    • [Добавлено] Поддержка внедрения зависимостей типа IMapper через расширение Mapster #I38C7C
    • [Добавлено] По умолчанию добавлен конструктор для атрибута [AppDbContext] #I38J97
    • [Добавлено] Добавлена поддержка возвращаемого кода ошибки методом UnifyContext.GetExceptionMetadata(context) #I38ONX
  • Первичные изменения

  • Исправление проблем

    • [Исправлено] В многократных вызовах Db.GetNewDbContext() все еще возвращается один и тот же объект #I38NNP
    • [Исправлено] Проблема отфильтровывания свойства типа object в Swagger #I38FHL
    • [Исправлено] Проблема неподдерживаемого множественного наследования IEntityChangedListener для одного типа #I38UQJ
    • [Исправлено] Проблема несоответствия проверяемых свойств при использовании пользовательской сериализации #I38W8Z
  • Другие изменения

    • [Улучшено] Нестандартное имя переменной может вызывать путаницу при чтении кода
  • Изменения в документации

    • [Добавлено] Документация по интеграции FluentValidation #I38IOT
  • Ответы на вопросы

    • [Ответ] Вопрос совместимости версий Furion #I38WMZ
  • Не реализовано

    • [Устарело] Предложение добавить возможность динамического переключения баз данных в SqlSugar #I38G4M
    • [Устарело] Предложение использовать Channel для реализации MessageCenter #I38BP8
    • [Устарело] Предложение объединить документацию API с Knife4jUI или Redoc #I38S70
Последнее сообщение коммита: 🧂 update documents.
03.03.2025 17:57
GitLife Service Account
  • Новые возможности

    • [Добавлено] Поддержка баз данных Oracle в EFCore 5.0 #I37Z8E
    • [Добавлено] Управление отображением информации о подключении к базе данных в режиме разработки #I37YQ2
    • [Добавлено] Поддержка атрибута [NonUnify] в классах #I359Q6
    • [Добавлено] Интерцептор для HTTP-запросов с использованием HttpClient #I35F3E
    • [Добавлено] Расширение для получения удалённого адреса через HttpContext и HttpRequest #I3688Z
    • [Добавлено] Добавление Mvc-фильтров через services.AddMvcFilter<>() #I368BH
  • Разрушительные изменения

    • [Обновлено] Обновление зависимости .NET 5 SDK до версии Yöntem 5.0.3 #I37YQQ
    • [Обновлено] Обновление пакета Swashbuckle.AspNetCore до версии 6.0.x #I37EZK
    • [Удалено] Удаление расширения JWT из Furion, оставлено только в Furion.Extras.Authentication.JwtBearer #I35D59
  • Исправления ошибок

    • [Исправлено] Ошибка при передаче неверного JWT-токена, вызывающая исключение границ строки #I34ZE5
    • [Исправлено] Исключение при автоматическом добавлении временной области базы данных в единую работу #I37WTV
  • Другие изменения

    • [Оптимизация] Улучшение производительности получения системных параметров #I36SR5
    • [Оптимизация] Добавление кода для Mvc-фильтров в основе Furion #I36SKA
    • [Оптимизация] Добавление стандартного формата времени для сериализации JSON #I36SL0
    • [Обновлено] Обновление расширения SqlSugar до версии 5.0.2.6 #I36SIG
  • Изменения в документации

    • [Добавлено] Введение в использование баз данных #I37Z8S
    • [Добавлено] Обновление документации по истории выпусков #I36PI0
    • [Добавлено] Документация по аудиту запросов и выполнению SQL-команд #I36PIK
    • [Добавлено] Конфигурация CORS для axios в frontend #I36PIT
    • [Добавлено] Получение дополнительной информации о приложении и окружении через статический класс App #I36SOV
    • [Добавлено] Англоязычная README.md #I37QHP
  • Ответы на вопросы

  • Не реализовано

    • [Устарело] Автоматическое создание мультиязычных ресурсов #I35AA4
    • [Устарело] Предложение добавить поддержку уйгурского языка #I37X1L
Последнее сообщение коммита: 🎨 update documents.
03.03.2025 17:56
GitLife Service Account
  • Новые возможности

    • [Добавлено] Поддержка многоязычия и расширение функциональности #I2DOCL
    • [Добавлено] Возможность использования событийной шины и центра сообщений #I23BKN
    • [Добавлено] Настройка отображения и скрытия групп в Swagger #I2AHH8
    • [Добавлено] Расширение плагина Furion.Extras.Logging.Serilog #I2AAN8
    • [Добавлено] Поддержка параметра -Namespace в cli.ps #I2A175
    • [Добавлено] Автоматическое снятие блокировки авторизации при истечении срока действия Swagger #I2AIWC
    • [Добавлено] Поддержка повторного чтения Request.Body для решения проблем с SDK WeChat #I2AMG0
    • [Добавлено] Возможность отправки сетевых запросов и документация #I2APGJ
    • [Добавлено] Расширение SqlSugar для печати SQL в MiniProfiler #I2ASLS
    • [Добавлено] Расширение плагина Furion.Extras.DatabaseAccesssor.Dapper #I2ASYA
    • [Добавлено] Расширение плагина Furion.Extras.DatabaseAccessor.PetaPoco #I2AUGA
    • [Добавлено] Расширенные методы для работы со строками запросов #I2CPQ0
    • [Добавлено] Новое расширение PagedList для SqlSugar #I2CW99
    • [Добавлено] Поддержка проверки параметров при удалённых запросах #I2CX5L
    • [Добавлено] Удобный метод получения информации о текущем авторизованном пользователе App.User #I2CZLO
    • [Добавлено] Конфигурируемые возможности нормализации документов, поддерживающие конфигурацию appsettings.json #I2D1K9
    • [Добавлено] Добавление метода и параметров метода в интерцептор удалённых запросов #I2D2CM
    • [Добавлено] Поддержка возврата значения по умолчанию при ошибке удалённого запроса #I2D44M
    • [Добавлено] Поддержка настройки PropertyNamingPolicy при сериализации body удалённого запроса #I2D685
    • [Добавлено] Конфигурация клиента для удалённых сервисных интерфейсов #I2D7PS
    • [Добавлено] Возможность настройки SecurityDefinitions и SwaggerUI через AddInject и UseInject #I2DIMG
    • [Добавлено] По умолчанию доступен конструктор SecurityDefine #I2DNXT
    • [Добавлено] Класс динамического прокси AspectDispatchProxy #I2DO6I
    • [Добавлено] Атрибут QueryParameters для автоматической добавки FromQuery атрибута к Action параметрам #I2G8TF
    • [Добавлено] Динамическая конфигурация логгирования и расширенные методы #I2GDGD
    • [Добавлено] Возможность конфигурации предопределённых правил WebApi запросов #I2M70X
  • Разрушительные изменения

    • [Обновлено] Обновление .NET 5 SDK до версии .NET 5.0.2 #I2D0PZ
    • [Изменено] Переименование всех расширений внутри фреймворка в пространство имён Furion.Extensions #I2AH54
    • [Изменено] Изменение способа хранения авторизации Swagger с использованием Session на LocalStorage #I2AKUA
    • [Изменено] Оптимизация размера пакета фреймворка Furion #I2APAU
    • [Изменено] Преобразование App.CanBeScanTypes в App.EffectiveTypes #I2B0ZR
    • [Изменено] Преобразование свойства App.ServiceProvider и удаление метода App.GetDuplicateXXX #I2CYZE
    • [Изменено] Преобразование Db.GetDuplicateDbContext в Db.GetNewDbContext #I2CZ04
    • [Изменено] Преобразование Db.GetSqlDispatchProxy в Db.GetSqlProxy #I2DO9T
    • [Переопределен] Рефакторинг сервисного интерцептора Aop для поддержки асинхронного и синхронного выполнения #I2B9HQ
    • [Переопределен] Рефакторинг всех функций сетевых запросов #I2BMR7
  • Устранение ошибок - [Исправлено] Исправление проблемы несоответствия нормализации Swagger #I2ACF3

    • [Исправлено] Исправление ошибки NullException при операциях добавления или обновления данных с игнорированием пустых значений #I2AB6C
    • [Исправлено] Исправление проблемы неработающего глобального интерцептора Aop в Startup.cs #I2A7T2
    • [Исправлено] Исправление проблемы автоматического обновления токена при его истечении времени жизни #I2AWQI
    • [Исправлено] Исправление ошибки в swagger.json при использовании ApiDescriptionSettings(Tag="xx") #I2B47R
    • [Исправлено] Исправление ошибки преобразования типа tinyint в MySQL #I2BEBM
    • [Исправлено] Исправление проблемы многократного оборачивания типов при нормализации #I2BHHZ
    • [Исправлено] Исправление проблемы с базовым типом массива в динамическом API #I2BMS5
    • [Исправлено] Исправление ошибки преобразования enum в SQL запрос #I2BS2Y
    • [Исправлено] Исправление ошибки возвращаемого значения string.SqlQueryizeAsync<T1>() #I2BSTS
    • [Исправлено] Исправление проблемы с /swagger异常 в динамическом API подклассе при переопределении метода родительского класса и присвоении ему псевдонима #I2C9VP
    • [Исправлено] Исправление проблемы с регистром при сериализации application/json #I2CRJC
    • [Исправлено] Исправление проблемы с мультиплексированием баз данных #I2CVN0
    • [Исправлено] Исправление проблемы с установкой заголовков CORS #I2CW5T
    • [Исправлено] Исправление проблемы с выводом запросов в MiniProfiler при удалённых запросах #I2CZBC
    • [Исправлено] Исправление проблемы с интерцептором ответа при удалённых запросах #I2D4DG
    • [Исправлено] Исправление проблемы с добавлением параметров AsQueryable() в SqlSugar #I2DH1D
    • [Исправлено] Исправление проблемы с автоматическим обновлением токена при возникновении ошибки NullException #I2DO29
    • [Исправлено] Исправление проблемы с генерацией JWT Token без указания времени жизни #I2DO8L
    • [Исправлено] Исправление проблемы с порядком запуска AppStartup #I2DVD2
    • [Исправлено] Исправление проблемы с возникновением ошибки NullException при отсутствии службы многоязычия #I2ECUJ
    • [Исправлено] Исправление проблемы с совпадением регулярных выражений для буквенно-цифровых комбинаций #I2EF2Q
    • [Исправлено] Исправление проблемы с валидацией номера телефона или городского номера #I2M5IZ
    • [Исправлено] Исправление проблемы с Dapper расширением при парсинге SqlConnection #I2M5P2
    • [Исправлено] Исправление проблемы с EF миграцией после включения многоязычия #I2M7DT
    • [Исправлено] Исправление проблемы с IEntityTypeBuilder при работе с множественным наследованием #I2PAOD
    • [Исправлено] Исправление проблемы с JwtHandler при настройке автоматического обновления токена #I2SDOX
    • [Исправлено] Исправление проблемы с типом объекта подключения в расширении Dapper для SQL Server #PR159
  • Другие изменения

    • [Оптимизировано] Удаление механизма проверки NotMapper при отображении результатов SQL запросов #I34XD0
    • [Оптимизировано] Исключение IDynamicApiController при внедрении зависимостей #I2ECTG
    • [Оптимизировано] Улучшение производительности MD5 шифрования #PR158
  • Изменения в документации

    • [Переопределен] Переработка главной страницы документации #I34XBR
    • [Добавлено] Документация по сетевым запросам #I2APGJ
    • [Добавлено] Документация по многоязычному функционалу #I2DOCL
    • [Добавлено] Введение полнотекстового поиска в документации #I34XAW
    • [Добавлено] Глобальные статические типы #I34XB4
    • [Добавлено] Документация по настраиваемым опциям фреймворка #I34XB9
    • [Добавлено] Документация по событийной шине #I34XBI
    • [Добавлено] Документация по защите данных #I34XC0
    • [Добавлено] Документация по руководству по вкладам #I34XC8
    • [Добавлено] Блог статьи по HttpContext и управлению загрузкой/скачиванием файлов #I34XCB
    • [Другое] Мелкие корректировки и улучшения документации
  • Ответы на вопросы - [Ответ] Проблема с настройками CORS #I2ASNJ

    • [Ответ] MVC представление недействительно, причина — .cshtml файл не настроен как контент #I2AXUU
    • [Ответ] Можно ли реализовать транзакции через SQL операции? #I2B0NX
    • [Ответ] Почему IRepository открывает несколько соединений с базой данных? #I2BB7B
    • [Ответ] Как войти в точку останова в пользовательском AppAuthorizeHandler? #I2BGXY
    • [Ответ] Проблема с внедрением SqlSugar #I2C2AQ
    • [Ответ] Предложение добавить проверку подписи API и её актуальность #I2C6ET
    • [Ответ] Проблема с добавлением миграций для нескольких баз данных и арендаторов #I2CEHS
    • [Ответ] Отсутствие методов Getxxx в ISqlSugarRepository #I2CJLZ
    • [Ответ] Как использовать cli.ps1 для экспорта таблиц SQL в модели #I2CSUL
    • [Ответ] Проблема с изменением пути конечной точки Swagger #I2D608
    • [Ответ] Проблема с распознаванием DefaultDbContext #I2DCZX
    • [Ответ] Поддержка Configuration в Startup.cs для различных уровней проекта #I2DDUP
    • [Ответ] Проблема с работой Aop #I2DEY8
    • [Ответ] Проблема с выполнением Add-Migration для MySQL #I2DSB8
    • [Ответ] Добавление дефолтных значений для создания времени и состояния удаления Entity #I2E04H
    • [Ответ] Настройка нескольких серверов в Swagger #I2E0IF
    • [Ответ] Проблема с выполнением глобальных фильтров #I2E5R4
    • [Ответ] Проблема с использованием Multi-Database Locator #I2E77T
    • [Ответ] Проблема с обратной инженирингом Mysql с помощью cli.ps #I2E7I5
    • [Ответ] Проблема с отображением китайских символов в Swagger при использовании applicationsettings.json #I2EAG1
    • [Ответ] Добавление специфических путей для сборок #I2EEO2
    • [Ответ] Динамическое компилирование cs скриптов #I2EH66
    • [Ответ] Проблема с нормализацией ошибок при использовании пользовательского middleware #I2NV8S
    • [Ответ] Проблема с настройкой уровня вложенности при создании документации Swagger #I2PLQQ
    • [Ответ] Поддерживает ли конфигурационный файл yaml формат? #I2TJ3N
    • [Ответ] Проблема с выполнением Add-Migration для MySQL #I2VR64
    • [Ответ] Проблема с использованием Multi-Database Locator #I2VR8F
    • [Ответ] Проблема с выполнением миграций для Oracle #I2WBYQ
    • [Ответ] Как настроить отображение Swagger во время разработки и его отключение при деплое? #I2WOYV
    • [Ответ] Проблема с совместимостью сложных валидаций MVC #I2X3GV
    • [Ответ] Может ли Aop поддерживать классы без интерфейса? #I2X8AS
    • [Ответ] Вопросы относительно автоматического обновления JWT Token #I2YD4K
    • [Ответ] Предложение добавить расширенные свойства в Entity #I2YDKT
    • [Ответ] Проблема с восстановлением пакета Furion через Nuget и последний сценарий установки #I30446
    • [Ответ] Проблема с совместимостью сложных валидаций и атрибутов #I3046U
  • Не реализованные возможности

    • [Устарело] Введение механизма Webhook #I2A3I0
    • [Устарело] Предложение добавить службу хранения блогов #I2AMBP
    • [Устарело] Проблема с многопоточностью DbContext в Blazor Server #I2AMD2
    • [Устарело] Предложение добавить интерфейс IUnitOfWork #I2AOR5
    • [Устарело] Предложение добавить метод ToPagedListAsync для строки #I2BZ3Z
    • [Устарело] Предложение добавить поддержку GraphQL и OData #I2C9EH
    • [Устарело] Предложение добавить поддержку CAP для распределённых транзакций #I2CBRF
    • [Устарело] Вопросы относительно того, как сделать так, чтобы метод или сущность не была перехвачена SavingChangesEvent и другими событиями #I2CEM9
    • [Устарело] Предложение добавить больше расширений в логгер, такие как возможность сохранения логов в файл #I2CW8V
    • [Устарело] Предложение добавить поддержку SqlSugar через Nuget Scaffold #I2D91U
    • [Устарело] Предложение использовать Middleware для реализации reverse-proxy #I2DKM1
    • [Устарело] Предложение добавить поддержку нескольких Aop функций #I2E6Z2
    • [Устарело] Вопросы относительно планов развития аналогичной функциональности gateway #I2PD1L
    • [Устарело] Вопросы относительно предупреждения CS8002: ссылка на сборку Furion без цифровой подписи #I2WDN2
    • [Устарело] Предложение добавить поддержку Oracle через Devart.Data.Oracle.Entity.EFCore #I2XJIU
Последнее сообщение коммита: 🎃 update documents.
03.03.2025 17:50
GitLife Service Account
  • Новые возможности

    • [Добавлено] Расширение пакета Furion.Extras.ObjectMapper.Mapster #I29LSJ
    • [Добавлено] Расширение пакета Furion.Extras.Logging.Serilog #I2AAN8
    • [Добавлено] Расширение пакета Furion.Extras.Web.HttpContext #I29LSM
    • [Добавлено] Встроенная поддержка механизма обновления токена #I29K57
    • [Добавлено] Поддержка динамического контекста базы данных с выполнением OnModelCreating в режиме реального времени #I28UDT
    • [Добавлено] Поддержка исключения конкретных интерфейсов при внедрении зависимостей #I29693
    • [Добавлено] Нормализация полей времени возвращаемых результатов #I29697
    • [Добавлено] Пример базового родительского класса CRUD операций #I296SR
    • [Добавлено] Поддержка sql.Change("полное имя типа локатора") #I29LAB
    • [Добавлено] Поддержка игнорирования пустых параметров в методах UpdateInclude и UpdateExclude #I29VUG
    • [Добавлено] Внутренняя поддержка фильтрации запросов "ложного удаления" в контексте базы данных #I29Y2R
    • [Добавлено] Игнорирование пустых значений при установлении дефолтного формата времени #I29VUV
    • [Обновлено] Компонент MiniProfiler #I297R9
  • Разрушительные изменения

    • [Изменено] Асинхронное обработание авторизации в AppAuthorizeHandler #I29MD9
    • [Изменено] По умолчанию активированная поддержка JWT авторизации в Swagger #I29LI4
    • [Изменено] Переименование HttpContextUtilities в HttpContextLocal #I29KQE
    • [Изменено] Переименование UnifyResultContext в UnifyContext #I29LLZ
    • [Изменено] Сканирование семян данных только при выполнении команд миграций #I29E6P
    • [Изменено] Переименование атрибута Successed в Succeeded в нормализованном результате #I29NMV
    • [Удалено] Удаление компонента Mapster объекта, заменено расширяющим способом #I29D2M
    • [Удалено] Удаление расширяемого класса CacheManager #I29LU1
    • [Переопределен] Интерцептор SaveChanges #I292LO
  • Исправление ошибок

    • [Исправлено] Ошибка при использовании глобального интерцептора запросов для незарегистрированных контекстов базы данных #I29ZXJ
    • [Исправлено] Ошибка при возврате типов BadObjectResult или ValidationProblemDetails, приводящая к отключению нормализованного результата #I29ZU9
    • [Исправлено] Ошибка при использовании ключевых слов KeepName, KeepVerb, SplitCamelCase в динамическом WebAPI #I29X90
    • [Исправлено] Ошибка при возврате типа tuple через SQL-агент #I29SMV
    • [Исправлено] Ошибка при возврате атрибутов с большими буквами для статусов HTTP 401 и 403 #I29M8Y
    • [Исправлено] Ошибка при возникновении исключения HttpContext #I29LU4
    • [Исправлено] Ошибка при отсутствии применения нормализованного результата для методов без возвращаемого значения #I29GT7
    • [Исправлено] Ошибка при запуске хоста из-за конфигурации Less #I29E7P
    • [Исправлено] Ошибка при повторной записи свойств после преобразования SQL-результата в генерику #I29BUO
    • [Исправлено] Ошибка при отключении MiniProfiler в Swagger, что приводит к отключению групповых разделов #I29789
    • [Исправлено] Ошибка при возврате System.Object при отключенном нормализованном результате #I2969A
    • [Исправлено] Ошибка при прохождении проверки положительных чисел для нулевых значений #I2955T
    • [Исправлено] Ошибка при внедрении зависимостей для негенерических классов, реализующих интерфейсы генериков #I294YT
    • [Исправлено] Ошибка при использовании new для переопределения родительских классов в Swagger #I28Z1A
    • [Исправлено] Ошибка при использовании JsonSerializerUtility #I28WMI
    • [Исправлено] Ошибка при регистрации типов генерика для расширяемых запросов SqlSugar #I28VMT
    • [Исправлено] Ошибка при создании различных пространств имён для сущностей Furion Tools #I2A175
    • [Исправлено] Ошибка при недействительности глобальных интерцепторов #I2A7T2
    • [Исправлено] Ошибка при возникновении исключения при игнорировании пустых значений при добавлении или обновлении #I2AB6C
  • Другие изменения

    • [Оптимизация] Алгоритм шифрования для генерации токенов #I29KIH
  • Изменения в документации

    • [Добавлено] Документация по логированию #I28Y9D
    • [Изменено] Обновление документов по контексту базы данных, интерцепторам сущностей, конфигурациям и быстрому началу работы
  • Ответы на вопросы

    • [Вопрос-ответ] Как реализовать доступ с авторизацией в Swagger #I294F2

    • [Вопрос-ответ] Как настроить несколько баз данных для многоконтекстных сущностей #I29G6S

    • [Вопрос-ответ] Поддерживает ли динамический WebAPI загрузку файлов #I29R5E

    • [Вопрос] Невозможность создания миграционного кода для нескольких контекстов базы данных #I2A6II- Не реализованные возможности

    • [Устарело] Реализация передачи имени таблицы в BuildChange #I292SN

    • [Устарело] Отказ от поддержки игнорирования регистра при присвоении свойств для результатов выполнения базы данных #I29DRQ

    • [Устарело] Отказ от использования механизма Webhook #I2A3I0

Последнее сообщение коммита: 🤴 adjust the code.
1
https://api.gitlife.ru/oschina-mirror/dotnetchina-Furion.git
git@api.gitlife.ru:oschina-mirror/dotnetchina-Furion.git
oschina-mirror
dotnetchina-Furion
dotnetchina-Furion