Improving software delivery in every organisation

C# and .NET Core

Who is this skill for?

This skill is intended for developers who have already completed the TDD core skill, and who have not worked with .NET previously (or want to brush up) and are likely to join a delivery team that is working in C#. Through this course, we’ll be making some assumptions that you’re already familiar with at least one programming language (static typed or dynamic).

Summary

On achieving the following badges, we’d expect you to have gained the following skills:

Mantis Shrimp

  1. Can set up a working project in .NET using an IDE
  2. Can install and manage dependencies for the project
  3. Can create and run unit tests using a test framework
  4. Understands basic concepts of the C# language and ecosystem

Goat

  1. Understands some deeper object oriented programming concepts
  2. Able to demonstrate common design patterns implemented using C# language features
  3. Understands how to build API functionality using common frameworks (MVC, EF)
  4. Understands how to use the dotnet command line utilities to perform common tasks
  5. Can effectively debug using the interactive debugger (IDE)

Eagle

  1. Can demonstrate an understanding of functional programming in C#
  2. Understanding of the .NET virtual machine
  3. Understanding the impact of choices on performance
  4. Can demonstrate ability to combine understanding of the above into a working API in C# with .NET

Resources

Coming soon

Mark Scheme

Mantis Shrimp

Expected deliverable - simple application with a test that satisfies the above

Goat

Expected deliverable - HTTP API that can take a request and persist some data from that request demonstrating the above

Eagle

Disclaimer - The C# skill is not a core skill, it is advanced learning. If the goal is to know enough to join a delivery, this is satisfied having achieved Goat. Eagle is a space to demonstrate a deeper understanding of OO programming and implementing clean, maintainable code in C#.

Expected deliverable - A C# application that showcases an understanding of all the above points (this is intentionally open ended to allow for some flexing! Refer to the marking guide and look for clean, SOLID code with good testing strategies).