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.
Pre-Requisites
- F# (4.5+)
- Visual Studio 2017 (15.8+)
- .Net Standard 2.0
- .Net 4.7+
- Console.Waterworks
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: 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