.NET is a free, cross-platform, open source developer platform for building many different types of applications.
With .NET, you can use multiple languages, editors, and libraries to build for web, mobile, desktop, games, IoT, and more.
The .NET Framework comprises a large class library called the Framework Class Library (FCL) and the Common Language Runtime (CLR), which allows software applications developed on the platform interoperability across multiple programming languages. With the .NET Framework, developers can build and run software applications for Windows, Windows Mobile, Windows Server, Microsoft Azure and XML Web services on a single integrated development environment.
The primary focus of .NET was to eliminate the major challenges of application development, such as high ownership costs, ease of deployment, difficulty in changing applications and extended development periods. The CLR and FCL addressed many of these issues.
Components of the .NET Framework
The .NET Framework is based on the Framework Class Library, Common Language Runtime and app models:
Framework Class Library
The FCL is the entire class library bundled into the .NET Framework. It provides a library of clean, reusable codes that developers can use to build software solutions or import into their own applications. A class library is a collection of functions and methods designed for a specific purpose. Class libraries can execute functions such as database interaction, app development, XML document manipulation and graphic rendering.
Common Language Runtime
The Common Language Runtime is the component that executes all the programs written on the .NET Framework. It offers several services, including:
• Memory management, code execution and threads, compilation, verification of code safety and other system services
• Executes code access security
App models
The common app models for building software applications in the .NET Framework include:
• WinForms: This model is used to develop forms-based applications deployed on end-user devices.
• ADO.Net: This is used to build applications that interact with databases, such as the Microsoft SQL Server and Oracle.
• ASP.Net: This model is used to develop web-based applications that can run on browsers.
.NET Application Models Explained :
Above the core components, you have the different application model frameworks, that is, the libraries that offer support for developing different types of applications. So, for example, you have:
• ASP.NET: The framework that allows you to build web applications and web APIs.
• Windows Presentation Foundation (WPF): A graphical user interface for Windows desktop applications.
• Xamarin: The framework for building cross-platform mobile, TV, and desktop applications.
• Blazor: The framework to build client web applications by using C#. It also allows you to generate client web apps in WebAssembly code.
• ML.NET: The machine learning framework that simplifies the integration of machine learning models in your .NET application.
In addition to application model frameworks, .NET offers you support for most of the common programming tasks: from file management to network communication, from security to database access. For example, on the networking side, it supports socket programming, HTTP communication, and gRPC. This allows you to create microservices with the protocol that better fits your needs.
For any other needs not embedded in the framework, you can find a huge number of specific libraries on the public NuGet repository. In fact, NuGet is the package manager for .NET. It allows you to create, share, and use many .NET libraries for almost any purpose.
Evolution of .net Framework to .Net Platform
NET Framework
The .NET Framework was the initial flavor of .NET. It provides the developer with a set of APIs for the most common programming needs and interacts with the underlying operating system. It runs only on Windows, and its lifecycle is coming to an the end right now, after the release of .NET 5.
Mono
The Mono project brings .NET to Linux machines. It is the best known porting project based on the .NET standard specifications. Even if Mono’s aim is to run on Linux applications built for the .NET Framework and vice versa, the compatibility is not always guaranteed. There are a couple of reasons for this: some .NET Framework features are too tied to the Windows operating system, and often the Mono implementation lags behind the newest .NET Framework features.
.NET Core
.NET Core is a complete rewriting of the .NET Framework with the cross-platform goal in mind. Its redesigned architecture defines a minimal feature set as the common core across Windows, Linux, and Mac platforms. The rest of the features can be downloaded as library packages.
.NET Standard
The .NET Standard is not another .NET implementation. It is a formal specification of .NET APIs that helps to create cross-platform libraries. If a platform supports a given .NET Standard version, then a library supporting the same version will run on it, regardless of the device type and the framework implementation (.NET Framework, Mono, .NET Core).
.NET
Since the beginning, the .NET term has been used to indicate the universal development platform. However, many implementations arose since then, so the .NET name created ambiguities. .NET 5 aims to make concrete the initial vision of a universal development platform. It replaces the current existing implementations: .NET Framework, .NET Core, and even Mono. So, from .NET 5 on, only .NET will exist as a name and as a platform.
No Comments - be the first.