Although no one seems to be able to come up with a name that makes everyone happy a .NET community exists and it produces some very nice tools. Properly utilised I believe these frameworks allow .NET developers the ability to write applications the equal of those on any other platform. Avernus is not an attempt to add another entry to this list. Rather it encapsulates one approach to using some of my preferred frameworks together. Most of the magic it provides is borrowed but I present this in the hope that someone will find my small additions helpful. (Does this sound sufficiently modest? I’m not sure).

Avernus is focused around three key frameworks:

Avernus also ties in:

Key features:

  • Providing the ability to deal with domain objects as roles, based on Udi Dahan’s presentation on Making Roles Explicit.
  • Opinionated integration of above into NServiceBus.
  • Glue to join Fluent Validation and NServiceBus together
  • Abstractions for supporting contexts in various environments
  • Abstractions making it easier to define AutoMapper mappings in multiple locations
  • Various low level helper code I find it useful to have available

Avernus itself is licenced under an Apache 2.0 Licence. The included frameworks have their own licencing terms. In particular note that NServiceBus requires licencing for most production use. See the individual processes or included licence files for more information. Full source code can be found on GitHub at https://github.com/ColinScott/Avernus.

Once you have used your favourite Git client to obtain the source code (or downloaded a source zip from GitHub) the build process is straightforward. Open a Visual Studio 2010 command prompt and change directory to the Avernus base directory. Then run Package.bat to build and test Avernus and generate a zip file containing the binaries and their dependencies (located in the Package directory).

The posts that follow will describe the capabilities of Avernus.

Index

Part 0 – Introduction
Part 1 – Persistence
Part 2 - Domain Events