Simplifying the solution structure
One of the things we’ve been proud of over the last few years is the support for multiple platforms without being forced into the “least significant” platform (e.g. PCL). Catel has always been (and in the foreseeable future, will be) released for each target platform (e.g. NET45, NET46, NET47, Xamarin.iOS, etc). The advantage is that we can leverage the platform for each implementation (e.g. .NET is more “powerful” than UWP, etc). The downside of this approach is that we had to deal with lots of hacks to make sure we could compile Catel against each platform. For the last few years, we’ve been using shared projects, which allowed the team to put the source files in a single project, and have a specific csproj for each target framework.
Thanks to the new MSBuild project structure, we have managed to migrate all projects into single, multi-targeting project files. The differences are visible below:
We hope this will decrease the complexity of the solution and will make it easier for first-timers to clone and compile Catel manually.