[MVVMbasics] What’s new in version 2.4

All blog posts with a title that starts with [MVVMbasics] are related to the MVVMbasics framework. If you are only interested in my regular blog posts and not in MVVMbasics, ignore these. To list all articles covering MVVMbasics, go to http://mvvmbasics.mobilemotion.eu/documentation!

Version 2.4 contains no changes to features, functionality or syntax. However, it brings the following three breaking infrastructure changes compared to version 2.3.1:

.NET Standard:

Both the MVVMbasics core library and the Xamarin.Forms extension library previously were Portable Class Libraries. Both have been ported to be .NET Standard class libraries, targeting .NET Standard 1.5. This means they can be referenced in all projects targeting .NET Standard 1.5 or higher, but also in projects compatible with that standard.

If you are targeting Xamarin.Forms Android or iOS, it is recommended to use a .NET Standard class library as common project to contain all the business and view logic for both the Android and iOS platforms, rather than a shared project or a Portable Class Library project.

Platforms:

MVVMbasics 2.4 does support the Xamarin.Forms, UWP, and WPF platforms. In contrast to older versions, it does not support WinRT (Windows 8.0 / 8.1 Store Apps) and Windows Phone Silverlight any more! If you need support for Portable Class Libraries, Windows 8.x or Windows Phone Silverlight, please use version 2.3.1.

Assembly names:

The NuGet package contains the core library (which is called MVVMbasics.dll), and extension libraries for the different platforms. In comparison to older versions, the assembly names of these extension libraries have changed: Previously these were called MVVMbasicsUWP, MVVMbasicsWPF, MVVMbasicsXF, etc. Now, due to the reduced number of platforms supported, there are only three extension libraries called MVVMbasics.UWP, MVVMbasics.WPF, and MVVMbasics.XamarinForms. (The namespaces of all components contained in all these libraries did not change – they are still called MVVMbasics without any extension.)

When referencing the MVVMbasics framework by installing the public NuGet package, the correct extension libraries are installed in each project automatically. However, the WPF and Xamarin.Forms platform require explicitly specifying assembly names in XAML references, so knowing the assembly naming structure is still important.

So, for example, to reference the MVVMbasics.Views namespace in a WPF view, use the following XML namespace declaration:

xmlns:views="clr-namespace:MVVMbasics.Views;assembly=MVVMbasics.WPF"

In a Xamarin project, the same declaration would look as follows:

xmlns:views="clr-namespace:MVVMbasics.Views;assembly=MVVMbasics.XamarinForms"

Project Templates:

Didn’t you say there are only three major changes? Well, that’s true concerning the framework itself, however also the project templates have changes – read more about it in a separate article!