Released Catel 5.12.0

We are happy to announce that we have released Catel 5.12.0. As always, we recommend to update your apps and libraries to this new version as soon as possible. The new version can be retrieved via NuGet.

Important

We have thoroughly tested the beta versions on our own code-bases and contacted paying customers about the important changes we made. Want to receive updates as well? Make sure to support Catel on Open Collective.

Changes

As part of this release we had 247 commits which resulted in 25 issues being closed.

Breaking change

  • #1490 Update minimum target version for UAP to 10.0.16299

Features

  • #1488 Add IAppDataService to allow customization of the application data base directories
  • #1447 Add Catel.Data.IObjectAdapter with a Reflection and ExpressionTree implementation
  • #1437 Implement caching of boxed values in ModelBase to decrease memory footprint
  • #1421 ObservableDictionary Support

Bugs

  • #1504 Service locator is not registering services decorated with attribute “ServiceLocatorRegistration”
  • #1476 Fix rare potential “collection was modified” enumeration in TypeCache
  • #1474 DependencyObjectExtensions.FindLogicalOrVisualAncestor returns null when it should find a parent
  • #1467 Update ThemeInfo theme specific resource dictionary to None
  • #1453 FileSupport => SaveFileService & OpenFileService: Bug if InitialDirectory does not exist
  • #1434 Serialization should respect graph ids when deserializing collections
  • #1408 Logging in TypeFactory uses wrong parameter name

Improvements

  • #1503 Return result of view model in UIVisualizerService.ShowAsync()
  • #1473 Support serialization of manually registered properties on DynamicConfiguration
  • #1469 Prevent first chance exceptions about DialogResult when window is not shown modal
  • #1455 Move code snippets to Catel.Templates and deploy in the Visual Studio marketplace
  • #1454 Minimize usage of PropertyHelper where possible
  • #1451 Use ObjectAdapter in ViewModelBase property mappings
  • #1450 Remove boxing from value to TValue in FastMemberInvoker
  • #1441 Clean up TypeExtensions with system extensions for UAP
  • #1440 Use ObjectAdapter in ViewModelBase for property mappings
  • #1439 Consider using expression trees in ObjectAdapter
  • #1436 Decrease allocations of objects during (de)serialization
  • #1435 Decrease XmlWriterSettings allocations during serialization by caching it
  • #1319 Add TypedPropertyBag to prevent boxing