Sharpening our software engineering skills

.NET On Track Architecture overview

Besides having fun, one of the reasons to have the .NET on Track expertise group is to sharpen our software engineering skills with regard to .NET technology. For that reason we use several software technologies. While we focus on .NET technologies, we do not use exclusively .NET technologies. Also some other technologies such as Verum ASD:Suite and Robot-C are used to make the end result.

So what do we currently use:

  1. Visual Studio 2010 Express Edition. We require the project and solution to be able to be opened and used with the free Express edition from Visual Studio. An upgrade to Visual 2012 is planned for this year.
  2. .NET 4.0 & C# 4. This comes with the use of VS 2010 and therefor it is used.
  3. Verum ASD:Suite. This is used to define the control logic for the train system. ASD verifies the correctness of the models and
    Track Controller State Machine
    generates C# code.
  4. Windows Presentation Foundation. Used for the user interface. The MVVM design patterns is applied.
  5. NLog. This is used for logging and tracing.
  6. ServiceStack. This is used to expose a REST web API in order for external applications to control the systems.
  7. NUnit. Used for unit tests.
  8. AForge.NET. This is used to control the NXT bricks

The above list is not exhaustive and more technologies will be added when needed.