What is .NET?
Tags: webdev, beginners, programming, tutorial
Published: 2023-08-16 14:13:29

.NET is an open source platform for building desktop, mobile and web applications that can run on any operating system. The .NET system includes tools, libraries, and languages ​​that support modern, scalable, and high-performance software development. The .NET platform is supported and maintained by an active developer community.
Simply put, the .NET platform is software that can perform the following tasks:

- Translate .NET programming language code into instructions that a computing device can process.

- Provide utilities for efficient software development. With their help, you can, for example, determine the current time or print text on the screen.

- Define a set of data types for storing information such as text, numbers, and dates on a computer.

**What are .NET implementations?**
Various .NET implementations allow .NET code to run on different operating systems such as Linux, macOS, Windows, iOS, Android, and many more.

**.NET Platform**
The .NET platform is the original implementation of .NET. It supports running websites, services, desktop apps and more on Windows. Microsoft released the .NET platform in the early 1990s.

**.NET Core**
Microsoft launched .NET Core in late 2014 to provide cross-platform support for .NET developers. The company released the latest version of .NET Core 5.0 in November 2020 and renamed it .NET.
.NET Core is open source on GitHub.

**.NET Standart**
The .NET Standard is a formal specification for various features (called APIs). Different .NET implementations can reuse the same code and libraries. Each implementation uses both standard .NET APIs and unique APIs specific to the operating systems on which it runs.

**Advantages and disadvantages of .NET**

Advantages
- Language independence. Thanks to the Common Language Runtime (CLR), all languages ​​supported by .Net are compiled into an intermediate level language. This allows you to embed libraries that are written in other languages.

- Development environment. Visual Studio (VS) is one of the best IDEs (Integrated Development Environment) today. Easy to use, a large number of settings allow you to customize the environment for yourself.

- The power of C#. Object-oriented language. It is the main one in the development of .Net projects.

- Libraries. Integration of libraries is simplified as much as possible thanks to the Nuget manager (a tool for working with libraries). A huge number of libraries for various types of projects.

Disadvantages
- Distribution kits for applications. For .Net applications to work on Windows, special distributions must be installed. Each new version of .Net distributions must be installed separately. If you go to the application manager, you might be surprised how many are installed.

- More code means more responsibility. Each technology is constantly improving, the dependencies in them are changing. Sometimes a situation arises where you need to use an old version of some library. Due to version dependencies, you have to change versions of other libraries, and it is often found that something does not work correctly.

**What are the programming languages in .NET?**

1. C#
C# is a simple, modern and object-oriented programming language. With a syntax similar to the C family of languages, C# is familiar to C, C , Java, and JavaScript programmers.

2. F#
F# has a lightweight syntax and requires very little code to build software. It is an open source language that makes it easy to write concise, robust, and high performance code. It also has a powerful system of programming rules and a handy standard library for creating critical, correct, fast, and reliable software.

3. Visual Basic
Visual Basic is an object-oriented programming language developed by Microsoft. Using Visual Basic makes it quick and easy to create type-safe .NET applications. Type safety is the extent to which a programming language prevents or prevents logical coding errors.

**What is the .NET environment?**
The CLR is a kind of "virtual machine" that actually manages our applications written for .net.
It has such an interesting thing as a garbage collector (Garbage collector). It cleans up everything unnecessary left by the program in RAM during the execution of the program itself. That is, if we used, for example, a variable only once in a program, then after accessing this variable, if it is not used anywhere else, the automatic garbage collector deletes it from RAM. It is absolutely safe, and most importantly, it gives a huge increase in the performance of large-scale and resource-intensive applications.

**How does it all work?**
Recall that the process of compilation is the translation of your human-readable code into binary code that a computer understands.

In .net programming, compiling and running applications is as follows:
Code from any language is converted to code written in a common language (Common intermediate language or CIL). This language is a lower-level language similar in syntax to assembly language.
After, this code is passed to the so-called execution environment (Common language runtime or CLR), which takes functions and methods from the .net Framework
After that, the final result is transferred to the processor and the program is executed.

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/mwadwabaelz0zueq6ql3.png)

References:

- [AWS](https://aws.amazon.com/what-is/net/)
- [Microsoft](https://dotnet.microsoft.com/en-us/learn/dotnet/what-is-dotnet)