We are happy to announce that we have released Catel 5.12.4. 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. This is a hotfix release, focusing on improvements and bug fixes only. Main development is currently done for Catel 6.x. 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 16 commits which resulted in 8 issues being closed. Bugs #1557 Check whether DialogResult… read more →
As with any open source framework, documentation unfortunately comes last (or doesn’t come at all)… Catel has a record of having great documentation, but we must admit we have become sloppy over the years. When we started the Catel journey, we were super motivated with both coding and keeping the docs up to date. Later on, the focus shifted towards code and the many other open source components we co-maintain. But we are getting more and more requests to update our documentation, and we can’t agree more this should get some more love. So without further ado, it’s time for change! Automatic generation of the documentation site Last week we’ve… read more →
We wanted to share some good news. A few weeks back, Catel has reached 1 million downloads on NuGet: These impressive downloads keep us committed delivering great new features and releases in the future. Are you happy user of Catel? Consider supporting us via Open Collective.
We are happy to announce that we have put Catel 5.12.0 into beta. This means the team thinks it’s (nearly) code complete, and only bug fixes will be applied to the beta channel. We aim to release the new version in about 2 weeks time, so make sure to test before this date. Our recommendation is to try out the new beta as soon as possible, this is your time to provide feedback! We already had some great feedback, thanks for the users reporting. You can download the beta via NuGet, just make sure to enable “Include prerelease” when checking for updates. Serialization engine improvements We’ve blogged about this earlier,… read more →
A few weeks back, we’ve updated the project and item templates and re-published them on the Visual Studio marketplace. This time it was time to update the code snippets and publish them via the marketplace instead of manual downloads as well. Today we are happy to announce that we’ve moved the code snippets from the Catel repository to the Catel.Templates repository. The code snippets can now be installed and updated via the marketplace (directly from within Visual Studio): At the time of the release, the following code snippets are included: log model modelprop modelpropchanged vm vmcommand vmcommandwithcanexecute vmprop vmpropchanged vmpropmodel vmpropviewmodeltomodel vmtaskcommand vmtaskcommandwithcanexecute
A while back, we discovered an issue with the DispatcherService.InvokeAsync implementation when an async method / expression was passed in as parameter. We fixed this by adding an alternative method called DispatcherService.InvokeTaskAsync. Unfortunately, we could not simply remove / change the behavior of the InvokeAsync because it would be a breaking change (and we are not ready for a breaking change release yet). So we had a few considerations: 1. Mark the member obsolete => not possible because there is still valid use for this member, it should just not be abused. 2. Add warnings / code checking to Catel.Fody => great plan Then after a while… 3. Create Catel.Analyzers… read more →
The project and item templates for Catel in the Visual Studio marketplace were long overdue. We had a few users asking whether they could be updated (for example, to support VS 2019). Updating the templates This was the perfect opportunity to check whether the contents of the templates were still up-to-date. We also figured out that there were a few issues with the templates if we wanted to update them: Updating the template code is manual work Submitting updates is manual work (building / packaging / uploading) We could either just remove the templates and no longer support them, or move them to a separate repository and try to automate… read more →
We are happy to announce that we have released Catel 5.10.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. Although this is a minor release (non-breaking changes), we are proud of this update. Besides the code changes listed below, Catel 5.10 also adds improved support for x:Bind in UWP. Compiled bindings (x:Bind) in UWP Compiled bindings in UWP are great for performance, but a bit hard to use in combination with (automatically resolving) MVVM frameworks because the views usually don’t have typed view model classes on them. To make it super-easy to… read more →
We are happy to announce that we have released Catel 5.9.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. Although this is a minor release (non-breaking changes), we are proud of this update. Besides the code changes listed below, Catel 5.9 also adds: Support for .NET Core 3.0 Code-signed assemblies & NuGet packages SourceLink integration 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… read more →
Today we have released a beta of Catel.Fody (3.7.0). This version will introduce support for weaving of automatic properties of the ObservableObject in Catel (it alread supports ModelBase and ViewModelBase). Automatic weaving of properties Tired of writing all the dreadful RaisePropertyChange calls in your ObservableObject models? Catel will now weave everything for you. public class Person : ObservableObject { public string FirstName { get; set; } public string LastName { get; set; } } will be weaved into: public class Person : ObservableObject { private string _firstName; private string _lastName; public string FirstName { get { return _firstName; } set { _firstName = value; RaisePropertyChanged(nameof(FirstName)); } } public string LastName… read more →