> Обновление лога: [https://furion.net/docs/upgrade/v4](https://furion.net/docs/upgrade/v4)
---
- **Новые возможности**
- [Добавлено] Поддержка отображения номера порта сервера в мониторинге журналов `Monitor` <sup>4.9.1.36</sup> <sup>⏱️2024.03.02</sup> [9280b6d](https://gitee.com/dotnetchina/Furion/commit/9280b6d02fa14cc2a22248d8dd9f82c9d3679d63)
- [Добавлено] Поддержка отображения номера порта клиента (удалённого) NAT в мониторинге журналов `Monitor` <sup>4.9.1.36</sup> <sup>⏱️2024.03.02</sup> [#I957SE](https://gitee.com/dotnetchina/Furion/issues/I957SE)
- [Добавлено] Поддержка отображения адреса запуска или прослушивания веб-сервера в мониторинге журналов `Monitor` <sup>4.9.1.36</sup> <sup>⏱️2024.03.02</sup> [#I94XR1](https://gitee.com/dotnetchina/Furion/issues/I94XR1) [0e34172](https://gitee.com/dotnetchina/Furion/commit/0e3417285f3a9fb1ccc8ae10e9a1155717bf9a58)
- [Добавлено] Шаблон проекта .NET9 <sup>4.9.1.31</sup> <sup>⏱️2024.02.14</sup> [3c7a25b](https://gitee.com/dotnetchina/Furion/commit/3c7a25b9903f26ccea88027acd7d485d5eab9da4)
- [Добавлено] Шаблон проекта Blazor Auto для .NET8 <sup>4.9.1.28</sup> <sup>⏱️2024.02.02</sup> [67ea9ad](https://gitee.com/dotnetchina/Furion/commit/67ea9ad8df3c917a8b3eb8242e033d41cb512c20)
- [Добавлено] Поддержка назначения задач TaskId, каналов Channel и подписки событий OnExecuted в очередях задач <sup>4.9.1.28</sup> <sup>⏱️2024.01.31</sup> [1c27434](https://gitee.com/dotnetchina/Furion/commit/1c274347517671e7611a8c578a05ce273248700d)
- [Добавлено] Поддержка автоматической обработки HTTP-кодов состояния 301, 302 и заголовков ответа с Location при удалённых запросах <sup>4.9.1.27</sup> <sup>⏱️2024.01.29</sup> [65aa221](https://gitee.com/dotnetchina/Furion/commit/65aa221ee6b99904b5349dfdad34b701296c0f5c)
- [Добавлено] Поддержка конфигурации обработчика событий Bus для одноразового использования <sup>4.9.1.24</sup> <sup>⏱️2024.01.19</sup> [dc882eb](https://gitee.com/dotnetchina/Furion/commit/dc882ebc8f8e37977b4a55963711b0fa86f2c741)
- [Добавлено] Поддержка конфигурации количества попыток и интервалов между ними в очередях задач <sup>4.9.1.24</sup> <sup>⏱️2023.01.19</sup> [1c27434](https://gitee.com/dotnetchina/Furion/commit/1c274347517671e7611a8c578a05ce273248700d)
- [Добавлено] Конфигурирование сериализации long как string в мониторинге журналов Monitor <sup>4.9.1.23</sup> <sup>⏱️2023.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Добавлено] Вывод версии Furion в заголовках HTTP-ответа <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [a4a49d6](https://gitee.com/dotnetchina/Furion/commit/a4a49d68d0ad6f0473ba45090cc7881900d8ad2b)
- [Добавлено] Поддержка конфигурации параллельного выполнения задач в очередях задач <sup>4.9.1.22</sup> <sup>⏱️2024.01.14</sup> [#I8VXFV](https://gitee.com/dotnetchina/Furion/issues/I8VXFV)
- [Добавлено] Поддержка асинхронного запуска хоста Serve.RunAsync <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [#I8V0J8](https://gitee.com/dotnetchina/Furion/issues/I8V0J8)
- [Добавлено] Статический метод Oops.Text(errorCode) для получения сообщения ошибки по коду ошибки <sup>4.9.1.18</sup> <sup>⏱️2024.01.08</sup> [f25125c](https://gitee.com/dotnetchina/Furion/commit/f25125c06d902709025be2420665cecb6e7fb520)
- [Добавлено] Реализация метода OnExecutionRecord интерфейса IJobPersistence для записи истории выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Событие OnExecutionRecord для слежения за историей выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Базовый класс EntityNotTenant и EntityBaseNotTenant для работы с EFCore <sup>4.9.1.11</sup> <sup>⏱️2023.12.04</sup> [b62bfb1](https://gitee.com/dotnetchina/Furion/commit/b62bfb1a18d57f7fe3dd9548aa02372025dfed85)
- [Добавлено] Поддержка синхронной конфигурации ConsoleFormatterExtendOptions при старте консольного журнала <sup>4.9.1.10</sup> <sup>⏱️2023.12.04</sup> [a96fe08](https://gitee.com/dotnetchina/Furion/commit/a96fe08336dbf99b7cf5cc5e6ec304adf7413a4b)
- [Добавлено] Поддержка отмены выполняющихся задач в планировщике задач <sup>4.9.1.9</sup> <sup>⏱️2023.12.03</sup> [3cc9be0](https://gitee.com/dotnetchina/Furion/commit/3cc9be0da1eabc0f3baaa7801b115bb2909bb085)
- [Добавлено] Метод JSON.IsValid(jsonString) для проверки корректности строки JSON <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [22bc69b](https://gitee.com/dotnetchina/Furion/commit/22bc69bd4a445f81833c082da7c99f4a5c518012)
- [Добавлено] Метод экспорта информации о токене из axios-utils.ts <sup>4.9.1.7</sup> <sup>⏱️2023.11.29</sup> [ae8c3e8](https://gitee.com/dotnetchina/Furion/commit/ae8c3e8c47494fa3ba37d2b076d54f9f2c016252)
- [Добавлено] Автоматическое фильтрование запросов SSE, файловых и изображений <sup>4.9.1.6</sup> <sup>⏱️2023.11.22</sup> [#I8IP6D](https://gitee.com/dotnetchina/Furion/issues/I8IP6D)
- [Добавлено] Поддержка свойства UseSnakeCaseNaming в декораторе AppDbContext для использования змеиного регистра в названии таблиц <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [#I8HGR2](https://gitee.com/dotnetchina/Furion/issues/I8HGR2) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- [Добавлено] Преобразование метки времени в тип DateTime/DateTimeOffset в модели биндинга метки времени <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [df3053c](https://gitee.com/dotnetchina/Furion/commit/df3053cf081d5e4d8eb63d567ed95c45267e0969)
- [Добавлено] Преобразование метки времени в тип DateTime/DateTimeOffset в Newtonsoft.Json <sup>4.9.1.3</sup> <sup>⏱️2023.11.17</sup> [78a589d](https://gitee.com/dotnetchina/Furion/commit/78a589d99eb5985b576e4c96acd6e4890391d6ff)
- [Добавлено] Преобразование метки времени в тип DateTime/DateTimeOffset в System.Text.Json <sup>4.9.1.2</sup> <sup>⏱️2023.11.17</sup> [abd5196](https://gitee.com/dotnetchina/Furion/commit/abd5196f5c5160a5df96dad80c7c5aa51b96d5b9)
- [Добавлено] Функциональность репозитория IRepositoryFactory<TEntity, TDbContextLocator>, решающая проблему использования EFCore в Blazor <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [4285ec0](https://gitee.com/dotnetchina/Furion/commit/4285ec0b8debc2d71c7f978126cb3dc394a8ad30) [Документация](https://learn.microsoft.com/ru-ru/aspnet/core/blazor/blazor-ef-core?view=aspnetcore-7.0)
- [Добавлено] Функциональность модуля компенсационной политики <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup> [【Исходный код】](https://gitee.com/dotnetchina/Furion/tree/v4/framework/Furion/RescuePolicy) [dfc63e7](https://gitee.com/dotnetchina/Furion/commit/dfc63e7f0ffd2e03653f11a3e49a21646902ddc4)
- **Критические изменения** - [Обновлено] **Поддержка .NET 9.0 Preview версии** <sup>4.9.1.31</sup> <sup>⏱️2024.02.14</sup> [3c7a25b](https://gitee.com/dotnetchina/Furion/commit/3c7a25b9903f26ccea88027acd7d485d5eab9da4)
- [Добавлено] **Поддержка конфигурации обработчика событий Bus для одноразового использования** <sup>4.9.1.24</sup> <sup>⏱️2024.01.19</sup> [dc882eb](https://gitee.com/dotnetchina/Furion/commit/dc882ebc8f8e37977b4a55963711b0fa86f2c741)
- [Изменено] По умолчанию деактивирована сериализация `long` как `string` в мониторинге журналов Monitor <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Добавлено] Реализация метода `OnExecutionRecord` интерфейса `IJobPersistence` для записи истории выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Изменено] **Динамическая генерация маршрутов WebAPI с использованием разделителя `v` вместо `@`** <sup>4.9.1.14</sup> <sup>⏱️2023.12.14</sup> [7677d0f](https://gitee.com/dotnetchina/Furion/commit/7677d0fa615d3ccdf784542b5702cd1d6165e78f)
- [Обновлено] Обновление зависимости расширения Serilog до версии 8.0.0, **удаление метода расширения `IWebHostBuilder.UseSerilogDefault` для .NET 8.0** <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [5ab3e43](https://gitee.com/dotnetchina/Furion/commit/5ab3e43722a298db56a86792dde301adf1f3fe7f)
- [Обновлено] **Поддержка .NET 8.0 RTM версии** <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- [Обновлено] **Поддержка шаблонов проекта .NET 8.0 RTM версии** <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- **Устранение ошибок**
- [Исправлено] Проблема с `null` `RootServices` при вызове `App.GetService`, когда веб-хост не запущен, но универсальный хост запущен <sup>4.9.1.37</sup> <sup>⏱️2024.03.03</sup> [ee70ab9](https://gitee.com/dotnetchina/Furion/commit/ee70ab9bdf5b38683b6c3f9aeef12a2bf64f787a)
- [Исправлено] Проблема повторного триггеринга обработчика задач после возникновения исключения в очереди задач <sup>4.9.1.35</sup> <sup>⏱️2024.02.28</sup> [fa81c54](https://gitee.com/dotnetchina/Furion/commit/fa81c548f02c0e6d8c90eb9abddb658cf50aa6c9)
- [Исправлено] Проблема с невозможностью потребления динамически зарегистрированных подписчиков из-за версии 4.9.1.33 <sup>4.9.1.34</sup> <sup>⏱️2024.02.27</sup> [d66175c](https://gitee.com/dotnetchina/Furion/commit/d66175c9a3b84f0dc626ed6dc44a64673432e830)
- [Исправлено] Проблема с исключением при повторном регистрации `Inject` в модульном режиме <sup>4.9.1.32</sup> <sup>⏱️2024.02.21</sup> [1651013](https://gitee.com/dotnetchina/Furion/commit/1651013533b871950f493f33a1623ef3efe25e06)
- [Исправлено] Проблема с невалидной конфигурацией по умолчанию для `DateTime`, `DateTimeOffset`, `DateOnly`, `TimeOnly` <sup>4.9.1.30</sup> <sup>⏱️2024.02.07</sup> [8057a6a](https://gitee.com/dotnetchina/Furion/commit/8057a6abfba258fe787dc5123c8d183150a1ec34)
- [Исправлено] Проблема с исключением при некорректном анализе заголовка `charset` в удаленном запросе <sup>4.9.1.29</sup> <sup>⏱️2024.02.05</sup> [d5d03e5](https://gitee.com/dotnetchina/Furion/commit/d5d03e5c1a2d9124b681c1160b6c1ba814e8b4ea)
- [Исправлено] Проблема с пустым исключением при использовании `throw Oops.Oh(message)` в Blazor компоненте <sup>4.9.1.28</sup> <sup>⏱️2024.01.31</sup> [cc5b84d](https://gitee.com/dotnetchina/Furion/commit/cc5b84d9efddaf1b48dc8eb25b5a6f5b4c35bef9)
- [Исправлено] Проблема с исключением при настройке `VersionInFront`: `false` в динамическом WebAPI <sup>4.9.1.26</sup> <sup>⏱️2024.01.12</sup> [#I8ZGGH](https://gitee.com/dotnetchina/Furion/issues/I8ZGGH) [#I8ZDXD](https://gitee.com/dotnetchina/Furion/issues/I8ZDXD) [#I8ZFNG](https://gitee.com/dotnetchina/Furion/issues/I8ZFNG)
- [Исправлено] Проблема с пустым исключением при активации `WithStackFrame` конфигурации <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [c8be745](https://gitee.com/dotnetchina/Furion/commit/c8be745dd119c73c9230dbfdf6150ddbfcd16e81)
- [Исправлено] Проблема с исключением при настройке `ForceWithRoutePrefix` без `Module` в динамическом WebAPI <sup>4.9.1.19</sup> <sup>⏱️2024.01.09</sup> [87849d1](https://gitee.com/dotnetchina/Furion/commit/87849d1ef1dc098e702db66f47490bd7e75495d5)
- [Исправлено] Проблема с исключением при загрузке документов с одинаковым полным именем класса <sup>4.9.1.17</sup> <sup>⏱️2024.01.04</sup> [#I8TJZ0](https://gitee.com/dotnetchina/Furion/issues/I8TJZ0)
- [Исправлено] Проблема с недействием конфигурации `AsLowerCamelCase` после коммита `[1dc7ea7]` <sup>4.9.1.15</sup> <sup>⏱️2023.12.20</sup> [d9810be](https://gitee.com/dotnetchina/Furion/commit/d9810bece0a1d1108e134cfdae2fdd868554f769)
- [Исправлено] Проблема с невозможностью рекурсивного преобразования объекта `ClayModel` в `Dictionary` <sup>4.9.1.13</sup> <sup>⏱️2023.12.11</sup> [#I8NFT4](https://gitee.com/dotnetchina/Furion/issues/I8NFT4)
- [Исправлено] Проблема с невозможностью перехвата внутреннего исключения в `Scoped.CreateAsync` <sup>4.9.1.12</sup> <sup>⏱️2023.12.08</sup> [0a89a43](https://gitee.com/dotnetchina/Furion/commit/0a89a434223c45d84b8908f6aff1bf1d7528193a)
- [Исправлено] Проблема с невозможностью перехвата внутреннего исключения в `Scoped.CreateUowAsync` <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [3c859e8](https://gitee.com/dotnetchina/Furion/commit/3c859e83c0ed6f07fcf191973fe465599a823224)
- [Исправлено] Проблема с невозможностью сброса состояния задачи после возникновения исключения при установке триггера `Result` <sup>4.9.1.7</sup> <sup>⏱️2023.11.24</sup> [147215f](https://gitee.com/dotnetchina/Furion/commit/147215f1631f58fca900f17cca5695f9431555e5)
- [Исправлено] Проблема с невозможностью получения пользовательской конфигурации при самостоятельном использовании `JWTEncryption.GetJWTSettings()` <sup>4.9.1.4</sup> <sup>⏱️2023.11.18</sup> [c045e08](https://gitee.com/dotnetchina/Furion/commit/c045e084670a98f71d5ea5ed55ca5cbbfc981e0b)
- **Прочие изменения**
- [Оптимизация] Улучшение производительности EventBus при работе с высокочастотными событиями <sup>4.9.1.33</sup> <sup>⏱️2024.02.25</sup> [0bbeb49](https://gitee.com/dotnetchina/Furion/commit/0bbeb49b97e186d1719b106637e131f6333417e3)
- [Изменено] Изменение момента сборки мусора GC для задач планировщика, снижение долгосрочной нагрузки на память <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [f43fc25](https://gitee.com/dotnetchina/Furion/commit/f43fc25dc59c5e539844048d2da4bce4153e3063)
- [Изменено] Оптимизация производительности движка шаблонов, увеличение скорости анализа кэшированных шаблонов <sup>4.9.1.16</sup> <sup>⏱️2023.12.27</sup> [d7ea423](https://gitee.com/dotnetchina/Furion/commit/d7ea423f272de141a351d7f7f4fb29ae0d9b1df6)
- **Документация** - [Добавлено] Документация по интеграции ASP.NET 9 <https://furion.net/docs/get-start-net9>
- [Добавлено] Документация по переходу с .NET8 на .NET9 <https://furion.net/docs/net8-to-net9>
- [Добавлено] Новая документация по развертыванию Docker <https://furion.net/docs/deploy-docker>
- [Добавлено] Новая документация по развертыванию Nginx <https://furion.net/docs/deploy-nginx>
- [Добавлено] Новая документация по развертыванию Windows Service <https://furion.net/docs/deploy-service>
- [Обновлено] Документация по репозиториям, статическому классу Db, шаблонам проекта, переходу с .NET7 на .NET8, сериализации JSON, развертыванию Docker, контексту баз данных, виртуальным файлам, удаленным запросам, HttpContext, статическому классу JSON, задачам планировщика, расширению репозиториев, сущностям базы данных, нормализации, очередям задач, виртуальной файловой системе, развертыванию PM2
---
- **Контрибьюторы**
- wangmin ([@wangmin2659](https://gitee.com/wangmin2659)) [![PR #871]](https://gitee.com/dotnetchina/Furion/pulls/871)
- Jianjian An ([@MadOneYou](https://gitee.com/MadOneYou)) [![PR #869]](https://gitee.com/dotnetchina/Furion/pulls/869) [![PR #870]](https://gitee.com/dotnetchina/Furion/pulls/870)
- Zuohuaijun ([@zuohuaijun](https://gitee.com/zuohuaijun)) [![PR #865]](https://gitee.com/dotnetchina/Furion/pulls/865)
- An Liuty ([@anliuty](https://gitee.com/www.fengyunmy.com)) [![PR #863]](https://gitee.com/dotnetchina/Furion/pulls/863)
- Fengyun Mingyue ([@www.fengyunmy.com](https://gitee.com/www.fengyunmy.com)) [![PR #862]](https://gitee.com/dotnetchina/Furion/pulls/862)
>История обновлений: [https://furion.net/docs/upgrade/v4](https://furion.net/docs/upgrade/v4)
---
- **Новые возможности**
- [Добавлено] Поддержка отображения номера порта сервера в мониторинге логов `Monitor` <sup>4.9.1.36</sup> <sup>⏱️2024.03.02</sup> [9280b6d](https://gitee.com/dotnetchina/Furion/commit/9280b6d02fa14cc2a22248d8dd9f82c9d3679d63)
- [Добавлено] Поддержка отображения номера порта клиента (удаленного) `NAT` в мониторинге логов `Monitor` <sup>4.9.1.36</sup> <sup>⏱️2024.03.02</sup> [#I957SE](https://gitee.com/dotnetchina/Furion/issues/I957SE)
- [Добавлено] Поддержка отображения адреса запуска или прослушивания `Web` хоста в мониторинге логов `Monitor` <sup>4.9.1.36</sup> <sup>⏱️2024.03.02</sup> [#I94XR1](https://gitee.com/dotnetchina/Furion/issues/I94XR1) [0e34172](https://gitee.com/dotnetchina/Furion/commit/0e3417285f3a9fb1ccc8ae10e9a1155717bf9a58)
- [Добавлено] Шаблонизация проекта для `.NET9` <sup>4.9.1.31</sup> <sup>⏱️2024.02.14</sup> [3c7a25b](https://gitee.com/dotnetchina/Furion/commit/3c7a25b9903f26ccea88027acd7d485d5eab9da4)
- [Добавлено] Шаблонизация проекта для `.NET8` с уникальной моделью `Blazor Auto` <sup>4.9.1.28</sup> <sup>⏱️2024.02.02</sup> [67ea9ad](https://gitee.com/dotnetchina/Furion/commit/67ea9ad8df3c917a8b3eb8242e033d41cb512c20)
- [Добавлено] Поддержка назначения задач `TaskId`, каналов `Channel` и подписки событий `OnExecuted` в очередях задач <sup>4.9.1.28</sup> <sup>⏱️2024.01.31</sup> [1c27434](https://gitee.com/dotnetchina/Furion/commit/1c274347517671e7611a8c578a05ce273248700d)
- [Добавлено] Поддержка автоматической обработки кодов состояния `301`, `302` и заголовков ответа с полем `Location` в удалённых запросах <sup>4.9.1.27</sup> <sup>⏱️2024.01.29</sup> [65aa221](https://gitee.com/dotnetchina/Furion/commit/65aa221ee6b99904b5349dfdad34b701296c0f5c)
- [Добавлено] Поддержка конфигурации обработчика событий для одноразового использования в шине событий <sup>4.9.1.24</sup> <sup>⏱️2024.01.19</sup> [dc882eb](https://gitee.com/dotnetchina/Furion/commit/dc882ebc8f8e37977b4a55963711b0fa86f2c741)
- [Добавлено] Поддержка конфигурирования колич Yöntemleri ve aralıkları arasında sayıları arasındaki zaman dilimlerini ayarlama için iş kuyruklarında <sup>4.9.1.24</sup> <sup>⏱️2023.01.19</sup> [1c27434](https://gitee.com/dotnetchina/Furion/commit/1c274347517671e7611a8c578a05ce273248700d)
- [Добавлено] Конфигурирование сериализации для преобразования `long` в `string` в мониторинге логов `Monitor` <sup>4.9.1.23</sup> <sup>⏱️2023.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Добавлено] Вывод версии `Furion` в заголовках HTTP-ответа <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [a4a49d6](https://gitee.com/dotnetchina/Furion/commit/a4a49d68d0ad6f0473ba45090cc7881900d8ad2b)
- [Добавлено] Поддержка конфигурирования параллельного выполнения задач в очередях задач <sup>4.9.1.22</sup> <sup>⏱️2024.01.14</sup> [#I8VXFV](https://gitee.com/dotnetchina/Furion/issues/I8VXFV)
- [Добавлено] Поддержка асинхронного запуска хоста методом `Serve.RunAsync` <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [#I8V0J8](https://gitee.com/dotnetchina/Furion/issues/I8V0J8)
- [Добавлено] Статический метод `Oops.Text(errorCode)` для получения сообщения ошибки по коду ошибки <sup>4.9.1.18</sup> <sup>⏱️2024.01.08</sup> [f25125c](https://gitee.com/dotnetchina/Furion/commit/f25125c06d902709025be2420665cecb6e7fb520)
- [Добавлено] Реализация метода `OnExecutionRecord` интерфейса `IJobPersistence` для записи истории выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Событие `OnExecutionRecord` для слежения за историей выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Базовый класс `EntityNotTenant` и `EntityBaseNotTenant` для работы с базой данных `EFCore` <sup>4.9.1.11</sup> <sup>⏱️2023.12.04</sup> [b62bfb1](https://gitee.com/dotnetchina/Furion/commit/b62bfb1a18d57f7fe3dd9548aa02372025dfed85)
- [Добавлено] Поддержка синхронизации конфигурации `ConsoleFormatterExtendOptions` при старте консольного логгера <sup>4.9.1.10</sup> <sup>⏱️2023.12.04</sup> [a96fe08](https://gitee.com/dotnetchina/Furion/commit/a96fe08336dbf99b7cf5cc5e6ec304adf7413a4b)
- [Добавлено] Поддержка отмены выполняющихся задач в планировщике задач <sup>4.9.1.9</sup> <sup>⏱️2023.12.03</sup> [3cc9be0](https://gitee.com/dotnetchina/Furion/commit/3cc9be0da1eabc0f3baaa7801b115bb2909bb085)
- [Добавлено] Метод `JSON.IsValid(jsonString)` для проверки корректности JSON-строки <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [22bc69b](https://gitee.com/dotnetchina/Furion/commit/22bc69bd4a445f81833c082da7c99f4a5c518012)
- [Добавлено] Метод экспорта информации о токенах из файла `axios-utils.ts` <sup>4.9.1.7</sup> <sup>⏱️2023.11.29</sup> [ae8c3e8](https://gitee.com/dotnetchina/Furion/commit/ae8c3e8c47494fa3ba37d2b076d54f9f2c016252)
- [Добавлено] Автоматическое фильтрование запросов SSE, файловых и изображений <sup>4.9.1.6</sup> <sup>⏱️2023.11.22</sup> [#I8IP6D](https://gitee.com/dotnetchina/Furion/issues/I8IP6D)
- [Добавлено] Поддержка свойства `UseSnakeCaseNaming` для настройки имени таблицы в виде змеиного регистра в декораторе `[AppDbContext]` <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [#I8HGR2](https://gitee.com/dotnetchina/Furion/issues/I8HGR2) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- [Добавлено] Обработка модели биндера времени для преобразования метки времени в типы `DateTime` и `DateTimeOffset` <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [df3053c](https://gitee.com/dotnetchina/Furion/commit/df3053cf081d5e4d8eb63d567ed95c45267e0969)
- [Добавлено] Автоматическая конвертация меток времени в типы `DateTime` и `DateTimeOffset` в библиотеке `Newtonsoft.Json` <sup>4.9.1.3</sup> <sup>⏱️2023.11.17</sup> [78a589d](https://gitee.com/dotnetchina/Furion/commit/78a589d99eb5985b576e4c96acd6e4890391d6ff)
- [Добавлено] Автоматическая конвертация меток времени в типы `DateTime` и `DateTimeOffset` в библиотеке `System.Text.Json` <sup>4.9.1.2</sup> <sup>⏱️2023.11.17</sup> [abd5196](https://gitee.com/dotnetchina/Furion/commit/abd5196f5c5160a5df96dad80c7c5aa51b96d5b9)
- [Добавлено] Функциональность репозитория `IRepositoryFactory<TEntity, TDbContextLocator>` для решения проблем использования `EFCore` в `Blazor` <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [4285ec0](https://gitee.com/dotnetchina/Furion/commit/4285ec0b8debc2d71c7f978126cb3dc394a8ad30) [Документация](https://learn.microsoft.com/ru-ru/aspnet/core/blazor/blazor-ef-core?view=aspnetcore-7.0)
- [Добавлено] Функциональность модуля компенсационной политики <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup> [【Исходный код】](https://gitee.com/dotnetchina/Furion/tree/v4/framework/Furion/RescuePolicy) [dfc63e7](https://gitee.com/dotnetchina/Furion/commit/dfc63e7f0ffd2e03653f11a3e49a21646902ddc4)
- **Критические изменения** - [Обновление] **Поддержка основного уровня .NET9.0 Preview** <sup>4.9.1.31</sup> <sup>⏱️2024.02.14</sup> [3c7a25b](https://gitee.com/dotnetchina/Furion/commit/3c7a25b9903f26ccea88027acd7d485d5eab9da4)
- [Добавлено] **Поддержка конфигурации обработчика событий для одноразового использования в шине событий** <sup>4.9.1.24</sup> <sup>⏱️2024.01.19</sup> [dc882eb](https://gitee.com/dotnetchina/Furion/commit/dc882ebc8f8e37977b4a55963711b0fa86f2c741)
- [Изменено] По умолчанию отключение сериализации long в string в мониторинге логов Monitor <sup>4.9.1.23</sup> <sup>⏱️2bk24.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Добавлено] Реализация метода OnExecutionRecord интерфейса IJobPersistence для записи истории выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Изменено] **Динамическое создание маршрутов API с использованием версионирования, разделитель версий по умолчанию изменён с @ на v** <sup>4.9.1.14</sup> <sup>⏱️2023.12.14</sup> [7677d0f](https://gitee.com/dotnetchina/Furion/commit/7677d0fa615d3ccdf784542b5702cd1d6165e78f)
- [Обновление] Обновление зависимости расширения Serilog до версии 8.0.0, **удаление метода расширения IWebHostBuilder.UseSerilogDefault для .NET8.0** <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [5ab3e43](https://gitee.com/dotnetchina/Furion/commit/5ab3e43722a298db56a86792dde301adf1f3fe7f)
- [Обновление] **Основной уровень поддерживает .NET8.0 RTM** <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- [Обновление] **Шаблоны поддерживают .NET8.0 RTM** <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- **Устранение ошибок**
- [Исправлено] Проблема повторного вызова обработчика событий после возникновения исключения в подписке задач очереди задач <sup>4.9.1.35</sup> <sup>⏱️2024.02.28</sup> [fa81c54](https://gitee.com/dotnetchina/Furion/commit/fa81c548f02c0e6d8c90eb9abddb658cf50aa6c9)
- [Исправлено] Проблема с невозможностью использования пользовательского хранилища событий для динамического подписчика после обновления до версии 4.9.1.33 <sup>4.9.1.34</sup> <sup>⏱️2024.02.27</sup> [d66175c](https://gitee.com/dotnetchina/Furion/commit/d66175c9a3b84f0dc626ed6dc44a64673432e830)
- [Исправлено] Проблема с возникновением исключений при повторной регистрации Inject в модульном режиме <sup>4.9.1.32</sup> <sup>⏱️2024.02.21</sup> [1651013](https://gitee.com/dotnetchina/Furion/commit/1651013533b871950f493f33a1623ef3efe25e06)
- [Исправлено] Проблема с невалидной конфигурацией по умолчанию для формата DateTime/DateTimeOffset/DateOnly/TimeOnly <sup>4.9.1.30</sup> <sup>⏱️2024.02.07</sup> [8057a6a](https://gitee.com/dotnetchina/Furion/commit/8057a6abfba258fe787dc5123c8d183150a1ec34)
- [Исправлено] Проблема с возникновением исключений при некорректном анализе заголовка charset в удалённых запросах <sup>4.9.1.29</sup> <sup>⏱️2024.02.05</sup> [d5d03e5](https://gitee.com/dotnetchina/Furion/commit/d5d03e5c1a2d9124b681c1160b6c1ba814e8b4ea)
- [Исправлено] Проблема с пустым исключением при использовании throw Oops.Oh(message) в компоненте Blazor <sup>4.9.1.28</sup> <sup>⏱️2024.01.31</sup> [cc5b84d](https://gitee.com/dotnetchina/Furion/commit/cc5b84d9efddaf1b48dc8eb25b5a6f5b4c35bef9)
- [Исправлено] Проблема с возникновением исключений при установке VersionInFront: false в динамическом WebAPI <sup>4.9.1.26</sup> <sup>⏱️2024.01.12</sup> [#I8ZGGH](https://gitee.com/dotnetchina/Furion/issues/I8ZGGH) [#I8ZDXD](https://gitee.com/dotnetchina/Furion/issues/I8ZDXD) [#I8ZFNG](https://gitee.com/dotnetchina/Furion/issues/I8ZFNG)
- [Исправлено] Проблема с возникновением пустых исключений при активации конфигурации WithStackFrame <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [c8be745](https://gitee.com/dotnetchina/Furion/commit/c8be745dd119c73c9230dbfdf6150ddbfcd16e81)
- [Исправлено] Проблема с отсутствием модуля в конфигурации ForceWithRoutePrefix в динамическом WebAPI <sup>4.9.1.19</sup> <sup>⏱️2024.01.09</sup> [87849d1](https://gitee.com/dotnetchina/Furion/commit/87849d1ef1dc098e702db66f47490bd7e75495d5)
- [Исправлено] Проблема с возникновением исключений при загрузке документов с одинаковым полным именем класса <sup>4.9.1.17</sup> <sup>⏱️2024.01.04</sup> [#I8TJZ0](https://gitee.com/dotnetchina/Furion/issues/I8TJZ0)
- [Исправлено] Проблема с недействительностью конфигурации AsLowerCamelCase в динамическом WebAPI после коммита [1dc7ea7] <sup>4.9.1.15</sup> <sup>⏱️2023.12.20</sup> [d9810be](https://gitee.com/dotnetchina/Furion/commit/d9810bece0a1d1108e134cfdae2fdd868554f769)
- [Исправлено] Проблема с невозможностью рекурсивного преобразования объекта Clay в объект Dictionary <sup>4.9.1.13</sup> <sup>⏱️2023.12.11</sup> [#I8NFT4](https://gitee.com/dotnetchina/Furion/issues/I8NFT4)
- [Исправлено] Проблема с невозможностью перехвата внутренних исключений в Scoped.CreateAsync <sup>4.9.1.12</sup> <sup>⏱️2023.12.08</sup> [0a89a43](https://gitee.com/dotnetchina/Furion/commit/0a89a434223c45d84b8908f6aff1bf1d7528193a)
- [Исправлено] Проблема с невозможностью перехвата внутренних исключений в Scoped.CreateUowAsync <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [3c859e8](https://gitee.com/dotnetchina/Furion/commit/3c859e83c0ed6f07fcf191973fe465599a823224)
- [Исправлено] Проблема с невозможностью сброса состояния задачи после возникновения исключения при настройке триггера Result в планировщике задач <sup>4.9.1.7</sup> <sup>⏱️2023.11.24</sup> [147215f](https://gitee.com/dotnetchina/Furion/commit/147215f1631f58fca900f17cca5695f9431555e5)
- [Исправлено] Проблема с невозможностью получения пользовательских настроек при самостоятельном использовании JWTEncryption.GetJWTSettings() <sup>4.9.1.4</sup> <sup>⏱️2023.11.18</sup> [c045e08](https://gitee.com/dotnetchina/Furion/commit/c045e084670a98f71d5ea5ed55ca5cbbfc981e0b)
- **Прочие изменения**
- [Оптимизация] Улучшение производительности шины событий при работе с высокочастотными событиями (приблизительно 9%) <sup>4.9.1.33</sup> <sup>⏱️2024.02.25</sup> [0bbeb49](https://gitee.com/dotnetchina/Furion/commit/0bbeb49b97e186d1719b106637e131f6333417e3)
- [Изменено] Изменение момента сборки мусора GC для задач планировщика задач, снижение длительного потребления памяти <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [f43fc25](https://gitee.com/dotnetchina/Furion/commit/f43fc25dc59c5e539844048d2da4bce4153e3063)
- [Изменено] Оптимизация производительности движка шаблонов, увеличение скорости анализа кэшированных шаблонов <sup>4.9.1.16</sup> <sup>⏱️2023.12.27</sup> [d7ea423](https://gitee.com/dotnetchina/Furion/commit/d7ea423f272de141a351d7f7f4fb29ae0d9b1df6)
- **Документация** - [Добавлено] Документация по интеграции ASP.NET 9 <https://furion.net/docs/get-start-net9>
- [Добавлено] Документация по переходу с .NET8 на .NET9 <https://furion.net/docs/net8-to-net9>
- [Добавлено] Новая документация по развертыванию Docker <https://furion.net/docs/deploy-docker>
- [Добавлено] Документация по развертыванию Nginx <https://furion.net/docs/deploy-nginx>
- [Добавлено] Документация по развертыванию Windows Service <https://furion.net/docs/deploy-service>
- [Обновлено] Документация по репозиториям, статическому классу Db, шаблонизатору, переходу с .NET7 на .NET8, сериализации JSON, развертыванию Docker, контексту базы данных, виртуальным файлам, удалённым запросам, HttpContext, статическому классу JSON, планировщику задач, расширению репозиториев, сущностям базы данных, нормализации, очередям задач, виртуальной файловой системе, развертыванию PM2
- **Контрибьюторы**
- wangmin ([@wangmin2659](https://gitee.com/wangmin2659)) [!871](https://gitee.com/dotnetchina/Furion/pulls/871)
- Jianjian An ([@MadOneYou](https://gitee.com/MadOneYou)) [!869](https://gitee.com/dotnetchina/Furion/pulls/869) [!870](https://gitee.com/dotnetchina/Furion/pulls/870)
- Zuohuaijun ([@zuohuaijun](https://gitee.com/zuohuaijun)) [!865](https://gitee.com/dotnetchina/Furion/pulls/865)
- An Liuty ([@anliuty](https://gitee.com/anliuty)) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- Fengyun Mingyue ([@www.fengyunmy.com](https://gitee.com/www.fengyunmy.com)) [!862](https://gitee.com/dotnetchina/Furion/pulls/862)
> Обновление журнала: [https://furion.net/docs/upgrade/v4](https://furion.net/docs/upgrade/v4)
---
- **Новые возможности**
- [Добавлено] Поддержка шаблонизатора .NET9 <sup>4.9.1.31</sup> <sup>⏱️2024.02.14</sup> [3c7a25b](https://gitee.com/dotnetchina/Furion/commit/3c7a25b9903f26ccea88027acd7d485d5eab9da4)
- [Добавлено] Шаблонизатор Blazor Auto для .NET8 <sup>4.9.1.28</sup> <sup>⏱️2024.02.02</sup> [67ea9ad](https://gitee.com/dotnetchina/Furion/commit/67ea9ad8df3c917a8b3eb8242e033d41cb512c20)
- [Добавлено] Поддержка задач с указанием TaskId, каналами и событиями OnExecuted <sup>4.9.1.28</sup> <sup>⏱️2024.01.31</sup> [1c27434](https://gitee.com/dotnetchina/Furion/commit/1c274347517671e7611a8c578a05ce273248700d)
- [Добавлено] Автоматическая обработка HTTP-кодов состояния 301, 302 и заголовков Location в ответах <sup>4.9.1.27</sup> <sup>⏱️2024.01.29</sup> [65aa221](https://gitee.com/dotnetchina/Furion/commit/65aa221ee6b99904b5349dfdad34b701296c0f5c)
- [Добавлено] Конфигурация обработчика событий Bus для одноразового использования <sup>4.9.1.24</sup> <sup>⏱️2024.01.19</sup> [dc882eb](https://gitee.com/dotnetchina/Furion/commit/dc882ebc8f8e37977b4a55963711b0fa86f2c741)
- [Добавлено] Настройка количества попыток и интервалов повторной отправки задач <sup>4.9.1.24</sup> <sup>⏱️2024.01.19</sup> [1c27434](https://gitee.com/dotnetchina/Furion/commit/1c274347517671e7611a8c578a05ce273248700d)
- [Добавлено] Настройка сериализации логов Monitor для преобразования long в string <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Добавлено] Вывод версии Furion в заголовках HTTP-ответов <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [a4a49d6](https://gitee.com/dotnetchina/Furion/commit/a4a49d68d0ad6f0473ba45090cc7881900d8ad2b)
- [Добавлено] Настройка параллелизма выполнения задач <sup>4.9.1.22</sup> <sup>⏱️2024.01.14</sup> [#I8VXFV](https://gitee.com/dotnetchina/Furion/issues/I8VXFV)
- [Добавлено] Асинхронный метод запуска сервера Serve.RunAsync <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [#I8V0J8](https://gitee.com/dotnetchina/Furion/issues/I8V0J8)
- [Добавлено] Статический метод Oops.Text(errorCode) для получения сообщений ошибок по коду <sup>4.9.1.18</sup> <sup>⏱️2024.01.08</sup> [f25125c](https://gitee.com/dotnetchina/Furion/commit/f25125c06d902709025be2420665cecb6e7fb520)
- [Добавлено] Реализация метода OnExecutionRecord интерфейса IJobPersistence для записи истории выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Событие OnExecutionRecord для слежения за историей выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Базовый класс EntityNotTenant и EntityBaseNotTenant для EFCore <sup>4.9.1.11</sup> <sup>⏱️2023.12.04</sup> [b62bfb1](https://gitee.com/dotnetchina/Furion/commit/b62bfb1a18d57f7fe3dd9548aa02372025dfed85)
- [Добавлено] Поддержка конфигурирования ConsoleFormatterExtendOptions при старте консольных логов <sup>4.9.1.10</sup> <sup>⏱️2023.12.04</sup> [a96fe08](https://gitee.com/dotnetchina/Furion/commit/a96fe08336dbf99b7cf5cc5e6ec304adf7413a4b)
- [Добавлено] Возможность отмены текущего выполнения задач в расписании <sup>4.9.1.9</sup> <sup>⏱️2023.12.03</sup> [3cc9be0](https://gitee.com/dotnetchina/Furion/commit/3cc9be0da1eabc0f3baaa7801b115bb2909bb085)
- [Добавлено] Метод JSON.IsValid(jsonString) для проверки корректности JSON строки <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [22bc69b](https://gitee.com/dotnetchina/Furion/commit/22bc69bd4a445f81833c082da7c99f4a5c518012)
- [Добавлено] Метод экспорта информации о токенах из axios-utils.ts <sup>4.9.1.7</sup> <sup>⏱️2023.11.29</sup> [ae8c3e8](https://gitee.com/dotnetchina/Furion/commit/ae8c3e8c47494fa3ba37d2b076d54f9f2c016252)
- [Добавлено] Автоматическое фильтрование запросов SSE, файлов и изображений <sup>4.9.1.6</sup> <sup>⏱️2023.11.22</sup> [#I8IP6D](https://gitee.com/dotnetchina/Furion/issues/I8IP6D)
- [Добавлено] Поддержка UseSnakeCaseNaming атрибута AppDbContext для названий таблиц в snake_case <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [#I8HGR2](https://gitee.com/dotnetchina/Furion/issues/I8HGR2) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- [Добавлено] Модульное привязывание модели биндинга для преобразования времени в DateTime/DateTimeOffset <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [df3053c](https://gitee.com/dotnetchina/Furion/commit/df3053cf081d5e4d8eb63d567ed95c45267e0969)
- [Добавлено] Автоматическое преобразование времени в DateTime/DateTimeOffset для Newtonsoft.Json <sup>4.9.1.3</sup> <sup>⏱️2023.11.17</sup> [78a589d](https://gitee.com/dotnetchina/Furion/commit/78a589d99eb5985b576e4c96acd6e4890391d6ff)
- [Добавлено] Автоматическое преобразование времени в DateTime/DateTimeOffset для System.Text.Json <sup>4.9.1.2</sup> <sup>⏱️2023.11.17</sup> [abd5196](https://gitee.com/dotnetchina/Furion/commit/abd5196f5c5160a5df96dad80c7c5aa51b96d5b9)
- [Добавлено] Функциональность IRepositoryFactory<TEntity, TDbContextLocator> для решения проблем с использованием EFCore в Blazor <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [4285ec0](https://gitee.com/dotnetchina/Furion/commit/4285ec0b8debc2d71c7f978126cb3dc394a8ad30) [Документация](https://learn.microsoft.com/ru-ru/aspnet/core/blazor/blazor-ef-core?view=aspnetcore-7.0)
- [Добавлено] Функциональность модуля компенсационной политики <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup> [【Исходный код】](https://gitee.com/dotnetchina/Furion/tree/v4/framework/Furion/RescuePolicy) [dfc63e7](https://gitee.com/dotnetchina/Furion/commit/dfc63e7f0ffd2e03653f11a3e49a21646902ddc4)
- **Критические изменения**
- [Обновлено] **Поддержка основного уровня .NET9.0 Preview** <sup>4.9.1.31</sup> <sup>⏱️2024.02.14</sup> [3c7a25b](https://gitee.com/dotnetchina/Furion/commit/3c7a25b9903f26ccea88027acd7d485d5eab9da4)
- [Добавлено] **Настройка обработчика событий Bus для одноразового использования** <sup>4.9.1.24</sup> <sup>⏱️2024.01.19</sup> [dc882eb](https://gitee.com/dotnetchina/Furion/commit/dc882ebc8f8e37977b4a55963711b0fa86f2c741)
- [Изменено] По умолчанию отключение сериализации long в string для логов Monitor <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Добавлено] Реализация метода OnExecutionRecord интерфейса IJobPersistence для записи истории выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Изменено] **Динамическое создание маршрутов WebAPI с контролируемыми версионными правилами, разделителем версий по умолчанию @ заменён на v** <sup>4.9.1.14</sup> <sup>⏱️2023.12.14</sup> [7677d0f](https://gitee.com/dotnetchina/Furion/commit/7677d0fa615d3ccdf784542b5702cd1d6165e78f)
- [Обновлено] Обновление зависимости Serilog до версии 8.0.0, **удаление метода расширения UseSerilogDefault для IWebHostBuilder в .NET8.0** <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [5ab3e43](https://gitee.com/dotnetchina/Furion/commit/5ab3e43722a298db56a86792dde301adf1f3fe7f)
- [Обновлено] **Основной уровень поддерживает .NET8.0 RTM** <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- [Обновлено] **Шаблоны поддерживают .NET8.0 RTM** <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- **Устранение ошибок** - [Исправлено] Ошибка при повторной регистрации Inject в модульном режиме <sup>4.9.1.32</sup> <sup>⏱️2024.02.21</sup> [1651013](https://gitee.com/dotnetchina/Furion/commit/1651013533b871950f493f33a1623ef3efe25e06)
- [Исправлено] Недействие настроек формата DateTime/DateTimeOffset/DateOnly/TimeOnly <sup>4.9.1.30</sup> <sup>⏱️2024.02.07</sup> [8057a6a](https://gitee.com/dotnetchina/Furion/commit/8057a6abfba258fe787dc5123c8d183150a1ec34)
- [Исправлено] Ошибка при анализе нестандартных заголовков charset в ответах удаленного запроса <sup>4.9.1.29</sup> <sup>⏱️2024.02.05</sup> [d5d03e5](https://gitee.com/dotnetchina/Furion/commit/d5d03e5c1a2d9124b681c1160b6c1ba814e8b4ea)
- [Исправлено] Проблема с пустым исключением при использовании throw Oops.Oh(message) в Blazor компоненте <sup>4.9.1.28</sup> <sup>⏱️2024.01.31</sup> [cc5b84d](https://gitee.com/dotnetchina/Furion/commit/cc5b84d9efddaf1b48dc8eb25b5a6f5b4c35bef9)
- [Исправлено] Ошибка при настройке VersionInFront: false для динамического WebAPI <sup>4.9.1.26</sup> <sup>⏱️2024.01.12</sup> [#I8ZGGH](https://gitee.com/dotnetchina/Furion/issues/I8ZGGH) [#I8ZDXD](https://gitee.com/dotnetchina/Furion/issues/I8ZDXD) [#I8ZFNG](https://gitee.com/dotnetchina/Furion/issues/I8ZFNG)
- [Исправлено] Возможность возникновения пустого исключения после активации WithStackFrame <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [c8be745](https://gitee.com/dotnetchina/Furion/commit/c8be745dd119c73c9230dbfdf6150ddbfcd16e81)
- [Исправлено] Проблема с ForceWithRoutePrefix для динамического WebAPI без Module <sup>4.9.1.19</sup> <sup>⏱️2024.01.09</sup> [87849d1](https://gitee.com/dotnetchina/Furion/commit/87849d1ef1dc098e702db66f47490bd7e75495d5)
- [Исправлено] Проблема с нормализацией документов при загрузке аннотаций классов <sup>4.9.1.17</sup> <sup>⏱️2024.01.04</sup> [#I8TJZ0](https://gitee.com/dotnetchina/Furion/issues/I8TJZ0)
- [Исправлено] Проблема с AsLowerCamelCase конфигурацией для динамического WebAPI <sup>4.9.1.15</sup> <sup>⏱️2023.12.20</sup> [d9810be](https://gitee.com/dotnetchina/Furion/commit/d9810bece0a1d1108e134cfdae2fdd868554f769)
- [Исправлено] Проблема с рекурсивным преобразованием объектов ClayModel в Dictionary <sup>4.9.1.13</sup> <sup>⏱️2023.12.11</sup> [#I8NFT4](https://gitee.com/dotnetchina/Furion/issues/I8NFT4)
- [Исправлено] Проблема с отсутствием перехвата внутренних исключений в Scoped.CreateAsync <sup>4.9.1.12</sup> <sup>⏱️2023.12.08</sup> [0a89a43](https://gitee.com/dotnetchina/Furion/commit/0a89a434223c45d84b8908f6aff1bf1d7528193a)
- [Исправлено] Проблема с отсутствием перехвата внутренних исключений в Scoped.CreateUowAsync <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [3c859e8](https://gitee.com/dotnetchina/Furion/commit/3c859e83c0ed6f07fcf191973fe465599a823224)
- [Исправлено] Проблема с невозможностью сброса состояния задач при установке Result триггером <sup>4.9.1.7</sup> <sup>⏱️2023.11.24</sup> [147215f](https://gitee.com/dotnetchina/Furion/commit/147215f1631f58fca900f17cca5695f9431555e5)
- [Исправлено] Проблема с получением пользовательских настроек JWTEncryption.GetJWTSettings() <sup>4.9.1.4</sup> <sup>⏱️2023.11.18</sup> [c045e08](https://gitee.com/dotnetchina/Furion/commit/c045e084670a98f71d5ea5ed55ca5cbbfc981e0b)
- **Прочие изменения**
- [Изменено] Улучшение GC сборщика мусора для снижения долгосрочной нагрузки на память <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [f43fc25](https://gitee.com/dotnetchina/Furion/commit/f43fc25dc59c5e539844048d2da4bce4153e3063)
- [Изменено] Ускорение производительности шаблонизатора для повышения скорости анализа кэшированных шаблонов <sup>4.9.1.16</sup> <sup>⏱️2023.12.27</sup> [d7ea423](https://gitee.com/dotnetchina/Furion/commit/d7ea423f272de141a351d7f7f4fb29ae0d9b1df6)
- **Документация**
- [Добавлено] Документация по интеграции ASP.NET 9 <sup>[Ссылка]</sup>(https://furion.net/docs/get-start-net9.mdx)
- [Добавлено] Документация по переходу с .NET8 на .NET9 <sup>[Ссылка]</sup>(https://furion.net/docs/net8-to-net9.mdx)
- [Добавлено] Документация по новому развертыванию Docker <sup>[Ссылка]</sup>(https://furion.net/docs/deploy-docker.mdx)
- [Добавлено] Документация по развертыванию Nginx <sup>[Ссылка]</sup>(https://furion.net/docs/deploy-nginx.mdx)
- [Добавлено] Документация по развертыванию Windows Service <sup>[Ссылка]</sup>(https://furion.net/docs/deploy-service.mdx)
- [Обновлено] Документация по репозиториям, Db статическим классам, шаблонизатору, переходу с .NET7 на .NET8, JSON сериализации, развертыванию Docker, контексту баз данных, виртуальным файлам, удаленным запросам, HttpContext, статическому классу JSON, планировщику задач, расширению репозитория баз данных, сущностям баз данных, нормализации, очередям задач, виртуальной файловой системе, развертыванию PM2
- **Контрибьюторы**
- Jianjian An ([@MadOneYou](https://gitee.com/MadOneYou)) [!869](https://gitee.com/dotnetchina/Furion/pulls/869) [!870](https://gitee.com/dotnetchina/Furion/pulls/870)
- Zuohuaijun ([@zuohuaijun](https://gitee.com/zuohuaijun)) [!865](https://gitee.com/dotnetchina/Furion/pulls/865)
- An Liuty ([@anliuty](https://gitee.com/www.fengyunmy.com)) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- Fengyun Mingyue ([@www.fengyunmy.com](https://gitee.com/www.fengyunmy.com)) [!862](https://gitee.com/dotnetchina/Furion/pulls/862)
---
> Обновление лога: [https://furion.net/docs/upgrade/v4](https://furion.net/docs/upgrade/v4)
---
- **Новые возможности**
- [Добавлено] Поддержка шаблонизатора .NET9 <sup>4.9.1.31</sup> <sup>⏱️2024.02.14</sup> [3c7a25b](https://gitee.com/dotnetchina/Furion/commit/3c7a25b9903f26ccea88027acd7d485d5eab9da4)
- [Добавлено] Шаблонизатор Blazor Auto для .NET8 <sup>4.9.1.28</sup> <sup>⏱️2024.02.02</sup> [67ea9ad](https://gitee.com/dotnetchina/Furion/commit/67ea9ad8df3c917a8b3eb8242e033d41cb512c20)
- [Добавлено] Поддержка задач с указанием TaskId, каналами и событиями OnExecuted <sup>4.9.1.28</sup> <sup>⏱️2024.01.31</sup> [1c27434](https://gitee.com/dotnetchina/Furion/commit/1c274347517671e7611a8c578a05ce273248700d)
- [Добавлено] Автоматическая обработка HTTP-кодов состояния 301, 302 и заголовков Location в ответах <sup>4.9.1.27</sup> <sup>⏱️2024.01.29</sup> [65aa221](https://gitee.com/dotnetchina/Furion/commit/65aa221ee6b99904b5349dfdad34b701296c0f5c)
- [Добавлено] Конфигурация обработчика событий Bus для одноразового использования <sup>4.9.1.24</sup> <sup>⏱️2024.01.19</sup> [dc882eb](https://gitee.com/dotnetchina/Furion/commit/dc882ebc8f8e37977b4a55963711b0fa86f2c741)
- [Добавлено] Настройка количества попыток и интервалов повторной отправки задач <sup>4.9.1.24</sup> <sup>⏱️2023.01.19</sup> [1c27434](https://gitee.com/dotnetchina/Furion/commit/1c274347517671e7611a8c578a05ce273248700d)
- [Добавлено] Настройка сериализации монитора логов для преобразования long в string <sup>4.9.1.23</sup> <sup>⏱️2023.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Добавлено] Вывод версии Furion в заголовках HTTP-ответов <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [a4a49d6](https://gitee.com/dotnetchina/Furion/commit/a4a49d68d0ad6f0473ba45090cc7881900d8ad2b)
- [Добавлено] Настройка параллелизма выполнения задач <sup>4.9.1.22</sup> <sup>⏱️2024.01.14</sup> [#I8VXFV](https://gitee.com/dotnetchina/Furion/issues/I8VXFV)
- [Добавлено] Асинхронный метод запуска сервера Serve.RunAsync <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [#I8V0J8](https://gitee.com/dotnetchina/Furion/issues/I8V0J8)
- [Добавлено] Статический метод Oops.Text(errorCode) для получения сообщений ошибок по коду <sup>4.9.1.18</sup> <sup>⏱️2024.01.08</sup> [f25125c](https://gitee.com/dotnetchina/Furion/commit/f25125c06d902709025be2420665cecb6e7fb520)
- [Добавлено] Реализация записи истории выполнения задач через интерфейс IJobPersistence.OnExecutionRecord <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Событие OnExecutionRecord для отслеживания истории выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Базовый класс EntityNotTenant и EntityBaseNotTenant для EFCore <sup>4.9.1.11</sup> <sup>⏱️2023.12.04</sup> [b62bfb1](https://gitee.com/dotnetchina/Furion/commit/b62bfb1a18d57f7fe3dd9548aa02372025dfed85)
- [Добавлено] Поддержка конфигурирования ConsoleFormatterExtendOptions при старте консольного логгера <sup>4.9.1.10</sup> <sup>⏱️2023.12.04</sup> [a96fe08](https://gitee.com/dotnetchina/Furion/commit/a96fe08336dbf99b7cf5cc5e6ec304adf7413a4b)
- [Добавлено] Возможность отмены текущего выполнения задач в расписании <sup>4.9.1.9</sup> <sup>⏱️2023.12.03</sup> [3cc9be0](https://gitee.com/dotnetchina/Furion/commit/3cc9be0da1eabc0f3baaa7801b115bb2909bb085)
- [Добавлено] Метод JSON.IsValid(jsonString) для проверки корректности JSON строки <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [22bc69b](https://gitee.com/dotnetchina/Furion/commit/22bc69bd4a445f81833c082da7c99f4a5c518012)
- [Добавлено] Метод экспорта информации токена из axios-utils.ts <sup>4.9.1.7</sup> <sup>⏱️2023.11.29</sup> [ae8c3e8](https://gitee.com/dotnetchina/Furion/commit/ae8c3e8c47494fa3ba37d2b076d54f9f2c016252)
- [Добавлено] Автоматическое фильтрование запросов SSE, файлов и изображений <sup>4.9.1.6</sup> <sup>⏱️2023.11.22</sup> [#I8IP6D](https://gitee.com/dotnetchina/Furion/issues/I8IP6D)
- [Добавлено] Поддержка UseSnakeCaseNaming для настроек AppDbContext <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [#I8HGR2](https://gitee.com/dotnetchina/Furion/issues/I8HGR2) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- [Добавлено] Модульное привязывание модели биндер для преобразования времени в DateTime/DateTimeOffset <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [df3053c](https://gitee.com/dotnetchina/Furion/commit/df3053cf081d5e4d8eb63d567ed95c45267e0969)
- [Добавлено] Преобразование времени в DateTime/DateTimeOffset в Newtonsoft.Json <sup>4.9.1.3</sup> <sup>⏱️2023.11.17</sup> [78a589d](https://gitee.com/dotnetchina/Furion/commit/78a589d99eb5985b576e4c96acd6e4890391d6ff)
- [Добавлено] Преобразование времени в DateTime/DateTimeOffset в System.Text.Json <sup>4.9.1.2</sup> <sup>⏱️2023.11.17</sup> [abd5196](https://gitee.com/dotnetchina/Furion/commit/abd5196f5c5160a5df96dad80c7c5aa51b96d5b9)
- [Добавлено] Функциональность репозитория IRepositoryFactory<TEntity, TDbContextLocator> для решения проблем с использованием EFCore в Blazor <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [4285ec0](https://gitee.com/dotnetchina/Furion/commit/4285ec0b8debc2d71c7f978126cb3dc394a8ad30) [Документация](https://learn.microsoft.com/ru-ru/aspnet/core/blazor/blazor-ef-core?view=aspnetcore-7.0)
- [Добавлено] Функциональность модуля компенсационной политики <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup> [【Исходный код】](https://gitee.com/dotnetchina/Furion/tree/v4/framework/Furion/RescuePolicy) [dfc63e7](https://gitee.com/dotnetchina/Furion/commit/dfc63e7f0ffd2e03653f11a3e49a21646902ddc4)
- **Критические изменения**
- [Обновлено] **Поддержка основного уровня .NET9.0 Preview** <sup>4.9.1.31</sup> <sup>⏱️2024.02.14</sup> [3c7a25b](https://gitee.com/dotnetchina/Furion/commit/3c7a25b9903f26ccea88027acd7d485d5eab9da4)
- [Добавлено] **Настройка обработчика событий Bus для одноразового использования** <sup>4.9.1.24</sup> <sup>⏱️2024.01.19</sup> [dc882eb](https://gitee.com/dotnetchina/Furion/commit/dc882ebc8f8e37977b4a55963711b0fa86f2c741)
- [Изменено] По умолчанию отключение сериализации long в string для монитора логов <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Добавлено] Реализация записи истории выполнения задач через интерфейс IJobPersistence.OnExecutionRecord <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Изменено] **Динамическое создание маршрутов WebAPI с контролируемыми правилами версионирования, разделителем версий по умолчанию @ заменён на v** <sup>4.9.1.14</sup> <sup>⏱️2023.12.14</sup> [7677d0f](https://gitee.com/dotnetchina/Furion/commit/7677d0fa615d3ccdf784542b5702cd1d6165e78f)
- [Обновлено] Обновление зависимости Serilog до версии 8.0.0, **удаление метода расширения UseSerilogDefault для IWebHostBuilder в .NET8.0** <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [5ab3e43](https://gitee.com/dotnetchina/Furion/commit/5ab3e43722a298db56a86792dde301adf1f3fe7f)
- [Обновлено] **Основной уровень поддерживает .NET8.0 RTM** <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- [Обновлено] **Шаблоны поддерживают .NET8.0 RTM** <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- **Устранение ошибок** - [Исправлено] Проблема повторной регистрации Inject при модульном подходе <sup>4.9.1.32</sup> <sup>⏱️2024.02.21</sup> [1651013](https://gitee.com/dotnetchina/Furion/commit/1651013533b871950f493f33a1623ef3efe25e06)
- [Исправлено] Проблема невалидности настроек формата DateTime/DateTimeOffset/DateOnly/TimeOnly <sup>4.9.1.30</sup> <sup>⏱️2024.02.07</sup> [8057a6a](https://gitee.com/dotnetchina/Furion/commit/8057a6abfba258fe787dc5123c8d183150a1ec34)
- [Исправлено] Проблема анализа ненормированного charset в заголовках HTTP-ответов <sup>4.9.1.29</sup> <sup>⏱️2024.02.05</sup> [d5d03e5](https://gitee.com/dotnetchina/Furion/commit/d5d03e5c1a2d9124b681c1160b6c1ba814e8b4ea)
- [Исправлено] Проблема пустого исключения при вызове throw Oops.Oh(message) в Blazor компоненте <sup>4.9.1.28</sup> <sup>⏱️2024.01.31</sup> [cc5b84d](https://gitee.com/dotnetchina/Furion/commit/cc5b84d9efddaf1b48dc8eb25b5a6f5b4c35bef9)
- [Исправлено] Проблема с настройками VersionInFront: false в динамическом WebAPI <sup>4.9.1.26</sup> <sup>⏱️2024.01.12</sup> [#I8ZGGH](https://gitee.com/dotnetchina/Furion/issues/I8ZGGH) [#I8ZDXD](https://gitee.com/dotnetchina/Furion/issues/I8ZDXD) [#I8ZFNG](https://gitee.com/dotnetchina/Furion/issues/I8ZFNG)
- [Исправлено] Проблема пустого исключения после активации WithStackFrame <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [c8be745](https://gitee.com/dotnetchina/Furion/commit/c8be745dd119c73c9230dbfdf6150ddbfcd16e81)
- [Исправлено] Проблема ForceWithRoutePrefix в динамическом WebAPI без Module <sup>4.9.1.19</sup> <sup>⏱️2024.01.09</sup> [87849d1](https://gitee.com/dotnetchina/Furion/commit/87849d1ef1dc098e702db66f47490bd7e75495d5)
- [Исправлено] Проблема повторного ключа при загрузке документов с одинаковым полным именем класса <sup>4.9.1.17</sup> <sup>⏱️2024.01.04</sup> [#I8TJZ0](https://gitee.com/dotnetchina/Furion/issues/I8TJZ0)
- [Исправлено] Проблема AsLowerCamelCase в динамическом WebAPI после коммита [1dc7ea7] <sup>4.9.1.15</sup> <sup>⏱️2023.12.20</sup> [d9810be](https://gitee.com/dotnetchina/Furion/commit/d9810bece0a1d1108e134cfdae2fdd868554f769)
- [Исправлено] Проблема рекурсивного преобразования объекта ClayModel в Dictionary <sup>4.9.1.13</sup> <sup>⏱️2023.12.11</sup> [#I8NFT4](https://gitee.com/dotnetchina/Furion/issues/I8NFT4)
- [Исправлено] Проблема отсутствия захвата внутренних исключений в Scoped.CreateAsync <sup>4.9.1.12</sup> <sup>⏱️2023.12.08</sup> [0a89a43](https://gitee.com/dotnetchina/Furion/commit/0a89a434223c45d84b8908f6aff1bf1d7528193a)
- [Исправлено] Проблема отсутствия захвата внутренних исключений в Scoped.CreateUowAsync <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [3c859e8](https://gitee.com/dotnetchina/Furion/commit/3c859e83c0ed6f07fcf191973fe465599a823224)
- [Исправлено] Проблема сброса состояния задачи после установки триггера Result <sup>4.9.1.7</sup> <sup>⏱️2bk23.11.24</sup> [147215f](https://gitee.com/dotnetchina/Furion/commit/147215f1631f58fca900f17cca5695f9431555e5)
- [Исправлено] Проблема получения настроек JWT при самостоятельном использовании JWTEncryption.GetJWTSettings() <sup>4.9.1.4</sup> <sup>⏱️2023.11.18</sup> [c045e08](https://gitee.com/dotnetchina/Furion/commit/c045e084670a98f71d5ea5ed55ca5cbbfc981e0b)
- **Прочие изменения**
- [Изменено] Оптимизация GC для снижения долгосрочной нагрузки на память <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [f43fc25](https://gitee.com/dotnetchina/Furion/commit/f43fc25dc59c5e539844048d2da4bce4153e3063)
- [Изменено] Улучшение производительности компиляции шаблонов и скорости разбора кэшированных шаблонов <sup>4.9.1.16</sup> <sup>⏱️2023.12.27</sup> [d7ea423](https://gitee.com/dotnetchina/Furion/commit/d7ea423f272de141a351d7f7f4fb29ae0d9b1df6)
- **Документация**
- [Добавлено] Документация по интеграции ASP.NET 9 <sup>[Ссылка]</sup>
- [Добавлено] Документация по переходу с .NET8 на .NET9 <sup>[Ссылка]</sup>
- [Добавлено] Документация по новому развертыванию Docker <sup>[Ссылка]</sup>
- [Добавлено] Документация по развертыванию Nginx <sup>[Ссылка]</sup>
- [Добавлено] Документация по развертыванию Windows Service <sup>[Ссылка]</sup>
- [Обновлено] Документация по репозиториям, Db статическому классу, шаблонизатору, переходу с .NET7 на .NET8, JSON сериализации, развертыванию Docker, контексту баз данных, виртуальным файлам, удаленным запросам, HttpContext, статическому классу JSON, планировщику задач, расширению репозитория баз данных, сущностям баз данных, нормализации, очередям задач, виртуальной файловой системе, развертыванию PM2
- **Контрибьюторы**
- Jianjian An ([@MadOneYou](https://gitee.com/MadOneYou)) [!869](https://gitee.com/dotnetchina/Furion/pulls/869) [!870](https://gitee.com/dotnetchina/Furion/pulls/870)
- Zuohuaijun ([@zuohuaijun](https://gitee.com/zuohuaijun)) [!865](https://gitee.com/dotnetchina/Furion/pulls/865)
- An Liuty ([@anliuty](https://gitee.com/www.fengyunmy.com)) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- Fengyun Mingyue ([@www.fengyunmy.com](https://gitee.com/www.fengyunmy.com)) [!862](https://gitee.com/dotnetchina/Furion/pulls/862)
---
> Обновление лога: [https://furion.net/docs/upgrade](https://furion.net/docs/upgrade)
- **Новые возможности**
- [Добавлено] Поддержка автоматической обработки HTTP-статусов `301`, `302` и заголовков ответа с полем `Location` <sup>4.9.1.27</sup> <sup>⏱️2024.01.29</sup> [65aa221](https://gitee.com/dotnetchina/Furion/commit/65aa221ee6b99904b5349dfdad34b701296c0f5c)
- [Добавлено] Поддержка конфигурации обработчика событий для одноразового использования <sup>4.9.1.24</sup> <sup>⏱️2024.01.19</sup> [dc882eb](https://gitee.com/dotnetchina/Furion/commit/dc882ebc8f8e37977b4a55963711b0fa86f2c741)
- [Добавлено] Поддержка конфигурирования количества попыток повторной отправки и интервалов между ними в очередях задач <sup>4.9.1.24</sup> <sup>⏱️2023.01.19</sup> [1c27434](https://gitee.com/dotnetchina/Furion/commit/1c274347517671e7611a8c578a05ce273248700d)
- [Добавлено] Настройка сериализации монитора логов `Monitor` для преобразования значений типа `long` в строки <sup>4.9.1.23</sup> <sup>⏱️2023.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Добавлено] Включение версии Furion в заголовках HTTP-ответов <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [a4a49d6](https://gitee.com/dotnetchina/Furion/commit/a4a49d68d0ad6f0473ba45090cc7881900d8ad2b)
- [Добавлено] Поддержка параллельного выполнения задач в очередях задач <sup>4.9.1.22</sup> <sup>⏱️2024.01.14</sup> [#I8VXFV](https://gitee.com/dotnetchina/Furion/issues/I8VXFV)
- [Добавлено] Поддержка асинхронного запуска хоста методом `Serve.RunAsync` <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [#I8V0J8](https://gitee.com/dotnetchina/Furion/issues/I8V0J8)
- [Добавлено] Статический метод `Oops.Text(errorCode)` для получения сообщений ошибок по коду ошибки <sup>4.9.1.18</sup> <sup>⏱️2024.01.08</sup> [f25125c](https://gitee.com/dotnetchina/Furion/commit/f25125c06d902709025be2420665cecb6e7fb520)
- [Добавлено] Реализация метода `OnExecutionRecord` интерфейса `IJobPersistence` для записи истории выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Событие `OnExecutionRecord` для слежения за историей выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Базовые классы `EntityNotTenant` и `EntityBaseNotTenant` для работы с базой данных EFCore <sup>4.9.1.11</sup> <sup>⏱️2023.12.04</sup> [b62bfb1](https://gitee.com/dotnetchina/Furion/commit/b62bfb1a18d57f7fe3dd9548aa02372025dfed85)
- [Добавлено] Поддержка синхронизации конфигураций `ConsoleFormatterExtendOptions` при старте консольного логгера <sup>4.9.1.10</sup> <sup>⏱️2023.12.04</sup> [a96fe08](https://gitee.com/dotnetchina/Furion/commit/a96fe08336dbf99b7cf5cc5e6ec304adf7413a4b)
- [Добавлено] Возможность отмены текущего выполнения задачи в планировщике задач <sup>4.9.1.9</sup> <sup>⏱️2023.12.03</sup> [3cc9be0](https://gitee.com/dotnetchina/Furion/commit/3cc9be0da1eabc0f3baaa7801b115bb2909bb085)
- [Добавлено] Метод проверки корректности JSON-строки `JSON.IsValid(jsonString)` <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [22bc69b](https://gitee.com/dotnetchina/Furion/commit/22bc69bd4a445f81833c082da7c99f4a5c518012)
- [Добавлено] Метод экспорта информации о токенах из файла `axios-utils.ts` <sup>4.9.1.7</sup> <sup>⏱️2023.11.29</sup> [ae8c3e8](https://gitee.com/dotnetchina/Furion/commit/ae8c3e8c47494fa3ba37d2b076d54f9f2c016252)
- [Добавлено] Автоматическое фильтрование запросов SSE, файловых и изображений <sup>4.9.1.6</sup> <sup>⏱️2023.11.22</sup> [#I8IP6D](https://gitee.com/dotnetchina/Furion/issues/I8IP6D)
- [Добавлено] Поддержка использования свойства `UseSnakeCaseNaming` для настройки имени таблицы в snake_case <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [#I8HGR2](https://gitee.com/dotnetchina/Furion/issues/I8HGR2) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- [Добавлено] Преобразование времени в типах `DateTime` и `DateTimeOffset` <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [df3053c](https://gitee.com/dotnetchina/Furion/commit/df3053cf081d5e4d8eb63d567ed95c45267e0969)
- [Добавлено] Преобразование времени в типах `DateTime` и `DateTimeOffset` при использовании библиотеки Newtonsoft.Json <sup>4.9.1.3</sup> <sup>⏱️2023.11.17</sup> [78a589d](https://gitee.com/dotnetchina/Furion/commit/78a589d99eb5985b576e4c96acd6e4890391d6ff)
- [Добавлено] Преобразование времени в типах `DateTime` и `DateTimeOffset` при использовании System.Text.Json <sup>4.9.1.2</sup> <sup>⏱️2023.11.17</sup> [abd5196](https://gitee.com/dotnetchina/Furion/commit/abd5196f5c5160a5df96dad80c7c5aa51b96d5b9)
- [Добавлено] Интерфейс `IRepositoryFactory<TEntity, TDbContextLocator>` для решения проблем использования EFCore в Blazor <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [4285ec0](https://gitee.com/dotnetchina/Furion/commit/4285ec0b8debc2d71c7f978126cb3dc394a8ad30) [Документация](https://learn.microsoft.com/ru-ru/aspnet/core/blazor/blazor-ef-core?view=aspnetcore-7.0)
- [Добавлено] Модуль компенсирующих стратегий <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup> [【Исходный код】](https://gitee.com/dotnetchina/Furion/tree/v4/framework/Furion/RescuePolicy) [dfc63e7](https://gitee.com/dotnetchina/Furion/commit/dfc63e7f0ffd2e03653f11a3e49a21646902ddc4)
- **Критические изменения**
- [Добавлено] Поддержка конфигурации обработчика событий для одноразового использования <sup>4.9.1.24</sup> <sup>⏱️2024.01.19</sup> [dc882eb](https://gitee.com/dotnetchina/Furion/commit/dc882ebc8f8e37977b4a55963711b0fa86f2c741)
- [Изменено] По умолчанию отключена сериализация значений типа `long` в строки в мониторе логов <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Добавлено] Реализация метода `OnExecutionRecord` интерфейса `IJobPersistence` для записи истории выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Изменено] Динамическая генерация маршрутов API с использованием разделителя версий `v` вместо `@` <sup>4.9.1.14</sup> <sup>⏱️2023.12.14</sup> [7677d0f](https://gitee.com/dotnetchina/Furion/commit/7677d0fa615d3ccdf784542b5702cd1d6165e78f)
- [Обновлено] Обновление зависимости Serilog до версии `8.0.0` и удаление расширения `IWebHostBuilder.UseSerilogDefault` для .NET 8.0 <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [5ab3e43](https://gitee.com/dotnetchina/Furion/commit/5ab3e43722a298db56a86792dde301adf1f3fe7f)
- [Обновлено] Адаптация основного фреймворка для .NET 8.0 <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- [Обновлено] Адаптация шаблонизатора для .NET 8.0 <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- **Исправления ошибок** - [Исправлено] Проблема с установкой параметра `VersionInFront: false` в динамическом WebAPI <sup>4.9.1.26</sup> <sup>⏱️2024.01.12</sup> [#I8ZGGH](https://gitee.com/dotnetchina/Furion/issues/I8ZGGH) [#I8ZDXD](https://gitee.com/dotnetchina/Furion/issues/I8ZDXD) [#I8ZFNG](https://gitee.com/dotnetchina/Furion/issues/I8ZFNG)
- [Исправлено] Проблема с пустым исключением после активации конфигурации `WithStackFrame` <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [c8be745](https://gitee.com/dotnetchina/Furion/commit/c8be745dd119c73c9230dbfdf6150ddbfcd16e81)
- [Исправлено] Проблема с настройкой `ForceWithRoutePrefix` в динамическом WebAPI <sup>4.9.1.19</sup> <sup>⏱️2024.01.09</sup> [87849d1](https://gitee.com/dotnetchina/Furion/commit/87849d1ef1dc098e702db66f47490bd7e75495d5)
- [Исправлено] Проблема с повторным ключом при загрузке документов с одинаковым полным именем класса <sup>4.9.1.17</sup> <sup>⏱️2024.01.04</sup> [#I8TJZ0](https://gitee.com/dotnetchina/Furion/issues/I8TJZ0)
- [Исправлено] Проблема с настройкой `AsLowerCamelCase` в динамическом WebAPI <sup>4.9.1.15</sup> <sup>⏱️2023.12.20</sup> [d9810be](https://gitee.com/dotnetchina/Furion/commit/d9810bece0a1d1108e134cfdae2fdd868554f769)
- [Исправлено] Проблема с рекурсивной сериализацией объектов Clay в Dictionary <sup>4.9.1.13</sup> <sup>⏱️2023.12.11</sup> [#I8NFT4](https://gitee.com/dotnetchina/Furion/issues/I8NFT4)
- [Исправлено] Проблема с отсутствием перехвата внутренних исключений в методе `Scoped.CreateAsync` <sup>4.9.1.12</sup> <sup>⏱️2023.12.08</sup> [0a89a43](https://gitee.com/dotnetchina/Furion/commit/0a89a434223c45d84b8908f6aff1bf1d7528193a)
- [Исправлено] Проблема с отсутствием перехвата внутренних исключений в методе `Scoped.CreateUowAsync` <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [3c859e8](https://gitee.com/dotnetchina/Furion/commit/3c859e83c0ed6f07fcf191973fe465599a823224)
- [Исправлено] Проблема с невозможностью сброса состояния задачи после завершения выполнения <sup>4.9.1.7</sup> <sup>⏱️2023.11.24</sup> [147215f](https://gitee.com/dotnetchina/Furion/commit/147215f1631f58fca900f17cca5695f9431555e5)
- [Исправлено] Проблема с получением настроек JWT при самостоятельном использовании метода `JWTEncryption.GetJWTSettings()` <sup>4.9.1.4</sup> <sup>⏱️2023.11.18</sup> [c045e08](https://gitee.com/dotnetchina/Furion/commit/c045e084670a98f71d5ea5ed55ca5cbbfc981e0b)
- **Прочие изменения**
- [Изменено] Улучшение сборки мусора GC для снижения долгосрочной нагрузки на память <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [f43fc25](https://gitee.com/dotnetchina/Furion/commit/f43fc25dc59c5e539844048d2da4bce4153e3063)
- [Изменено] Оптимизация производительности компилятора шаблонов и увеличение скорости анализа кэшированных шаблонов <sup>4.9.1.16</sup> <sup>⏱️2023.12.27</sup> [d7ea423](https://gitee.com/dotnetchina/Furion/commit/d7ea423f272de141a351d7f7f4fb29ae0d9b1df6)
- **Документация**
- [Обновлено] Документация по репозиториям, статическим классам Db, шаблонизатору, переходу с .NET 7 на .NET 8, сериализации JSON, деплою Docker, контекстам базы данных, виртуальным файлам, удаленным запросам, HttpContext, статическим классам JSON, задачам планировщика, расширению репозиториев базы данных, моделям базы данных, нормализации, очередям задач, виртуальной файловой системе
- **Контрибьюторы**
- zuohuaijun ([@zuohuaijun](https://gitee.com/zuohuaijun)) [!865](https://gitee.com/dotnetchina/Furion/pulls/865)
- anliuty ([@anliuty](https://gitee.com/www.fengyunmy.com)) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- 风云明月([@www.fengyunmy.com](https://gitee.com/www.fengyunmy.com)) [!862](https://gitee.com/dotnetchina/Furion/pulls/862)
>Обновление лога: [https://furion.net/docs/upgrade](https://furion.net/docs/upgrade)
- **Новые возможности**
- [Добавлено] Возможность конфигурирования сериализации в мониторинге логов `Monitor`, чтобы обрабатывать преобразование `long` в `string` <sup>4.9.1.23</sup> <sup>⏱️2023.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Добавлено] Вывод версии `Furion` в HTTP-ответах <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [a4a49d6](https://gitee.com/dotnetchina/Furion/commit/a4a49d68d0ad6f0473ba45090cc7881900d8ad2b)
- [Добавлено] Поддержка параллельного выполнения задач в очередях <sup>4.9.1.22</sup> <sup>⏱️2024.01.14</sup> [#I8VXFV](https://gitee.com/dotnetchina/Furion/issues/I8VXFV)
- [Добавлено] Асинхронное запуск хоста методом `Serve.RunAsync` <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [#I8V0J8](https://gitee.com/dotnetchina/Furion/issues/I8V0J8)
- [Добавлено] Статический метод `Oops.Text(errorCode)` для получения сообщения ошибки по коду ошибки <sup>4.9.1.18</sup> <sup>⏱️2024.01.08</sup> [f25125c](https://gitee.com/dotnetchina/Furion/commit/f25125c06d902709025be2420665cecb6e7fb520)
- [Добавлено] Реализация метода `OnExecutionRecord` интерфейса `IJobPersistence` для записи истории выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Событие `OnExecutionRecord` для слежения за историей выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Базовые классы `EntityNotTenant` и `EntityBaseNotTenant` для работы с базой данных EFCore <sup>4.9.1.11</sup> <sup>⏱️2023.12.04</sup> [b62bfb1](https://gitee.com/dotnetchina/Furion/commit/b62bfb1a18d57f7fe3dd9548aa02372025dfed85)
- [Добавлено] Поддержка синхронной загрузки конфигураций форматирования консоли при старте <sup>4.9.1.10</sup> <sup>⏱️2023.12.04</sup> [a96fe08](https://gitee.com/dotnetchina/Furion/commit/a96fe08336dbf99b7cf5cc5e6ec304adf7413a4b)
- [Добавлено] Поддержка отмены выполняющихся задач <sup>4.9.1.9</sup> <sup>⏱️2023.12.03</sup> [3cc9be0](https://gitee.com/dotnetchina/Furion/commit/3cc9be0da1eabc0f3baaa7801b115bb2909bb085)
- [Добавлено] Метод проверки корректности JSON строки `JSON.IsValid(jsonString)` <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [22bc69b](https://gitee.com/dotnetchina/Furion/commit/22bc69bd4a445f81833c082da7c99f4a5c518012)
- [Добавлено] Метод экспорта информации токена из файла `axios-utils.ts` <sup>4.9.1.7</sup> <sup>⏱️2023.11.29</sup> [ae8c3e8](https://gitee.com/dotnetchina/Furion/commit/ae8c3e8c47494fa3ba37d2b076d54f9f2c016252)
- [Добавлено] Автоматическое фильтрование запросов SSE, файлов и изображений <sup>4.9.1.6</sup> <sup>⏱️2023.11.22</sup> [#I8IP6D](https://gitee.com/dotnetchina/Furion/issues/I8IP6D)
- [Добавлено] Поддержка использования атрибута `UseSnakeCaseNaming` для указания имени таблицы в виде змеиного регистра <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [#I8HGR2](https://gitee.com/dotnetchina/Furion/issues/I8HGR2) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- [Добавлено] Преобразование времени в формат `DateTime/DateTimeOffset` с помощью модели биндинга времени <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [df3053c](https://gitee.com/dotnetchina/Furion/commit/df3053cf081d5e4d8eb63d567ed95c45267e0969)
- [Добавлено] Автоматическое преобразование времени в формат `DateTime/DateTimeOffset` с использованием Newtonsoft.Json <sup>4.9.1.3</sup> <sup>⏱️2023.11.17</sup> [78a589d](https://gitee.com/dotnetchina/Furion/commit/78a589d99eb5985b576e4c96acd6e4890391d6ff)
- [Добавлено] Автоматическое преобразование времени в формат `DateTime/DateTimeOffset` с использованием System.Text.Json <sup>4.9.1.2</sup> <sup>⏱️2023.11.17</sup> [abd5196](https://gitee.com/dotnetchina/Furion/commit/abd5196f5c5160a5df96dad80c7c5aa51b96d5b9)
- [Добавлено] Интерфейс `IRepositoryFactory<TEntity, TDbContextLocator>` для решения проблем использования EFCore в Blazor <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [4285ec0](https://gitee.com/dotnetchina/Furion/commit/4285ec0b8debc2d71c7f978126cb3dc394a8ad30) [Документация](https://learn.microsoft.com/ru-ru/aspnet/core/blazor/blazor-ef-core?view=aspnetcore-7.0)
- [Добавлено] Модуль компенсирующих стратегий <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup> [【Исходный код】](https://gitee.com/dotnetchina/Furion/tree/v4/framework/Furion/RescuePolicy) [dfc63e7](https://gitee.com/dotnetchina/Furion/commit/dfc63e7f0ffd2e03653f11a3e49a21646902ddc4)
- **Основные изменения**
- [Изменено] По умолчанию деактивирована сериализация `long` в `string` в мониторинге логов <sup>4.9.1.23</sup> <sup>⏱️2bk24.01.16</sup> [#I8WDH9](https://gitee.com/dotnetchina/Furion/issues/I8WDH9)
- [Изменено] **Динамическая генерация маршрутов API с использованием разделителя версий `v` вместо `@`** <sup>4.9.1.14</sup> <sup>⏱️2023.12.14</sup> [7677d0f](https://gitee.com/dotnetchina/Furion/commit/7677d0fa615d3ccdf784542b5702cd1d6165e78f)
- [Улучшено] Обновление зависимости пакета расширения Serilog до версии `8.0.0`, **удаление метода расширения `IWebHostBuilder.UseSerilogDefault` для .NET8.0** <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [5ab3e43](https://gitee.com/dotnetchina/Furion/commit/5ab3e43722a298db56a86792dde301adf1f3fe7f)
- [Улучшено] **Поддержка основного уровня фреймворка для .NET8.0** <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- [Улучшено] **Поддержка шаблонизатора для .NET8.0** <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- **Исправления ошибок** - [Исправлено] Проблема с пустым исключением после активации конфигурации `WithStackFrame` <sup>4.9.1.21</sup> <sup>⏱️2024.01.12</sup> [c8be745](https://gitee.com/dotnetchina/Furion/commit/c8be745dd119c73c9230dbfdf6150ddbfcd16e81)
- [Исправлено] Проблема с конфигурацией `ForceWithRoutePrefix` для динамических WebAPI <sup>4.9.1.19</sup> <sup>⏱️2024.01.09</sup> [87849d1](https://gitee.com/dotnetchina/Furion/commit/87849d1ef1dc098e702db66f47490bd7e75495d5)
- [Исправлено] Проблема с повторяющимися ключами при загрузке документов с одинаковым полным именем класса <sup>4.9.1.17</sup> <sup>⏱️2024.01.04</sup> [#I8TJZ0](https://gitee.com/dotnetchina/Furion/issues/I8TJZ0)
- [Исправлено] Проблема с конфигурацией `AsLowerCamelCase` для динамических WebAPI <sup>4.9.1.15</sup> <sup>⏱️2023.12.20</sup> [d9810be](https://gitee.com/dotnetchina/Furion/commit/d9810becce0a1d1108e134cfdae2fdd868554f769)
- [Исправлено] Проблема с рекурсивной сериализацией объектов Clay <sup>4.9.1.13</sup> <sup>⏱️2023.12.11</sup> [#I8NFT4](https://gitee.com/dotnetchina/Furion/issues/I8NFT4)
- [Исправлено] Проблема с незахватываемыми исключениями внутри `Scoped.CreateAsync` <sup>4.9.1.12</sup> <sup>⏱️2023.12.08</sup> [0a89a43](https://gitee.com/dotnetchina/Furion/commit/0a89a434223c45d84b8908f6aff1bf1d7528193a)
- [Исправлено] Проблема с незахватываемыми исключениями внутри `Scoped.CreateUowAsync` <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [3c859e8](https://gitee.com/dotnetchina/Furion/commit/3c859e83c0ed6f07fcf191973fe465599a823224)
- [Исправлено] Проблема с невозможностью сброса состояния задачи после возникновения исключения <sup>4.9.1.7</sup> <sup>⏱️2023.11.24</sup> [147215f](https://gitee.com/dotnetchina/Furion/commit/147215f1631f58fca900f17cca5695f9431555e5)
- [Исправлено] Проблема с получением настроек JWT при самостоятельном использовании `JWTEncryption.GetJWTSettings()` <sup>4.9.1.4</sup> <sup>⏱️2023.11.18</sup> [c045e08](https://gitee.com/dotnetchina/Furion/commit/c045e084670a98f71d5ea5ed55ca5cbbfc981e0b)
- **Прочие изменения**
- [Изменено] Улучшение сборки мусора GC для снижения долгосрочной нагрузки на память <sup>4.9.1.23</sup> <sup>⏱️2024.01.16</sup> [f43fc25](https://gitee.com/dotnetchina/Furion/commit/f43fc25dc59c5e539844048d2da4bce4153e3063)
- [Изменено] Ускорение производительности шаблонизатора и увеличение скорости анализа кэшированных шаблонов <sup>4.9.1.16</sup> <sup>⏱️2023.12.27</sup> [d7ea423](https://gitee.com/dotnetchina/Furion/commit/d7ea423f272de141a351d7f7f4fb29ae0d9b1df6)
- **Документация**
- [Обновлено] Документация по хранилищам, статическим классам Db, шаблонизатору, обновлению .NET7 до .NET8, сериализации JSON, установке Docker, контексту базы данных, виртуальным файлам, удаленным запросам, HttpContext, статическому классу JSON, планировщикам задач, расширению хранилища базы данных, сущностям базы данных, нормализации
- **Контрибьюторы**
- zuohuaijun ([@zuohuaijun](https://gitee.com/zuohuaijun)) [!865](https://gitee.com/dotnetchina/Furion/pulls/865)
- anliuty ([@anliuty](https://gitee.com/www.fengyunmy.com)) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- 风云明月([@www.fengyunmy.com](https://gitee.com/www.fengyunmy.com)) [!862](https://gitee.com/dotnetchina/Furion/pulls/862)
>История обновлений: http://furion.net/docs/upgrade
- **Новые возможности**
- [Добавлено] Интерфейс `IJobPersistence` для записи выполнения задач в базу данных методом `OnExecutionRecord` <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Событие `OnExecutionRecord` для отслеживания выполнения задач <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Добавлено] Базовый класс `EntityNotTenant` и `EntityBaseNotTenant` для работы с EF Core <sup>4.9.1.11</sup> <sup>⏱️2023.12.04</sup> [b62bfb1](https://gitee.com/dotnetchina/Furion/commit/b62bfb1a18d57f7fe3dd9548aa02372025dfed85)
- [Добавлено] Поддержка конфигурации `ConsoleFormatterExtendOptions` при запуске приложения <sup>4.9.1.10</sup> <sup>⏱️2023.12.04</sup> [a96fe08](https://gitee.com/dotnetchina/Furion/commit/a96fe08336dbf99b7cf5cc5e6ec304adf7413a4b)
- [Добавлено] Возможность отмены текущего выполнения задачи <sup>4.9.1.9</sup> <sup>⏱️2023.12.03</sup> [3cc9be0](https://gitee.com/dotnetchina/Furion/commit/3cc9be0da1eabc0f3baaa7801b115bb2909bb085)
- [Добавлено] Метод проверки валидности JSON строки `JSON.IsValid(jsonString)` <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [22bc69b](https://gitee.com/dotnetchina/Furion/commit/22bc69bd4a445f81833c082da7c99f4a5c518012)
- [Добавлено] Метод экспорта информации о токенах из файла `axios-utils.ts` <sup>4.9.1.7</sup> <sup>⏱️2023.11.29</sup> [ae8c3e8](https://gitee.com/dotnetchina/Furion/commit/ae8c3e8c47494fa3ba37d2b076d54f9f2c016252)
- [Добавлено] Автоматическое фильтрование запросов SSE, файловых и изображений <sup>4.9.1.6</sup> <sup>⏱️2023.11.22</sup> [#I8IP6D](https://gitee.com/dotnetchina/Furion/issues/I8IP6D)
- [Добавлено] Поддержка использования атрибута `UseSnakeCaseNaming` для таблиц с использованием змеиного регистра <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [#I8HGR2](https://gitee.com/dotnetchina/Furion/issues/I8HGR2) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- [Добавлено] Преобразование времени в формат DateTime/DateTimeOffset <sup>4.9.1.5</sup> <sup>⏱️2023.11.20</sup> [df3053c](https://gitee.com/dotnetchina/Furion/commit/df3053cf081d5e4d8eb63d567ed95c45267e0969)
- [Добавлено] Автоматическое преобразование времени в формат DateTime/DateTimeOffset для Newtonsoft.Json <sup>4.9.1.3</sup> <sup>⏱️2023.11.17</sup> [78a589d](https://gitee.com/dotnetchina/Furion/commit/78a589d99eb5985b576e4c96acd6e4890391d6ff)
- [Добавлено] Автоматическое преобразование времени в формат DateTime/DateTimeOffset для System.Text.Json <sup>4.9.1.2</sup> <sup>⏱️2023.11.17</sup> [abd5196](https://gitee.com/dotnetchina/Furion/commit/abd5196f5c5160a5df96dad80c7c5aa51b96d5b9)
- [Добавлено] Интерфейс `IRepositoryFactory<TEntity, TDbContextLocator>` для решения проблем использования EF Core в Blazor <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [4285ec0](https://gitee.com/dotnetchina/Furion/commit/4285ec0b8debc2d71c7f978126cb3dc394a8ad30) [Документация](https://learn.microsoft.com/ru-ru/aspnet/core/blazor/blazor-ef-core?view=aspnetcore-7.0)
- [Добавлено] Модуль компенсирующих стратегий <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup> [【Исходный код】](https://gitee.com/dotnetchina/Furion/tree/v4/framework/Furion/RescuePolicy) [dfc63e7](https://gitee.com/dotnetchina/Furion/commit/dfc63e7f0ffd2e03653f11a3e49a21646902ddc4)
- **Основные изменения**
- [Добавлено] Интерфейс `IJobPersistence` для записи выполнения задач в базу данных методом `OnExecutionRecord` <sup>4.9.1.16</sup> <sup>⏱️2024.01.01</sup> [4d4d492](https://gitee.com/dotnetchina/Furion/commit/4d4d492fc91fe312ca30770ec30a6f692fccbf0e)
- [Изменено] Динамическая генерация маршрутов WebAPI с новым разделителем версий `v` вместо `@` <sup>4.9.1.14</sup> <sup>⏱️2023.12.14</sup> [7677d0f](https://gitee.com/dotnetchina/Furion/commit/7677d0fa615d3ccdf784542b5702cd1d6165e78f)
- [Обновлено] Обновление зависимости Serilog до версии 8.0.0, удаление метода расширения `IWebHostBuilder.UseSerilogDefault` для .NET 8.0 <sup>4.9.1.1</sup> <sup>⏱️2023.11.16</sup> [5ab3e43](https://gitee.com/dotnetchina/Furion/commit/5ab3e43722a298db56a86792dde301adf1f3fe7f)
- [Обновлено] Адаптация основной части фреймворка для .NET 8.0 <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- [Обновлено] Адаптация шаблонизатора для .NET 8.0 <sup>4.9.1</sup> <sup>⏱️2023.11.15</sup>
- **Исправления ошибок**
- [Исправлено] Проблема повторного ключа при загрузке документов с одинаковым полным именем класса <sup>4.9.1.17</sup> <sup>⏱️2024.01.04</sup> [#I8TJZ0](https://gitee.com/dotnetchina/Furion/issues/I8TJZ0)
- [Исправлено] Проблема срабатывания конфигурации `AsLowerCamelCase` после коммита [1dc7ea7](https://gitee.com/dotnetchina/Furion/commit/d9810bece0a1d1108e134cfdae2fdd868554f769) <sup>4.9.1.15</sup> <sup>⏱️2023.12.20</sup> [d9810be](https://gitee.com/dotnetchina/Furion/commit/d9810bece0a1d1108e134cfdae2fdd868554f769)
- [Исправлено] Проблема рекурсивного преобразования объекта Clay в Dictionary <sup>4.9.1.13</sup> <sup>⏱️2023.12.11</sup> [#I8NFT4](https://gitee.com/dotnetchina/Furion/issues/I8NFT4)
- [Исправлено] Проблема отсутствия захвата внутренних исключений в `Scoped.CreateAsync` <sup>4.9.1.12</sup> <sup>⏱️2023.12.08</sup> [0a89a43](https://gitee.com/dotnetchina/Furion/commit/0a89a434223c45d84b8908f6aff1bf1d7528193a)
- [Исправлено] Проблема отсутствия захвата внутренних исключений в `Scoped.CreateUowAsync` <sup>4.9.1.8</sup> <sup>⏱️2023.11.30</sup> [3c859e8](https://gitee.com/dotnetchina/Furion/commit/3c859e83c0ed6f07fcf191973fe465599a823224)
- [Исправлено] Проблема восстановления состояния задачи после установки триггера <sup>4.9.1.7</sup> <sup>⏱️2023.11.24</sup> [147215f](https://gitee.com/dotnetchina/Furion/commit/147215f1631f58fca900f17cca5695f9431555e5)
- [Исправлено] Проблема получения настроек JWT при независимом использовании `JWTEncryption.GetJWTSettings()` <sup>4.9.1.4</sup> <sup>⏱️2023.11.18</sup> [c045e08](https://gitee.com/dotnetchina/Furion/commit/c045e084670a98f71d5ea5ed55ca5cbbfc981e0b)
- **Прочие изменения**
- [Изменено] Улучшение производительности компиляции шаблонов и увеличение скорости парсинга кэшированных шаблонов <sup>4.9.1.16</sup> <sup>⏱️2023.12.27</sup> [d7ea423](https://gitee.com/dotnetchina/Furion/commit/d7ea423f272de141a351d7f7f4fb29ae0d9b1df6)
- **Документация**
- [Обновлено] Документация по репозиториям, статическим классам Db, шаблонизатору, переходу с .NET 7 на .NET 8, сериализации JSON, деплою Docker, контексту базы данных, виртуальным файлам, удаленными запросам, HttpContext, статическим классам JSON, задачам планировщика, расширению репозиториев, сущностям базы данных, нормализации.
- **Контрибьюторы**
- zuohuaijun ([@zuohuaijun](https://gitee.com/zuohuaijun)) [!865](https://gitee.com/dotnetchina/Furion/pulls/865)
- anliuty ([@anliuty](https://gitee.com/www.fengyunmy.com)) [!863](https://gitee.com/dotnetchina/Furion/pulls/863)
- 风云明月([@www.fengyunmy.com](https://gitee.com/www.fengyunmy.com)) [!862](https://gitee.com/dotnetchina/Furion/pulls/862)