Craig Oates

Death Socket


Linux MacOS Windows

All Software Projects

Figure 1
Figure 1: You feed an image into Death Socket and it produces a new version of the image with an overlayed grid.

Death Socket is an open source project hosted on Git.Abbether. Its main feature is a NuGet package which helps you add a grid to an image. The main audience for this project is artists – painters illustrators Etc. It is an F# codebase and focuses on .Net 4.7. With that said, Death Socket is a .Net Standard (2.0) library. So, there is no reason why it cannot target/focus on .Net Core in the future.

The whole repository consists of three smaller projects. They are a .Net Standard library, a console program and a Test Centre.


  • F# (4.5+)
  • Visual Studio 2017 (15.8+)
  • .Net Standard 2.0
  • .Net 4.7+
  • Console.Waterworks

Figure 2
Figure 2: An image before it was passed into Death Socket and after it (a typical example).

Death Socket: .Net Standard 2.0 Library (A.K.A. The NuGet Package)

This project holds the code which makes it all possible. This is the code you would add to your project (as a NuGet) if you were building a GUI program for example. Here is a quick breakdown of this project:

  • Written in F# (4.5+).
  • Uses System.Drawing and not System.Media (I.E. Colors.Red not Color.Red).
  • Focuses on .Net 4.7+

Death Socket CLI

This is a console program which hooks into the library code. It provides two functions. The first is to provide a way for you to consume the above library code without writing any. The second is to test/use the code outside of the (.Net Standard) library project context. I should add, the second point is more about complementing the Test Centre than anything else.

Here is a quick breakdown of the project and GIF demonstrating how it works.

  • Written in F# (4.5+).
  • Uses Console.Waterworks.
  • Is a .Net 4.7 console program.

Figure 3
Figure 3: An example of how to use Death Socket CLI.

Test Centre

This project holds all the unit and property tests. It runs tests for the .Net Standard library and the CLI projects. On top of that, you can utilise the Test Explorer in Visual Studio to run the tests.

  • Written in F# (4.5+).
  • Is a regular .Net (4.7) library.
  • Uses FsCheck for property tests.
  • Uses xUnit for unit tests.
  • Uses Visual Studio's (15.8+) Test Explorer via xUnit's integration.

Relevant Links