v10.0.0
·
12 commits
to nightly
since this release
⚠️ This is a large release with many breaking changes ⚠️
Core Changes
- Switched the versioning scheme to align with .NET releases. All Wisp releases targeting .NET 10 will bear the major version
10.x.x - Updated to .NET 10
- Reverse proxy support with
x-forwarded-hostandx-forwarded-protoheader handling - Update validation in
Wisp.Extensions.OpenIDto work with Authentik IHttpContextAccessor.HttpContextis no longerasync- Some attributes like
[Header],[Body]and[Cookie]are now[FromHeader],[FromBody],[FromCookie], etc. FlashService.AddFlashMessageis no longerasync- Sessions are no longer injected into
IHttpContextbut rather are now accessed throughISessionAccessor. - Sessions are now easier to serialize which makes it much easier to write custom
ISessionStores. IHttpContextAccessorshould be more reliable now- Added two custom filters to Fluid -
toJsonandagoDate - Fluid now allows parentheses in conditionals, e.g.
{% if ( 1 == 1 and 2 == 2) %} - Added a background service scheduler. Background services can be registered with
hostBuilder.AddBackgroundService<>() ResultBoxshould now handle generics bit betterEisp.Extensions.OpenAPIcan now infer the schema for[FromBody]inputs and controller method outputs- A controller method can now have an arbitrary number of
[Route]attributes - Controllers can have priorities assigned with
[Controller(priority: 1234)], which helps with conflicting routes (especially greedy path variables) - When running with
dotnet watch, Wisp will detect a hot reload and re-register controllers. The application no longer needs to be restarted when Adding/Modifying/Deleting controllers and controller actions. - An
IServiceProvideris now available in everyIHttpContextin theServicesproperty, simplifying dependency injection for light routes. - Documentation migrated to Zensical
- Development has moved from Codeberg back to GitHub for now.
Full Changelog: v1.2.7...v10.0.0