Caliburn.Micro 3.0.0-alpha

@nigel-sampson nigel-sampson released this Apr 21, 2015

What's New?

  • Caliburn.Micro.Core now supports Xamarin platforms.
  • Limited support for Caliburn.Micro features in Xamarin native projects.
  • Major support for Xamarin.Forms.

More information can be found on the announcement

Known Issues

  • The current Storyboard designer for iOS in Visual Studio doesn't respect the folde r/ namespace it's placed in when generating types, as such the current conventions for view model locator MyApp.ViewControllers.LoginViewController to MyApp.ViewModels.LoginViewModel may not make sense in the long term.
  • There is no programmatic access to x:Name in Xamarin.Forms, therefore the feature of name based conventions will not be available, you will need to use normal {Binding Username} and cm:Message.Attach="SignIn".
  • There is no way to check to see if a BindableProperty has a Binding set. Thankfully we only use this ensure name based conventions don't overwrite existing bindings, given the first issue this is currently less of a problem.
  • I'm not entirly happy with FormsApplication and that both Caliburn.Micro and Xamarin.Forms want to set a custom UIApplicationDelegate, we'll need a better way of playing together nicely.

Breaking Changes

Right now there are no breaking API changes for the existing platforms there are some ABI ones, given the new multi-platform scenario with Xamarin Forms I've introduced a new assembly Caliburn.Micro.Platform.Core that holds some of the internal classes used the various platform assemblies. This lets us have to platforms at the same time without any type collision.

If you're using nuget then this new assembly will automatically be referenced, but if you're doing any sort of manual references you may need to check this out. I've applied this change to all the "modern" platforms (.NET 4.5, Windows Phone 8, Windows 8, Windows 8.1 Windows Phone 8.1, Xamarin.iOS and Xamarin.Android). Due to the PCL profile restrictions the .NET 4.0 and Silverlight 5 platforms work as they previously did.

As the alpha progresses I expect there will be breaking changes on the Xamarin platforms, and I don't expect many if any changes on the others.

Thanks to all who contributed fixes, logged bugs etc.