Caliburn.Micro Xaml made easy

Caliburn 4 released

Caliburn Micro 4 is Released

I am pleased to anounce that Caliburn.Micro 4 is released.

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 lifecyle

  • All the interfaces that support view model lifecycle such as IActivate and IGuardClose now support an async implementation.

I would like to thank everyone who has contributed to this release (Hope I did not miss anyone)

@nigel-sampson, @KasperSK, @BartoszPierzchlewiczMacrix, @pableess, @mbreckon, @willson556, @beachwalker, @MafuJosh, @imba-tjd, @davidhenley, @@gpetrou, @louistio, @Rmurray0809, @qtuu, @mgnsm, @CaulyKan, @babackman, @chrisstaley, @bryanbcook, @llifon, @tziemek, @Stannieman, @jonstelly, @rossvegas, @TheBigRic, @markybolton, @vb2ae, @CoreyVincent

I would expecially like to thank @nigel-sampson for his hard work and leadership over the years on Caliburn.Micro. Without his support this release would not have been possible.

Future Plans

  • AvaloniaUI support @megazyz has created a PR for initial support for AvaloniaUI
  • WinUI support
  • MAUI support
  • Updated templates for Windows Template Studio

If there are any additional changes you would like to see please open a support ticket so we can discuss them

Caliburn micro latest release candiate

Caliburn Micro Latest Release Candiate

Included in this release

  • Bug 356 [UWP] FrameAdapter cannot remove event handler registered to frame
  • Bug 629 Unexpected behaviour of ChangeActiveItem - previous item doesn’t get closed
  • Bug 716 BindingScope.cs null exception occurred
  • Bug 618 ConductWith behavior
  • Bug 521 Parsing of negative numbers passed to a Target of an Action does not work

Additionally Support is added for WPF .net 5

Please try the latest Release Candidate for Caliburn Micro 4 and provide feed back

The Release Candidate Caliburn.Micro 4.0.155-rc is available on the MyGet feed from a NuGet package console window

https://www.myget.org/feed/caliburn-micro-builds/package/nuget/Caliburn.Micro

 Install-Package Caliburn.Micro -Version 4.0.155-rc -Source https://www.myget.org/F/caliburn-micro-builds/api/v3/index.json

Stepping away from Caliburn.Micro

Background

This has been a hard post to write and probably a few years over due, but human nature being what it is has delayed it longer than it should have.

Roughly eight years ago I started working at a company Marker Metro that was founded around building great Windows apps both on the desktop and phone. This was about the time of the Windows 8 launch, we were fortunate to be working with a number of launch partners and have access to early builds of Windows 8 in order to have apps in the store when the OS launched. Back then I had used Caliburn.Micro (at the time created and maintained by Rob Eisenberg) on some WPF, Silverlight and WP7 projects and wanted to use it in Windows 8. By then Rob had moved on to working mostly with Durandal so I spent some of my time at work porting CM across to Windows 8 and submitted the PR.

These PR’s ultimately led to me to take over maintenance of the CM project and over time add support for UWP and Xamarin.Forms. I’ve been very lucky with this opportunity, maintaining a popular open source project lead to many other opportunities that really snowballed, being able to speak internationally as well as the award of a Microsoft MVP for five consecutive years. I was also lucky in that my work at the time supported working on Caliburn.Micro as part of my day job.

But four years ago I moved on to a different job that wasn’t apps focused and the only time I had to work on Caliburn.Micro was late in the evening. At this point my family had grown and spare time was even more precious, for a long time I thought I could keep it up and be able to support the project even when I wasn’t using it on a day to day basis in my evenings. History has shown that it wasn’t going to happen, the time for 4.0 to be created and released is ample proof of that and I’ve put off writing this post for probably two years.

What now?

Over the next few weeks I’ll be doing the following.

  1. Publishing a release candidate of 4.0 and as long as nothing crazy comes up will be published as the final version. I’m a little undecided on the last part as the documentation will be very out of date at that point and this may cause more confusion that it’s worth.
  2. I’ll continue to pay for the domain so the website won’t disappear but will be updated to reflect the state of the project.
  3. If someone is willing to step up and help maintain the project reach out and we can discuss a transition plan.

I’d like to thank everyone who’s helped me with this project over the years.

Nigel Sampson

Caliburn.Micro 4.0.62.alpha preview

Today I’m really pleased to announce that I’ve pushed version 4.0.62-alpha to Nuget. This marks a pretty big step in that most of the interfaces provided by Caliburn.Micro have been migrated to an async implementation. This includes crucial classes for view model lifecycle such as:

  • IActivate
  • IDeactive
  • IConductor
  • IGuardClose

Obviously a change like thise can seem like a large breaking change, however the nature of these changes make the fixes quite small.

I’ve started documenting the changes and migration path to 4.0.0 which I encourage you all to read.

If you want to use more update to date builds as they become available then the CI feed for Caliburn.Micro.Core and Caliburn.Micro will be updated on every successful master build.

Most of the changes coming before the beta will be smaller ones, bug fixes and any missing async implementations.

Public CI package feed now available

Progress is well under way for 4.0.0 and I’m closing in on producing the next alpha. This will contain a majority of the breaking changes regarding moving to an “async first” model across the Screen and Conductor classes.

In order to quickly gather feeback from the community I’ve set up a CI (Continuous Integration) pipline using Azure Pipelines and MyGet. This pipeline will publish the packages from any successful build on the master branch to this feed.

The CI feed is available for Caliburn.Micro.Core and Caliburn.Micro.

Thanks to MyGet for providing the public feed.

For anyone who’s interested the pipeline itself is defined in the repository at azure-pipeline.yml. Personally I’ve a big fan of defining as much as we can in declarative fashion including infrastructure and process.

Over time I’ll be looking to expand on this to do things such as build / check the samples and create new template packages.