Skip to content

Shiny Mediator Releases

2.1.1 - TBD

Enhancement
More Prism navigation contract control

2.1.0 - Oct 19, 2024

Enhancement
Reducing some infrastructure reflection as we work towards a potential AOT compliant library
Enhancement
Downgrading source generator libraries to work with older net8 SDKs
Enhancement
OpenAPI generator now factors in TimeSpans
Enhancement
Serializer service now exists in the main library with optional configuration
Enhancement
IMediator Publish now allows you to setup publish in parallel or sequential
Fix
HttpRequestHandler will use serializer service

2.0.3 - Oct 7, 2024

Enhancement
Easy extensions methods for AddShinyMediator for the MauiAppBuilder and WebAssemblyHostBuilder

2.0.2 - Oct 6, 2024

Fix
ASPNET extension was not generating the proper result type for POST & PUT

2.0.1 - Oct 6, 2024

Fix
OpenApiGenerator was not returning subtypes from string
Enhancement
ASPNET OperationId is not enforced through the attribute constructor
Chore
Improved source generator logging

2.0.0 - Oct 4, 2024

Feature
Most middleware and internal handlers now support configuration via Microsoft.Extensions.Configuration vs using attributes - HTTP, Timer Refresh, Offline, Stream Replay, Performance Logging, Caching, User Notifications
Feature
Blazor now supports offline, stream replay, and user notification middleware
Feature
ExecutionContext allows you to add metadata from middleware that can be consumed by the caller (IMediator.RequestWithContext return ExecutionResult, Send now returns ExecutionContext)
Feature
EventAggregatedExecutionContext(List of EventExecutionContext) allows you to add metadata from middleware that can be consumed by the caller - IMediator.Publish now returns this by default
Enhancement
OpenApiGenerator now allows DateOnly, TimeOnly, and Stream results
Enhancement
OpenApiGenerator offers better support for inline enums and subtypes (node based APIs)
Enhancement
Improved logging, so you can see your pipeline execution pipeline front to back
Enhancement
Request Handlers that return a result that is marked with IEvent will now publish it automatically
Enhancement
Stream Replay will now also wait for internet connectivity before pumping a new data request
Fix
OpenApiGenerator now tacks on global namespace to all object types
Fix
Registration source generator did not default the library namespace
Fix
Shell and NRE fixes for MAUI Event Collector
Fix
OpenApiGenerator returns INT by default when no format is supplied
BREAKING Chore
IRequestMiddleware and IStreamRequestMiddleware signature changed to support ExecutionContext and reduce argument count
BREAKING Chore
Contract feature attributes have been removed for ReplayStream, Cache, Resilience, & Offline
BREAKING Chore
ReplayStream and Offline are only across sessions now
BREAKING Chore
TimedLoggingRequestMiddleware has been renamed to PerformanceLoggingMiddleware (including registration extensions)
BREAKING Chore
TimedLoggingAttribute has been removed in favour of ONLY using configuration going forward
BREAKING Chore
UserNotifyAttribute has been removed in favour of ONLY using configuration going forward

1.8.1 - September 14, 2024

Fix
OpenApiGenerator was not writing return results if they were arrays

1.8.0 - September 11, 2024

Feature
New HTTP Request Handler and framework
Feature
New HTTP Request OpenAPI source generator
Enhancement
ICacheControl is now available for contracts that allows more direct control over your cached calls
Fix
OfflineAvailableAttribute was not allowed to be applied to contracts

1.7.4 - August 9, 2024

Fix
Fix implicit namespace usage

1.7.3 - August 7, 2024

Fix
Source generators were not generating scoped handlers
Enhancement
aspnet HttpGet and HttpDelete is now supported. Contracts are mapped using [AsParamters]

1.7.2 - July 28, 2024

Enhancement
IRequestKey now has default interface implement to use ReflectKey
Enhancement
Minor timestampedresult signature improvement

1.7.1 - July 28, 2024

Enhancement
Attributes for offline, caches, etc can now be applied on the request contract AND/OR the request handlers
Enhancement
IRequestKey.ReflectKey looks through all public, instance, getters that are not null into part of the key
Enhancement
Logging is now built into the core mediator library
Enhancement
Request pipeline now has logging built-in
Enhancement
ExceptionHandlerEventMiddleware & TimedLoggingRequestMiddleware moved from MAUI to main library

1.7.0 - July 20, 2024

Feature
New contract validation middleware using data annotations or fluentvalidation
Enhancement
Add new contract TimestampedResult generic to help with timestamps of when a cache or offline bundle is from

1.6.0 - July 7, 2024

Enhancement
Refresh timer middleware is now installed by default
Enhancement
Add Name to HTTP attribute in ASP.NET extension
Enhancement
Streaming AsyncEnumerables now mapped by ASP.NET extension
More MemoryCache extensions (clear by partial key, get entries)

1.5.0 - July 5, 2024

Feature
Shiny.Mediator.AspNet - that allows you to map your request handlers directly to HTTP endpoints
BREAKING Enhancement
Source Generator attributes have been renamed from RegisterHandler & RegisterMiddleware to SingletonHandler/ScopedHandler & SingletonMiddleware/ScopedMiddleware

1.4.5 - July 3, 2024

Feature
Strongly typed navigation now exists for Shell, just like Prism. This functionality is built into Shiny.Mediator.Maui

1.4.0 - June 30, 2024

Feature
Shiny.Mediator.Prism - this new package allows you to easily create strongly typed navigation routes & arguments while working across modules

1.3.0 - June 29, 2024

Enhancement
Request Keys can be controlled by implementing IRequestKey on your request object allowing you to return a cache/offline/replay key based on your arg values
Enhancement
MainThread middleware can now be used on request handlers as well
Enhancement
UserExceptionRequestMiddleware is now configurable and can be appled with attribute [UserExceptionRequestMiddleware] on each request handler method
Feature
Mediator middleware that has some form of store (cache/replay/offline) now responds to a global event called Shiny.Mediator.Middleware.FlushAllStoresEvent in Shiny.Mediator that calls all stores to be flushed
Feature
Resiliency middleware (Shiny.Mediator.Resilience} based on Microsoft.Extensions.Resilience
Feature
Offline Availability Middleware separated from caching and allows you to store across app sessions as needed (part of Shiny.Mediator.Maui)
BREAKING Feature
Caching middleware is now Shiny.Mediator.Caching and uses IMemoryCache under the hood

1.2.0 - June 19, 2024

Feature
Streaming Requests that request IAsyncEnumerable
Feature
Streaming Request Middleware
Feature
OOTB Streaming Request Middleware - Timer Refresh & Replay

1.1.0 - June 17, 2024

Fix
Void requests IRequestHandler<T> would not always resolve
Fix
Relaxed generic constraints on RequestMiddleware
Enhancement
MAUI CacheRequestMiddleware can hnow have cache flushed per item or all

1.0.0 - June 15, 2024

Our initial release - checkout the following: