What Is .NET?
.NET is an open-source platform for building desktop, web, and mobile applications that can run natively on any operating system. The .NET system includes tools, libraries, and languages that support modern, scalable, and high-performance software development. An active developer community maintains and supports the .NET platform.
In simple terms, the .NET platform is a software that can do these tasks:
- Translate .NET programming language code into instructions that a computing device can process.
- Provide utilities for efficient software development. For example, it can find the current time or print text on the screen.
- Define a set of data types to store information like text, numbers, and dates on the computer.
What is a .NET implementation?
Various implementations of .NET allow .NET code to execute on different operating systems like Linux, macOS, Windows, iOS, Android, and many others.
.NET Framework
.NET Framework is the original .NET implementation. It supports running websites, services, desktop apps, and more on Windows. Microsoft released .NET Framework in the early 1990s.
.NET Core
Microsoft launched .NET Core in late 2014 to enable cross-platform support for .NET developers. The company released the newest version of the .NET Core, .NET 5.0, in November 2020 and renamed it .NET. The term .NET in this article refers to .NET 5.0. .NET Core is open-source on GitHub.
.NET Standard
.NET Standard is a formal specification of different functions (called APIs). Different .NET implementations can reuse the same code and libraries. Each implementation uses both .NET standard APIs and unique APIs specific to the operating systems it runs on.
Why choose .NET?
Ease of development
Developers like to use .NET because it includes many tools that make their work easier. For example, using the Visual Studio suite, developers can write code faster, collaborate efficiently, and test and fix their code efficiently. The ability to reuse code between implementations reduces the cost of development.
High-performing applications
.NET applications provide faster response times and require less computing power. They have strong built in security measures and efficiently perform server-side tasks like database access.
Community support
.NET is open source, which means that anyone can get access to use, read, and modify it freely. An active community of developers maintains and improves the .NET software. The .NET Foundation is an independent nonprofit organization established to support the .NET community. It provides learning resources, open-source .NET projects, and various events for .NET developers.
What are the components of .NET architecture?
.NET has a modular and optimized architecture. Users can choose different components to meet their software development requirements.
These are the three main .NET components:
- .NET languages
- Application model frameworks
- .NET runtime
Developers use .NET programming languages and application model frameworks to create their .NET applications. The .NET runtime then executes and runs them.
What are .NET programming languages?
C# (pronounced C sharp), F# (pronounced F sharp), and Visual Basic are the three Microsoft-supported languages for NET development. Different companies and developers have also created other languages that work with the .NET platform.
C#
C# is a simple, modern, and object-oriented programming language. With syntax similar to the C family of languages, C# is familiar to C, C++, Java, and JavaScript programmers.
F#
F# has lightweight syntax and requires very little code to build software. It is an open-source language that makes it easy to write succinct, robust, and high-performing code. It also has a powerful programming rules system and a convenient standard library for building mission-critical, correct, fast, and reliable software.
Visual Basic
Visual Basic is an object-oriented programming language developed by Microsoft. Using Visual Basic makes it fast and easy to create type-safe .NET apps. Type safety is the extent to which a programming language discourages or prevents logical coding errors.
Common Language Infrastructure (CLI) languages
Languages like ClojureCLR, Eiffel, IronPython, PowerBuilder, and many others also work on the .NET platform. This is because .NET implements the Common Language Infrastructure (CLI). You can think of CLI as a template for creating .NET-compatible languages.
What is .NET runtime?
The .NET runtime, also called Common Language Runtime (CLR), compiles and executes .NET programs on different operating systems.
Just-in-time compilation
The CLR compiles code as the developer writes it. During compilation, CLR translates the code into Common Intermediate Language (CIL). For example, code written in C# has English-like syntax and words. .NET compiles or translates this code into CIL. CIL code looks different because it is a lower-level machine code language.
Execution
.NET runtime manages the execution of CIL code. CIL is cross-platform compatible, and any operating system can process it. Cross-platform compatibility refers to an application’s ability to run on multiple different operating systems with minimal modifications. For example, an application in C# can run on Windows, Linux, or macOS without any code modifications. Such an application is called a cross-platform application.
What are .NET application model frameworks?
The application model frameworks are a collection of developer tools and libraries that support fast and efficient .NET project development. Different frameworks exist for different types of applications, such as those listed below.
Web applications
The ASP.NET framework extends the .NET developer platform specifically for building web-based applications. It supports web technologies such as REST APIS, HTML, CSS, and JavaScript. It provides a built-in user database with multi-factor and external authentication. ASP.NET supports industry-standard authentication protocols with a built-in security mechanism to protect your .NET apps from cyberattacks.
Mobile applications
You can use Xamarin/Mono to run .NET apps on all the major mobile operating systems, including iOS and Android. Xamarin includes Xamarin.Forms, an open-source mobile user interface framework. .NET developers use Xamarin.forms to create a consistent user experience across mobile platforms. All .NET apps can look the same, even on different mobile devices.
Desktop applications
You can use Xamarin for desktop application development. Additionally, Universal Windows Platform extends .NET Windows 10 application development. Windows Presentation Foundation and Windows Forms are other frameworks for user interface design on Windows.
Other applications
With ML.NET, you can develop and integrate custom machine learning models into your .NET applications. You can use .NET IoT Libraries to develop applications on sensors and other smart devices. For any solutions not available in the frameworks, you can find many specific function libraries on the public NuGet repository. You can use Nuget to create, share, and use many .NET libraries for almost any purpose.
How can AWS help .NET developers?
.NET developers can make applications faster using .NET on AWS. It has a service for every job, so you can quickly build proofs of concept without worrying about managing infrastructure. Some examples of AWS services for .NET development are given below:
- AWS Elastic Beanstalk handles application deployment and operational tasks.
- Amazon EC2 provides secure and resizable compute capacity in the cloud.
- Amazon Aurora automates database administration.
.NET developers can also use AWS open-source tools and libraries, such as the following:
- The AWS SDK for .NET makes it easier for Linux and Windows developers to build .NET applications.
- AWS Code Examples Repository helps accelerate your understanding of applications that work with AWS services.
- .NET Digital Library contains an archive of videos, tutorials, blogs, and other developer resources for .NET.
With the release of .NET 6, .NET developers can take even greater advantage of AWS’s performance and cost savings with Linux. .NET 6 applications can already use many AWS services without additional work. This guide describes .NET 6 support provided by AWS services and tools.
You can get started with .NET on AWS by completing .NET on AWS training, building .NET applications on AWS, or launching your first .NET application on AWS.