Caliburn.Micro 3.0.0-beta111 Aug 2015
I’m really pleased to announce the release of Caliburn.Micro 3.0.0-beta1, this is a major milestone in that it adds support for a new platform Universal Windows Platform / Windows 10 as well as for the three new platforms Xamarin.iOS, Xamarin.Android and Xamarin.Forms added in 3.0.0-alpha.
This is an early beta in order to get feedback and testing from the wider community (which is now a lot bigger thanks to this release).
All the release notes from 3.0.0-alpha apply to this release as well.
The Windows 10 release follows along with the Windows 8.1 and Windows Phone 8.1 releases and combines them into a single library which is great from a maitenance perspective. If we need to start adding features specific to Phone, Xbox or even HoloLens they’ll be done using feature detection via
Also included is a sample showing how to set up a
SplitView style app with the
Frame not being the root visual but inside the
ShellView, this sample is available at Hello UWP.
One new feature in this release is the
CachingFrameAdapter. This subclass of
FrameAdapter (which implements
INavigationService in WinRT platforms such as Windows 8.1, Windows Phone 8.1 and Windows 10) will cache internally view models and reuse them on the appropriate navigation. This allows scenarios where the built in
NavigationCacheMode doesn’t make sense but still preserve your view model state. A sample of this in action is available at Caliburn.Micro.State.
NavigationHelperwhich adds the
For<TViewModel>method to allow easier view model navigation.
navigationService.For<ProductViewModel>() .WithParam(v => v.ProductId, 42) .Navigate();
- Resolved a WPF bug using
MainWindowwhen it’s disposed. Thanks dvdorle.
ViewLocator.LocateForModelTypefailing to deal with improperly reused views in WinRT.
- Resolved a premature garbage collection issue in
- Removed a unnecessary explicate collection in
BindingScopehas been cleaned up a lot so will be easier to extend.
All the breaking changes from 3.0.0-alpha apply to this release as well.
- The extensions projects have moved into the main platform assembly, these were initially created as a place for very platform specific code but they’ve outlived there usefulness and removing them reduces some maintenance costs.
Bind.Modelhad a feature enabling you to pass a string which used
IoCto find the model. This was deprecated in 2.0.0 and has now been removed.
SimpleContainernow only uses public constructors. Thanks belyansky.
UriFormethod has been deprecated in favour of just
Forgiven the lack of uri support on a number of platforms.
- WinRT platforms now make use of
AssemblySourceCachewhich means if your view models do not implement
INotifyPropertyChangedor views subclass from
UIElementthen they may not be found by
ViewModelLocator. This behaviour can be changed by modifying
How do I get this?
Previously the code for all these new features was spread across a number of branches, it’s now consolidated in a single 3.0.0 branch.
Where to from here?
- More Xamarin testing.
- Expand on the platform specific samples.
- Expand on the platform specific documentation.