A small, yet powerful framework, designed for building applications across all XAML platforms. Its strong support for MV* patterns will enable you to build your solution quickly, without the need to sacrifice code quality or testability.
Bug fix for Navigation Service with .net 5 and .net 6
Included in this maintance release
*.net 6 support
@RudolfJan has also improved the tutorials in the documentation
Additional Platforms supported .NET Core 3.1 WPF .NET 5 WPF Support for the following platforms has been removed. Silverlight 5 Windows Phone 8 (Silverlight) Windows Phone 8 (Windows Runtime) Windows 8.1 We’ll also be discontinued support for .NET 4.0 for WPF. The minimum version of .NET for WPF is now 4.6.1 All of these platforms are still supported in the 3.x releases.
Changes Below is the changes included in 4.0.0 release.
Assemblies The platforms targeted have been changed to support the new .NET ecosystem. These include:
Caliburn.Micro.Core targets .NET Standard 2.0. Caliburn.Micro.Platform.Xamarin.Forms targets .NET Standard 2.0. Caliburn.Micro.Platform is consistently named across all platforms (previously UWP included the platform name) except for Xamarin.Forms. Event Aggregator The Event Aggregator has some major breaking changes, that bring it into an async implementation approach that is the main reason for 4.0.0.
The full changes are available in the event aggregator migration documentation.
Screens and view model lifecycle All the interfaces that support view model lifecycle such as IActivate and IGuardClose now support an async implementation.
This list of changes was auto generated.
This list of changes was auto generated.
This alpha marks a major milestone. I believe most of the breaking changes required to support an async first model are now in place.
The versioning number system has change a little, but this makes it easier to have packages available from the CI system.
This affects also every type in Calburn.Micro including but not limited to the following:
IWindowManager
IEventAggregator
IActivate
IDeactivate
IConductor
IGuardClose
These changes were long overdue and help to better support view model life cycles where async operations are happening and especially in IGuardClose
where async dialogs are often used.
I understand this represents a large amount of breaking changes, however the nature of these changes tend be quite simple (returning Task.CompletedTask
for instance).
The migration docs will be updated soon.
This release is earlier that I'd normally I'd like as it's not yet feature complete, however a lot of people are asking for versions that support .NET Standard. Given this I've pushed out this release early, and after a bit of thought I suspect it will be a good thing in the long run.
The major "theme" for 4.0.0
is "async", moving most major interfaces such as IActivate
, IDeactivate
, IGuardClose
etc to async implementations. Naturally this will involve a lot of breaking changes as I move forward. Potentially rolling out early alpha releases at various steps can lessen the blow for people wanting to be on the bleeding edge. The first interface up for changes is IEventAggregator
and is included in this release.
I've started documenting the changes and migration path to 4.0.0
which I encourage you all to read.
If you're interested in what's in the pipeline for 4.0.0 you can view the project on GitHub as well as the associated milestone.
If you do upgrade and run into any issues please log them quickly (with a reproduction if possible) and I'll see what I can do.
A small house keeping release in part to get ready for Windows Template Studio work.
Included are the following:
Set
implementation to `PropertyChangedBase.A small feature and bug fix release to clean out some of the backlog before 4.0.0
.
Included are the following
cm:Message.Attach="ShowTitle('One, Two, Three')"
InitializeCompontent
on Xamarin.Forms, this was mostly used for a underused feature of .xaml
files without a code behind. On the non-XF platforms this method has re-entry protection, the XF version did not.Setup.WPF
sample.ContentPropertyAttribute
that doesn't supply a property name (WPF's Frame
does this).OnViewLoaded
in Xamarin.Forms when the view is a ContentPage
.BindingScope.GetVisualParent
to help people who use visual "bridge" libraries.$clickedItem
Special Value for WinRT / UWP based projects.4.0.0
with an effort to align all the navigation services.PropertyChangedBase
and BindableCollection<T>
named OnUIThread
to allow people to customize how property changed notifications are dispatched to the UI thread.This is a very small release that reverts #339.
This release changed behavior so that views were resolved from the container in the same way as view models. The change in behavior caused problems for applications using containers that threw exceptions on failure to resolve a dependency.
This change should have been considered a breaking change and left to 4.0.0 and considered more seriously. For that I apologize.
It's also contains a typo in documentation fix. #402