.NET is the technology you probably have heard of, even if you are far from software development. But if you are a software engineer or a business owner who uses various software products, the .NET platform is definitely among the top development tools for you.
This article provides a general overview of the ecosystem and explains the key aspects of software development with .NET.
What is .NET?
The .NET framework was developed by Microsoft with C# as a counterpart to the Java platform and distributed under the MIT license. The essence of the platform was to work exclusively with the Windows OS by Microsoft.
The framework is based on the Common Language Runtime (CLR) environment, which is suitable for all programming languages. However, the main languages used with the platform are C#, Visual Basic and F#.
Let’s look at the history of dotnet products.
- .NET Framework was the initial version released in 2002 and aimed solely at Windows-based solutions.
- .NET Core appeared 14 years later and introduced the main improvement – the cross-platform development capability. It was also cloud-friendly, which significantly extended the list of possible solutions.
- Xamarin was a platform designed by Mono and later integrated with the .NET ecosystem to create mobile applications for various platforms.
- .NET 5 integrated the best features of the previous versions and appeared as a unified development platform for all devices.
- .NET 6 completed the integration process and presented a single platform for creating cloud, web, desktop, mobile, IoT, AI, and gaming apps.
- MAUI is the evolution of Xamarin and part of the .NET 6 platform that allows you to build native mobile applications.
How does .NET work?
The principle of .NET operation is quite simple, it’s based on three concepts: CLI, CIL, and CLR.
The architecture of the .NET executive system is defined by Common Language Infrastructure (CLI). In this infrastructure, each language has its own compiler, but programs are not compiled into native code. They are transformed into the intermediate bytecode named Common Intermediate Language (CIL). If we write a small program that displays the “Hello, World” inscription in different languages, it is formed into an intermediate bytecode.
When we run such a program, its bytecode is transferred to the Common Language Runtime (CLR). There it is already compiled into native code and starts to run. Java virtual machines work in a similar way, but dotnet is much faster and can be used on personal PCs, and not just on servers.
Where is .NET used?
The range of products created with .NET is quite extensive. Let’s consider the most popular areas where dotnet technologies are used.
Web applications are one of the common groups of applications written with .NET. The peculiarity of such applications is that they work in a browser and require a stable internet connection. This can be a simple one-page site, but most often these are large-scale projects that require much effort.
Client applications are products that run on personal computers and mobile devices. Windows applications such as notepad and calculator have been developed using dotnet. But this is only a small part of what can be done on .NET.
.NET mobile development is performed using Xamarin. One option is to develop separate apps for iOS and Android using Xamarin Native. Another option is to create a single UI for all devices with the help of Xamarin.Forms.
The .NET ecosystem offers many options for those who want to create games but don’t want to build everything from scratch. Developers are now implementing code reuse techniques in their games, and various APIs and tools have been created that can be reused when launching a new game. These game engines contain abstractions of graphics, input, and media API. They may also contain design tools and managers for visual and audio effects.
With the growing C# popularity, more game engines began to support .NET. Among them are MonoGame, which is now part of .NET 5, Stride (formerly Xenko) developed by Silicon Studios, NeoAxis, etc. The most popular integrated engine is Unity. Developed in C++, it was one of the first commercial engines to use .NET for C# scripting and cross-platform targeting.
Internet of Things
The Internet of Things is a huge number of devices that are connected to the internet in order to exchange data with other physical things and applications. Devices use built-in sensors to collect data and act on them. Application examples range from a smart home that automatically controls heating and lighting to a smart factory that monitors industrial machines to find problems.
.NET can also be used in this area, for example, with the help of Raspberry Pi and Windows 10 IoT Core.
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.
What is the future of .NET?
.Net technology is attractive to young professionals because it opens up a lot of possibilities for writing complex and functional applications. For example, you can go to the backend and become a professional in WCF or ASP.NET Core. Using Razor/Blazor will allow you to create full-fledged web applications for dotnet with both client and server parts.
If we talk about modern technologies like React, NG or Vue, then learning for a backend developer will become more understandable using the TypeScript language, which was developed by Microsoft specifically for C# programmers.
Also, do not forget the framework tailored for Windows. No need to install anything, everything is already at hand. If you take Java, you need to install a lot of additional software, and you need a Mac to work with iOS.
.NET has an excellent community that will help you cope with difficulties at all development stages.