What is .Net and what is the platform for

The .NET Framework is a special technology designed to run various web services and create applications on Windows. This is what the official Microsoft source tells us.

What all this means for the programmer and the average user – we will understand in today’s article.

What is .NET?
The first release of the .Net Framework took place back in 2002. The platform was designed as an alternative to Java. The main difference between .Net was that it was officially intended to work with operating systems of Microsoft Windows family.

The past 20 years have passed, but .Net is still popular despite the fact that there is a platform of the new generation, for example .Net Core. Today, .Net allows you to use the same namespaces, libraries and APIs for different languages:

C#;
Visual Basic;
Visual C++;
F#.
When a programmer creates a program in one of these languages, the first thing he needs to do is connect the System namespace. This allows the program code to be organized into logical blocks, to combine and separate some functionality from the rest of the code. If there were no .Net, then we would have to create a separate System for each programming language, and this would already violate one of the main principles of programming: “Do not repeat”.

Why do we need .NET?
At first glance it may seem that .Net is a technology that affects only programmers, but in fact this is not the case. It also affects the user experience.

Suppose that we need to install a program that was written in the programming language C#. It would also require a C# environment to be installed. If you need a program in another language, you need another environment for that language and so on for all languages.

The .Net programmer does not have to install a separate environment for each program. Thus, it does not only reduce the installation time, but also does not clog up the hard drive with copies of slightly different libraries.

As for programmers, the .Net framework can significantly reduce development time and resources. With its help, it is possible to develop one environment and use it for several languages.

Developers who know different languages can write a common software product for a particular .NET-platform. Elements of that product, written in different languages, will be able to communicate with each other without any problems. This also explains why the .NET community is so large and diverse.

In addition to the main languages, the framework supports several dozen other languages such as Delphi, Cobra, Oxygene and others. You can see the full list on Wikipedia.

How does .Net work?
How .Net works is fairly straightforward, just understand the concepts of CLI, CIL and CLR.

How .Net works

The CLI (Common Language Infrastructure) defines the architecture of the .NET runtime system.

With this infrastructure, each language has its own compiler, but programs are not compiled to native code, but to the intermediate byte-code CIL. If we write a small program that outputs “Hello, World” in different languages, it will form into intermediate bytecode.

The intermediate bytecode

When we run such a program its bytecode is passed to the Common Language Runtime (CLR). There it is compiled into native code and executed.

The Java virtual machines work in a similar way, except that .Net is much faster and can be used on personal computers and not only on servers.

Where do you use .NET?
The range of products that developers are working on is quite extensive. Here’s a look at the most popular uses of .Net.

Web development
Web applications – this is one of the widespread groups of applications which are written under .Net. The peculiarity lies in the fact that such applications work via a browser and require a stable Internet connection.

This can include simple one-page sites, but most often they are large-scale projects that require a lot of effort. For example, Stack Overflow is a site known to every developer.

To write web applications under .Net, you need to know C#, as well as know the ASP.NET MVC framework. You also need to understand what a client/server is, how the HTTP protocol is structured, and how REST works.

Windows applications such as Notepad and Calculator were developed using .NET. But this is only a small part of what can be done with .Net. For example, the technology has been used in NinjaTrader and Tradesignal, as well as in Microsoft Power BI, an application for business analysts.

There are client applications for smartphones as well, but they tend to use the more modern .Net Core technology. With it and Xamarin.Forms you can write an application and publish it to the Apple Store or Google Play.

Computer games
With .Net, you can make all kinds of games with Unity. Examples include Inside, Kerbal Space Program, Endless Legend, and even Pokemon Go. To create these games, you need to know the C# programming language and use the Mono and Unity platform libraries.

Internet of Things
The Internet of Things is a vast number of devices that are connected to the Internet to exchange data with other “things” and applications. Devices use embedded sensors to collect data and act on it. Application examples range from a smart home that automatically adjusts heating and lighting to a smart factory that monitors industrial machines to find problems.

You can also apply .NET here, for example, using a Raspberry PI with Windows 10 IoT Core. If you’re planning to evolve in this direction, the first thing to do is to read online about Azure IoT and Azure IoT Hub.

Enterprise
Enterprise is the area of developing products to solve business problems. Such products include CRM for tracking customer behavior, as well as information management and document management systems.

Such systems are most often a combination of web, desktop, and mobile applications. To start working with Enterprise, you will need knowledge in C#, .NET and JavaScript, as well as in the tools that are the basis for the designed Enterprise product.

Is .NET worth learning?
.Net technology is attractive to young professionals because it opens up a wide range of opportunities. For example, you can go into the backend and become a professional in WCF or ASP.NET Core. Using Razor/Blazor will allow you to create under .NET full-fledged web applications with both client and server side.

If we are talking about modern technologies like React, NG, or Vue, the training for backend-developers will become clearer using TypeScript language, which was developed by Microsoft especially for C#-programmers.

Also do not forget that .Net is a framework, customized for Windows. There is no need to install anything, everything is already at your fingertips. If you take Java, for example, you need to install a lot of additional software, and to work with iOS you need a Mac.