1.0 Releases
1.7.4 - August 9
Fix
Fix implicit namespace usage
1.7.3 - August 7
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
Enhancement
IRequestKey now has default interface implement to use ReflectKey
Enhancement
Minor timestampedresult signature improvement
1.7.1 - July 28
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
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
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
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
Feature
Strongly typed navigation now exists for Shell, just like Prism. This functionality is built into Shiny.Mediator.Maui
1.4.0 - June 30
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
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: