Tuesday, October 01, 2013

3.0.13-beta2 packages pushed to nuget

I've pushed some 'pre-release' packages to nuget with the latest code from the BindingChanges branch.


This code is definitely pre-release at present - there are a few days of testing ahead of me updating and testing all the samples.


This code also includes a few potential breaking changes - so it is possible that it may eventually be released as 3.1 rather than 3.0. This decision and timeline also depends on Xamarin's release schedule for PCL support - which is outside of Mvx's control. There is still a chance that this support may require us to switch to a different profile - still waiting to find out any information at all on this.



The main changes from 3.0.12 are:

  • added UnsetValue and DoNothing binding constants to allow richer ValueConverter implementation (note that these constants are not fully supported across all Windows platforms)
  • changed binding implementation so that many more binders will now block feedback loops
  • changed binding implementation so that many more binders will now attempt value coercion when setting values on a target
  • optimised text binding in Droid and Touch - 'label' controls will be set directly using non-reflection and using one-way binding as default
  • optimisations for one-way binding - event subscription is not removed
  • added an IMvxInteraction helper interface to assist with 'dialog' user interactions
  • cleared up 'mixed spellings' of Initialisation/Initialization - the US spelling 'Initialization' is now used everywhere (this may break some overrides in people's Setup code)
  • event `Raise` extension methods now moved into shared code - into CrossCore
  • fragment inflation no longer causes an error message in trace
  • fixed two missing event hook calls in Android dialog code
  • Binding DataContext's now have a DataContextChanged event
  • By default, views can now be named with postfix 'View' or 'ViewController' on iOS, 'View' or 'Activity' on Android, 'View' or 'Page' on WindowsPhone/Store, 'View' or 'Control' on WPF
  • Small optimisation in internationalisation converter
  • Improved access to MasterNavigationController in Touch presenters - as requested via @deapsquatter's blog
  • Improved override capabilities for AndroidLifetime monitoring object
  • Improved error message for users using viewmodels from mutliple assemblies
  • Weak referencing is now used in Rio field binding


Several of these  are potential breaking changes - so please be careful to test your apps if you do choose to update.


This code is definitely pre-release at present - there are a few days of testing ahead of me updating and testing all the samples....

2 comments:

  1. Stuart, I am not seeing the IMvxInteraction helper. I would like to take a look and see if I can piggyback mine on yours (https://github.com/brianchance/MvvmCross-UserInteraction)

    ReplyDelete
    Replies
    1. Excellent! :)

      The IMvxInteraction stuff is currently on the BindingChanges branch in https://github.com/MvvmCross/MvvmCross/blob/BindingChanges/Cirrious/Cirrious.MvvmCross/ViewModels/IMvxInteraction.cs (and a couple of other files there). Its use is a bit more general than the use of your plugin - so I think I would **not** merge the two things together

      - your's is a quick/instant IDialogService type solution for people to use (so it's what most people would use)
      - mine is closer to Prism's interaction pattern - which is neat, but requires time/thought/coding to get working

      I do think a third pattern might evolve soon... async/await should make this dialog stuff easy really...

      Delete