Thursday, 1 March 2018

Porting Inversion

Aldgate somewhere

Just recently I have been porting the Inversion libraries over to .Net Standard, such that they will be able to support the existing set of behavioural applications that make up the image delivery part of the Digital Library Cloud Service (see

To do this I received some initial help from Robert Stiff (@UatecUK) to prove that the basics would work in the new execution environment, since it is vaguely exotic, having been based around the Reactive Extensions for .Net. Once we had ported the OWIN-based hello-world website across, I was convinced that I would be able to port across almost the entire application.

Last weekend I set about taking the ported versions of the libraries in, giving them some basic metadata and publishing them to NuGet as .Net Standard 2.0 packages (and yes, I have Guy’s explicit permission to do this). This included the new web code that Robert and myself tested the proof of concept with which has been added as the Inversion.Web.AspNetCore package.

Next, I ported and published the libraries in Inversion.Data ( into separate NuGet packages. This means that the different storage dependencies will remain separate in a target application.

Inversion.Extensibility ( was ported and published next, with a separate package for Inversion.Extensibility.Web.

Finally, I ported Inversion.Messaging ( and packaged it separately, just as I had done for Inversion.Data.

Things to do next:

  • add unit tests
  • add Travis CI scripting to build, pack and publish to NuGet
  • test the libraries work when imported!