As part of this series, we will learn software architecture-related concepts by Architecting Large-Scale Applications in ASP.NET Core. This series will help developers to take a developer-to-architect journey i.e. it will help developers to learn concepts related to software architecture to take a big leap in their career.
In this series, we will take a practical approach by developing a software application in ASP.NET Core to demonstrate how the application code looks like before applying the software principle in discussion and then demonstrate the benefits we get after applying software architecture principle. We will keep on enhancing/refactoring this demo application as we learn new concepts related to software architecture.
This is going to be a very big & detailed series and this post will provide links to all the articles that will be written as part of this series, please bookmark this article so that you don’t miss out on the new articles getting published. It will be even better if you subscribe to this blog so that you get a notification in your email about new articles being published.
As most of my experience has been on .NET, the demo application in this series will be developed using ASP.NET Core C# with .NET 8 SDK. However software architecture concepts are common and hold good irrespective of the programming language being used.
Target Audience
This series is for all passionate developers who already possess good coding skills and now want to learn about software architecture concepts so that they can write better code and move up the ladder in their careers.
This is also for software architects who possess software architecting skills but want to revise their concepts on software architecting skills.
Introduction
These days developing efficient applications with the best in-class user experience is very critical to the success of the business. But to develop efficient applications you need the best architecting software system knowledge and skills.
This skill is not readily available as to develop this skill one requires not only theoretical knowledge but lots of practical experience as a developer as well so in short to develop architect skills requires many years of hard work. Developers with good programming skills can develop this software architect skill by learning about architectural principles and getting first-hand experience by implementing concepts in their code.
As an architect, you need to know which part of the application is critical for the business to function successfully so that you can give extra attention to that requirement. Also, the most important task of a software architect is to identify application areas that are likely to create problems in the application if not controlled from the start.
We will learn architectural concepts by practically building an application i.e. by Architecting applications in ASP.NET Core.
Pre-Requisite
This series assumes that you are at least a good developer with sound knowledge of development skills and have good experience in building software applications as part of your work.
It takes years for a developer to gather knowledge by learning & through practical experience to become an architect. Also to gain software architect experience developers should have worked on the right kind of projects in their career i.e. developers should have worked more on big and diverse development projects instead of maintenance/support projects.
Purpose
The purpose of this series is to help developers aiming to become architects and also allow software architects to learn the following from this series:
- How to start with the architecture design of software systems – As part of this series we will begin with the architecture design of a basic 3-tier application to which we will keep adding new features i.e. we will constantly refactor & enhance this 3-tier application as we move along.
- We will get architectural insights into the technology that will be used to build the application.
- We will also learn how to design a good architecture by considering the non-functional requirements like performance, scalability, logging, reliability, resiliency & security.
- We will also learn how to design and execute the deployments of large-scale production applications that involve deployment on many servers using tools like docker, Kubernetes, etc.
In a nutshell, the purpose of this series is to enable you to become a good software architect by gaining the right knowledge related to software architecting.
This software architect knowledge series will help developers bridge the gap between developer to architect.
As and when I publish an article in this series I will be posting the link below under the Articles heading so you better bookmark this page or subscribe to this Blog so that you don’t miss on the articles that will help you to take a leap from Developer to Architect in your career.
Happy Learning.
Articles
For quick performance improvement of your ASP.NET Core application that is facing performance issues due to asynchronous code not being implemented in your application then you can refer article on Scaling ASP.NET Core Applications using ThreadPool