C# .NET 5 API in clean architecture with best work practices

Build race simulation REST API in .NET 5 with source control and project tasks tracking, simulating real word situations

Topic of software architecture has attracted a lot of interest in the last few years. And among many different flavors and styles of software architecture, there’s one that attracts even more interest than the others.

What you’ll learn

  • Build project in .NET 5 framework.
  • Build C# project end to end, with source control and project board.
  • Use Clean architecture.
  • Learn real world software development best practices.
  • Learn C# API best practices.

Course Content

  • Course start –> 30 lectures • 42min.
  • Cars –> 19 lectures • 25min.
  • Persistance –> 25 lectures • 35min.
  • Cars race –> 19 lectures • 28min.
  • Car race service –> 11 lectures • 17min.

C# .NET 5 API in clean architecture with best work practices

Requirements

  • Basic knowledge of writing code in C#..

Topic of software architecture has attracted a lot of interest in the last few years. And among many different flavors and styles of software architecture, there’s one that attracts even more interest than the others.

 

It is the Clean architecture.

 

By employing clean architecture, you can design applications with very low coupling and independent of technical implementation details, such as databases and frameworks. That way, the application becomes easy to maintain and flexible to change. It also becomes intrinsically testable.

Clean architecture is one of the topics of this course.

 

One of the other topics is REST API,

For a long time, standard data transfer protocols offered great capabilities, but were also notoriously difficult to handle. SOAP (Simple Object Access Protocol) was a prime example. However, adoption of a simpler alternative such as REST (Representational State Transfer) has grown exponentially because it provides numerous advantages.

This interface between systems using HTTP to receive data or perform operations in various formats (such as XML and JSON) allows for much faster handling. Nowadays, there are many applications and projects that utilize a REST API, and hundreds of companies doing business thanks to its features. It provides them with horizontal growth and they achieve more efficient and logical API creation for Internet services.

There are many benefits of RESTful APIs — they designed to take advantage of existing protocols. While REST can be used over nearly any protocol, when used for web APIs it typically takes advantage of HTTP. This means that developers have no need to install additional software or libraries when creating a REST API.

Some of the REST API benefits are

  • Client-Server: This constraint operates on the concept that the client and the server should be separate from each other and allowed to evolve individually.
  • Stateless: REST APIs are stateless, meaning that calls can be made independently of one another, and each call contains all of the data necessary to complete itself successfully.
  • Layered System: REST APIs have different layers of their architecture working together to build a hierarchy that helps create a more scalable and modular application.

And one final benefit, they go great with Clean architecture!

 

Next we will consistently use source control throughout the course, even for an single developer working on a project this is a great and useful practice because

It’s good to be in the habit

Understanding and using source control, particularly Git, is a must in today’s world of software development.

Protects your code

If you use a platform like GitHub, whether via a public or a private repository, your code is backed up to a remote location.

It can save your efforts

Sometimes, you might accidentally delete something, it’s like a powerful undo feature.

Free and easy to use

Git is free.

 

Again source control goes great with Clean architecture. 🙂

 

Last but not least, we will be working with Project boards,

A Kanban board workflow is made up of lists and visual cards. These lists are spread across the board and can be broken up however you like. For example, a Kanban board used in software development can be broken down to To do, In progress, and Done. The team can decide on the naming conventions of the columns.

Some of the many benefits are

  • Presents a visual of the scope – itemizing and outlaying the work in a board can accelerate the assignment and completion of the tasks.
  • Sets expectations for deliverables – the board displays the deliverable state. It promotes a results-oriented culture, and is motivating and inspiring for project progress.
  • Creates a template for future projects – a template creates a foundation to expedite the creation of future projects. It helps to plan, execute, and repeat successful processes.

 

Again, as you might have guessed, project boards go well with Clean architecture. 😀

 

Real life software development teams incorporate all of the practices mentioned above, and if they don’t incorporate some of them they should. For you as Software Engineer, of what ever current experience you are, topic described and used in this course will help you to stand out.

 

Come with me to this interesting journey to learn and master skills described above.