Back-End Development Overview
This course module will focus on back-end development using the C# language (C-Sharp) language and the web application framework ASP.NET.
If you completed the first course on front-end development, you will find that C# has many similarities to JavaScript. That is because the fundamental concepts of programming apply to all languages; the only difference is syntax.
What is a Framework?
It’s important to know the difference between a language (C#) and a web application framework (ASP.NET).
A framework provides pre-built libraries, tools, and conventions for building something specific. ASP.NET is the framework for building web applications with C#. ASP.NET is cross platform, meaning it can run on any kind of server operating system, Windows, Mac, or Linux. Its open-source too, meaning that its free and unrestricted for all uses.
Web application frameworks exist for all of the popular languages:
- Laravel for PHP
- Django for Python
- Node for JavaScript
- ASP.NET for C#
The C# language can be used in many types of applications, not just web apps. It can be used to make games, desktop applications, AI, and more. Each one of these applications has their own C# framework, and all of these fall under the .NET umbrella managed by Microsoft.
A web application framework like ASP.NET handles common web development tasks like:
- Routing URLs (e.g., /products/5)
- Handling HTTP requests/responses
- Authentication/authorization
- Working with databases
Think of ASP.NET as a structured environment that helps you build web apps faster and more efficiently using C#. Building a web application without a framework would be an immense task and would take you literally forever.
Even with a framework, web applications can take a lot of effort to build if you aiming for commercial level scale. For SaaS and MVP projects, the Nano ASP.NET Boilerplate can help fast-track that development by providing all the architecture and essential infrastructure from the start.
What is an IDE?
In the previous course on front-end web development, we used Visual Studio Code to write JavaScript, HTML, and CSS. Visual Studio Code is a code editor. A code editor is lightweight, fast, and customizable. Think of it like a “smart notepad” for code.
An IDE stands for Integrated Development Environment and is similar to a code editor. The difference is that it is heavy, and includes everything you need to build, debug, and deploy applications. Think of it as a “fully equipped workshop”
When working with C#, you could use a code editor like Visual Studio Code but it’s better to use a full IDE like Visual Studio 2022. The reason is that the Visual Studio IDE was created specifically for C# and .NET. One of the special things about .NET is that it’s the only technology stack that is open-source yet still has tooling made specifically for it, and Visual Studio provides the best experience.
A brief history of .NET
The .NET framework is a Microsoft technology and has been around for a long time. Its reputation suffers from the fact that Microsoft used to be an overly-controlling corporate machine. What happened in 2015-2016 is that Microsoft had a change of leadership and strategy. They shifted from a closed-source mentality to open-source and essentially started giving everything away for free. Their strategy now is to let people build what they want, and later attract them with cloud services. Azure is the name of their cloud service launched as a direct competitor to Amazon Web Services (AWS) and for .NET projects its arguably better. .NET continues to dominate in business corporate environments but given that reputations are hard to shed, it’s still working its way into adaptation with the smaller start-ups.
The reality is that now .NET is a superior development technology and the best of both worlds. Being open-source, it benefits from the innovation across a wide community. It has no cost barriers to entry or corporate lock-in. But since the world’s largest company supports it, it also has amazing tools that would never exist otherwise. Additionally, the .NET ecosystem is less chaotic than others which are purely community driven; things typically work together without much issue, and there’s always at least some baseline of documentation.
At the end of the day it all comes down to preference. Having worked with a lot of PHP, JavaScript, and C#, I personally much prefer .NET.
Installing Visual Studio 2022
So to get started, download Visual Studio 2022. It’s available for Windows, Mac, and Linux. The download will take some time since the whole package is over 2GB in size. Make sure to install everything related to C# and ASP.NET since we will be learning how to build web applications in the following lessons.
In the next lesson, we will learn coding basics once again, this time with C# in a console application. A console application is the simplest type of project you can create with .NET. It contains no user interface and only outputs results to a console window. After that we will learn about relational databases and finally build a back-end web API with the ASP.NET web application framework that will connect with the front-end client we made earlier.