Skip to content

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: