Migration of Catel extensions

We are always looking for better ways to manage the code that ships with Catel. Over the years, Catel has grown a lot and many extensions were created for Catel:

  • Catel.Extensions.CSLA
  • Catel.Extensions.Controls
  • Catel.Extensions.DynamicObjects
  • Catel.Extensions.EntityFramework
  • Catel.Extensions.FluentValidation
  • Catel.Extensions.Interception
  • Catel.Extensions.Memento
  • Catel.Extensions.MVC4
  • Catel.Extensions.MVC5
  • Catel.Extensions.Prism4
  • Catel.Extensions.Prism5
  • Catel.Extensions.Prism6
  • Catel.Extensions.Wcf.Server

Since we support a lot of target frameworks, this leads to over 100 projects in the solution. This is a very unwelcome situation for the following reasons:

  • Developing with such a huge solution is very slow (even on fast development machines)
  • Whenever we update an extension, we need to deploy Catel as a whole
  • People that want to contribute to Catel get overwhelmed

Therefore we have decided to improve how we deal with extensions moving forward. All extensions will be either migrated or removed. This means that Catel 5 will only contain:

  • Catel.Core
  • Catel.MVVM
  • Catel.Serialization.Json (and maybe other serialization formats that we don’t want to embed into Catel.Core)

Migrated extensions

We have decided to migrate most of the extensions to their separate repositories making it easier for us to maintain and deploy them separately from Catel. Below is a list of migrated repositories:

Removed extensions

Due to lack of usage, we have decided to drop the following extensions:

  • Catel.Extensions.CSLA
  • Catel.Extensions.Interception
  • Catel.Extensions.MVC4
  • Catel.Extensions.MVC5
  • Catel.Extensions.Prism4
  • Catel.Extensions.Wcf.Server