Since its launch in the 1990s, .NET is one of the most consistent, popular, and widely used frameworks. It is a development platform created by Microsoft and is used to develop different applications for the web, desktop, IoT, mobile, and games.
.NET is an open-source free framework and allows developers to use multiple languages, libraries, and editors. This enables developers from different backgrounds and experiences to quickly learn and use this platform.
Since this framework was developed by Microsoft, its intended use was for applications across multiple Windows platforms. However, as .NET progressed to an open-source cross-platform development framework, it can be used to develop applications for multiple operating systems like Windows, Web Assembly, and Linux. TvOS, macOS, Android, and watchOS.
History of .NET
Intending to create a platform based on managed code, Microsoft commenced the development of .net in the late 1990s. Managed code was executed under a runtime environment and improves the development process while relieving the developers from the anxiety of security operations and active memory management.
The first release of this framework happened in 2002 with the introduction of the C# language a variation of the C++ language. Initially, it was used for developing applications only for Microsoft programs and devices. Since its launch, .net development includes support for F# and Visual Basic.
In 2014, there was a significant shift from .NET to .NET core, which was a cross-platform, open- source, cloud-friendly version of the initial framework. The release in 2016 further made it simpler to develop applications for newer platforms.
Microsoft unified the entire .net ecosystem in May 2019. The .NET 5 unified various tools under a single development platform including visual studio, visual studio code, and command-in-line interface with AI coding, desktop, IoT, web, gaming, and mobile.
The current .NET 6 version released in November 2021 offers long-term support and completes the unification of the framework. It includes improvements for desktop, cloud, and mobile application development. The .NET 6 version unifies .NET core, .NET framework, and Mono and Xamarin technologies.
Pros of .NET development
- Object-oriented programming
- Visual studio DE
- Easy maintenance
- Robust caching mechanism
- Automated monitoring
- Cross-platform development and designing
- Universal .net standard
- Lower coding requirements and simplified tools
- Flexible development
- Large community support
Cons of .NET development
- Slower than native codes
- Vendor lock-in
- Gaps between release and stability
- Memory leaks
- High licensing costs
- Limited object-relational support
- Longer transition time required to master .net
Difference between .NET core and .NET framework
Each of these platforms has its unique features with specific pros and cons.
It is based on the idea of developing the code once and then publishing it across platforms. This framework is compatible with different operating systems and cross-platforms. The .NET core framework is not supporting desktop applications and is more focused on web-based designs. This framework offers lightweight editors and command-line tools and is available in a flexible deployment model.
This framework is partially open-source and is compatible only with the Windows operating system. The .NET framework focuses on the desktop applications and can also be used to develop web applications as it supports WPF applications and Windows forms. In comparison to the .NET core, the .NET framework is less effective in terms of performance and the scalability of the developed applications.
However, the differences between these two platforms are becoming redundant with the unification of the .NET framework with the newer releases.
Which applications use the .NET framework?
Some of the popular applications using the .net framework include:
- All Microsoft applications
- Stack overflow
- London Stock Exchange
Architecture of the .NET framework
1. Common Language Infrastructure (CLI)
CLI provides a language equitable platform for building and execution of the applications. With CLI, the .net framework offers support for various languages like VB.NET, C#, and J#.
2. Common Language Runtime (CLR)
CLR is responsible for executing the .NET program runtime. Additionally, it offers services, such as memory management, exception handling, security, thread management, type safety, and garbage collection.
The Just-in-time (JIT) compiler is used for converting code into machine instructions and these are later executed by the computer or server.
3. Framework Class Library (FCL)
This provides support for multiple programming languages, such as F#, C#, and VB. The FCL is a collection of classes, interfaces, and value types and also includes the implementation of base class libraries.
These are of two types, which include process assemblies (.EXE) and library assemblies (.DLL). The former represents the procedure defined in the library assemblies. The dynamic-link library implements the shared library concept and this is used to share codes with multiple applications. Every assembly line should include metadata and the name of the assembly generally includes its name, version, culture, number, and public token.
5. App Models
These are used for creating applications and the .net framework supports app models for Windows Presentation Foundation (WPF), Windows Forms, .net core applications, console, and ASP.NET.
Microsoft started offering basic features with the initial launch of the .net platform. Even as other platforms became available, .net continues to be popular for developing large-scale, complex, and stable web applications. The features offered by .NET core, MVC, and web forms have made this framework popular and widely used by developers.