8 C#.NET Projects
Published: 2021-05-02 00:09:26

---
title: 8 C#.NET Projects
published: true
description: A composition of 8 .NET 5 projects
tag: showdev, dotnet, csharp, architecture
cover_image: https://dev-to-uploads.s3.amazonaws.com/uploads/articles/rkicl1nkcsnl5uv6apgh.png
---

I've recently been busy upgrading and creating a number of projects written in **C#** using **.NET5 Framework**. The projects range in difficulty from intermediate to advanced and cover a broad range of topics including:

- using C# with database tech like **Postgres** and **MongoDB**
- API examples for **REST**, **GraphQL**, and **gRPC**
- **AWS** examples covering services like **DynamoDb**, **Cognito**, **S3**, **SNS**, and **SQS**
- working with message brokers like **Rabbit MQ**
- setting up your development stack using **Docker** and **Docker-Compose**
- **ASP.NET** and **ASP.NET Identity**
- .NET Entity Framework Core
- working with [Redgate Flyway] to manage database versioning and migrations
- architecture examples like modular monolith, onion architecture, clean architecture etc

There are 8 projects in total and can be summarised as follows:

- [NoteWorx ASP.NET](#noteworx-aspnet)
- [Identity Example](#identity-example)
- [Algorithms and Data Structures](#algorithms-and-data-structures)
- [RabbitMQ for .NET Developers](#rabbitmq-for-net-developers)
- [AWS for .NET Developers](#aws-for-net-developers)
- [MFlix .NET](#mflix-net)
- [Chinook .NET](#chinook-net)
- [Ranker .NET (REST API Guide)](#ranker-net-rest-api-guide)

---

## [NoteWorx ASP.NET]

![](https://user-images.githubusercontent.com/33935506/116779409-6e905300-aaca-11eb-8071-0fe013a7ac21.png)

[NoteWorx ASP.NET] is a basic note management web application that has been built using ASP.NET Core, ASP.NET Core Identity, Entity Framework Core, and Postgresql.

**Highlights:**

- .NET5
- ASP.NET application using Identity
- Shows how to use *Gulp* as an asset manager for javascript, css, and fonts etc
- Uses docker, docker-compose to manage stack (Postgres etc)

**Project Page:**

- [Find the project with detailed README here](https://github.com/drminnaar/noteworx-aspnetcore)

---

## [Identity Example]

![](https://user-images.githubusercontent.com/33935506/116623157-eb6fdf80-a999-11eb-8c1a-32e602da6cd2.png)

[Identity Example] is a project that shows how to use, customise, and configure Identity on Asp.Net Core with different backend stores (postgresql, mssql, sqlite). If you've ever wondered about how to take complete control over the way the Identity database is generated, then this is a good project to use as a guide.

**Highlights:**

- .NET5
- Focus on ASP.NET Identity customization
- Includes sample API project that demonstrates how to use **ASP.NET Identity and Jwt Bearer Authentication**. The API project also demonstrates how to implement refresh tokens.
- Uses docker, docker-compose to manage stack for Postgres, MSSQL
- Uses powershel and bash scripts to automate spinning up and down of various stacks

**Project Page:**

- [Find the project with detailed README here](https://github.com/drminnaar/dotnet-identity-example)

---

## [Algorithms and Data Structures]

![](https://repository-images.githubusercontent.com/134303710/eb049280-a362-11eb-86d1-bb0c08ef19e4)

[Algorithms and Data Structures] is a compilation of various algorithms and data structures that have been implemented using C# and Javascript.

**Highlights:**

- .NET5 and Javascript
- Covers **Bubble Sort**, **Shell Sort**, **Selection Sort**, **Insertion Sort**, **Merge Sort**, **Quick Sort**, **Singly Linked List**, **Doubly Linked List**
- Accompanied by detailed README explaining various algorithms and data structures

**Project Page:**

- [Find the project with detailed README here](https://github.com/drminnaar/algorithms-and-data-structures)

---

## [RabbitMQ for .NET Developers]

![](https://user-images.githubusercontent.com/33935506/114295409-344e1a00-9af9-11eb-87ef-96131e46fdcf.png)

[RabbitMQ for .NET Developers] is a composition of RabbitMQ examples for C# .NET developers. This project has a specific focus on demonstrating how to use _RabbitMQ_ with _C#.NET 5_. This is achieved by providing a collection of practical examples (written in C#.NET 5) that highlight a number of _messaging patterns_.

**Highlights:**

- .NET5
- Demonstrates the following message patterns:
  - [One-Way Messaging](https://github.com/drminnaar/dotnet-rabbitmq/tree/master/Example1)
  - [Competing Consumers (Worker Queues)](https://github.com/drminnaar/dotnet-rabbitmq/tree/master/Example2)
  - [Publish/Subscribe](https://github.com/drminnaar/dotnet-rabbitmq/tree/master/Example3)
  - [Routing](https://github.com/drminnaar/dotnet-rabbitmq/tree/master/Example4)
  - [Topics](https://github.com/drminnaar/dotnet-rabbitmq/tree/master/Example5)
  - [Headers](https://github.com/drminnaar/dotnet-rabbitmq/tree/master/Example6)
- Accompanied by detailed README files for each example demonstrating message pattern.
- Accompanied by a "getting started" guide that will help you learn a little more about RabbitMQ
- Manage entire **RabbitMQ** stack using **Docker** and **Docker-Compose**

**Project Page:**

- [Find the project with detailed README here](https://github.com/drminnaar/dotnet-rabbitmq)

---

## [AWS for .NET Developers]

![](https://user-images.githubusercontent.com/33935506/114672166-f0595000-9d58-11eb-8240-65c0b06493b5.png)

[AWS for .NET Developers] is a collection of independent .NET projects written in **C# .NET 5** that demonstrate how to integrate with various **AWS** services using the **AWS SDK for dotnet**.

**Highlights:**

- .NET5
- Demonstrates the following AWS services:
  - [Cognito with ASP.NET API](https://github.com/drminnaar/aws-dotnet-examples/tree/master/cognito-mvc-api)
  - [Cognito with ASP.NET MVC Web](https://github.com/drminnaar/aws-dotnet-examples/tree/master/cognito-mvc-web)
  - [DynamoDb with Console App](https://github.com/drminnaar/aws-dotnet-examples/tree/master/dynamodb-console)
  - [SQS with Console App](https://github.com/drminnaar/aws-dotnet-examples/tree/master/sqs-console)
  - [SNS with Console App](https://github.com/drminnaar/aws-dotnet-examples/tree/master/sns-console)
  - [S3 with Console App](https://github.com/drminnaar/aws-dotnet-examples/tree/master/s3-console)
- Accompanied by detailed README files for each AWS service example demonstrating how to use the **.NET AWS SDK**.
- Demonstrates how to use **.NET Secret Manager** by storing AWS config as "secrets"

**Project Page:**

- [Find the project with detailed README here](https://github.com/drminnaar/aws-dotnet-examples)

---

## [MFlix .NET]

![](https://user-images.githubusercontent.com/33935506/114293752-d9aec100-9aec-11eb-8b5b-e04477d9dda0.png)

[MFlix .NET] is a showcase of how to build API's (**REST**, **gRPC**, **GraphQL**) using **C# .NET**.  I have created a contrived use-case that allows me to demonstrate how to build different API's for different needs. The high-level requirements cater to 3 types of developers as illustrated below:

![](https://user-images.githubusercontent.com/33935506/111857121-550ccf00-8994-11eb-99a1-49e052e6c355.png)

Furthermore, the project is based on the following high-level architectural diagram that highlights

- the type of API's being built
- the way in which different API's will be accessed by different types of applications
- the scope of API's (public or private)

![](https://user-images.githubusercontent.com/33935506/111857444-58a15580-8996-11eb-8d3f-c3adea46a661.png)

**Highlights:**

- .NET5
- Error handling
- Logging
- Caching
- Security
- Dependency Injection
- Configuration
- How to do paging, filtering, and sorting via the API
- Developing with MongoDB and C#
- Demonstrates how to seed a MongoDB database as part of docker-compose stack
- Preparing a local development environment using Docker and Docker-Compose
- Working with MongoDB database
- Working with SEQ as a log server
- Accompanied by detailed README that explains the project in more detail and also how to get started.

**Project Page:**

- [Find the project with detailed README here](https://github.com/drminnaar/mflix)

---

## [Chinook .NET]

![](https://repository-images.githubusercontent.com/234649268/c108b300-99e7-11eb-8803-fe1e226e57c3)

[Chinook .NET] is project designed to illustrate how to build a **_[Modular Monolith]_** using the **_[Onion Architecture]_** as a guide. The motivation behind this project is to demonstrate an alternative to starting off with Microservices straight away.

The high-level architecture for this **_[Modular Monolith]_** is illustrated as follows:

![](https://user-images.githubusercontent.com/33935506/72651214-98ae2680-39e7-11ea-9117-f9a95477aa1f.png)

There are **3 primary modules**, where each module has it's own API. Each module should be constrained (though not a hard constraint for practical reasons) to a single schema within a shared database. Each module is based on the **_[Onion Architecture]_** with influences from **_[Clean Architecture]_**. Therefore, each module can be viewed in terms of the following illustration:

![](https://user-images.githubusercontent.com/33935506/72653239-d2cef680-39ee-11ea-8215-e98386d32637.png)

**Highlights:**

- .NET5
- Working example of **_[Modular Monolith]_**
- Working example of **_[Onion Architecture]_**
- Demonstrates how to use **_[MediatR](https://github.com/jbogard/MediatR)_**
- Demonstrates how to use **_[Redgate Flyway]_** to manage database versioning and migrations
- Demonstrates how to setup a local development stack using Docker and Docker-Compose
- Accompanied by detailed README that goes into more detail about the project and how to get started

**Project Page:**

- [Find the project with detailed README here](https://github.com/drminnaar/chinook)

---

## [Ranker .NET (REST API Guide)]

![](https://camo.githubusercontent.com/1aad52e50ae3e20061f3807c58d168131ad7712e445eacfce9ca5aea37d38577/68747470733a2f2f6465762d746f2d75706c6f6164732e73332e616d617a6f6e6177732e636f6d2f692f68756d317670796b78343074336869323477346b2e706e67)

[Ranker .NET (REST API Guide)] is a guide with the goal of laying down foundational knowledge that is required when speaking about building REST API's. I decided to backup the theory with a practical example written in **C#.NET5**.

**Highlights:**

- REST Constraints
- HATEOAS (Hypermedia As The Engine Of Application State)
- Richardson Maturity Model
- REST in Practice (Some practical guidelines)
- Example project (Written in **C# .NET 5**) called **Ranker**
- Demonstrates how to setup a local development stack using Docker and Docker-Compose
- Accompanied by detailed README that goes into more detail about the project and how to get started. The README also forms the basis for the REST API Guide

**Project Page:**

- [Find the project with detailed README here](https://github.com/drminnaar/ranker)

---

## Conclusion

These projects are very much a labour of love. I create these projects so that I have something to point people to when I am explaining topics. I will continue to build on these projects and improve as I find more time to commit. But I would also like to share knowlege about my other love, namely, javascript/typescript. Therefore, I will most likely be building some React frontends for some of these API projects in the future. I'm also keen on demonstrating how to build a Microservices project by implementing services in both Typescript and C#. Also, people have been asking me if I'd consider producing some online videos about content relating to the aforementioned projects. I'm considering the idea, although my biggest concern is being able to make the time 🤷‍♂️

---

[NoteWorx ASP.NET]:https://github.com/drminnaar/noteworx-aspnetcore
[Identity Example]:https://github.com/drminnaar/dotnet-identity-example
[Algorithms and Data Structures]:https://github.com/drminnaar/algorithms-and-data-structures
[RabbitMQ for .NET Developers]:https://github.com/drminnaar/dotnet-rabbitmq
[AWS for .NET Developers]:https://github.com/drminnaar/aws-dotnet-examples
[MFlix .NET]:https://github.com/drminnaar/mflix
[Chinook .NET]:https://github.com/drminnaar/chinook
[Modular Monolith]:https://youtu.be/5OjqD-ow8GE
[Onion Architecture]:https://jeffreypalermo.com/2008/07/the-onion-architecture-part-1/
[Clean Architecture]:https://blog.cleancoder.com/uncle-bob/2012/08/13/the-clean-architecture.html
[Redgate Flyway]:https://flywaydb.org/
[Ranker .NET (REST API Guide)]:https://github.com/drminnaar/ranker