Overview of the Platform for.NET

There is no question that.NET is essential to the software development sector. The popularity of.NET among developers is undeniable. The number of open-source initiatives worldwide and the inclusion of C# among the top five programming languages serves as indicators. With the most recent release (.NET 5), which pioneers the idea of universal software development and revolutionizes the industry, its popularity is only going to increase.

What is .NET?

A variety of applications can be created using the open-source and cross-platform.NET platform. The platform, created by Microsoft, provides a variety of programming languages and libraries for creating web, mobile, desktop, Internet of Things (IoT), and other applications. Even while C# is often regarded as the primary programming language for.NET, you can use any other language of your choice. Microsoft supports the following languages in direct support:

  • C# (C sharp): a contemporary C language family object-oriented programming language. Developers of C, C++, Java, and JavaScript might be able to recognize its syntax.
  • F# (F sharp): A language from the family of ML languages that is functionally oriented. Additionally, it supports the paradigm of object-oriented programming.
  • Visual Basic: the original programming language used by Microsoft. Within the NET framework, it has fully evolved into an object-oriented programming language.

Regardless of the programming language, you use, NET supports the Common Language Infrastructure (CLI), which results in the compilation of your source code into a Common Intermediate Language (CIL). This ensures that the platform’s languages will work together seamlessly.

A large number of different programming languages can compile to the.NET CIL in addition to those that Microsoft directly supports above. Examples include PowerBuilder, Eiffel, IronPython, ClojureCLR, and numerous others. Visit this page for a comprehensive list.

theinfotech

.NET Architecture and Components

You can create a variety of application kinds using.NET, including command-line, desktop, mobile, gaming, and Internet of Things (IoT) applications.

This is made possible by the architecture’s modular design and optimization.

.NET Components

The .NET architecture is based on two main components:

CoreCLR:  It’s the.NET runtime, then. It has a just-in-time compiler and is in charge of running CLI programs.

CoreFX: The CLI Standard Libraries, or the group of libraries that offer the most typical functionalities, such as file system administration, exception handling, network communication, threading, reflection, and so on, are implemented by the platform’s API. Sometimes referred to as the Unified Base Class Library, CoreFX is a component.

.NET Application Models

The various application model frameworks, or the libraries that provide support for constructing different sorts of applications, sit above the fundamental components. As an illustration, you have:

ASP.NET: The software framework for creating online apps 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 platform for creating client web apps in C#. Additionally, it enables you to create client web apps in WebAssembly.

ML.NET: .NET applications can more easily incorporate machine learning models thanks to the machine learning framework.

.NET provides support for the majority of basic programming activities, including file management, network connection, security, and database access, in addition to application model frameworks. For instance, it supports socket programming, HTTP communication, and gRPC on the networking side. This enables you to develop microservices using a protocol that is more appropriate for your requirements.

For any additional requirements not covered by the framework, a sizable selection of specialized libraries are available on the public NuGet repository. The .NET package manager is called NuGet. It enables the creation, sharing, and usage of numerous .NET libraries for practically any objective.

.NET Design and Development Support

.NET supports software development in more ways than just the variety of programming languages available to you; it also encourages the implementation of specific best practices while letting you design your application as you like.

It advises using dependency injection, for instance, to decouple the various parts of your program. By reducing component dependencies and promoting reuse, dependency injection aids in the creation of better software. Additionally, it makes testing your components simpler.

By the way, .NET includes support for unit and integration tests with JUnit on the testing front.

Developers have a variety of options at the start of the development process. They can utilize the.NET CLI environment to start new projects, add dependencies, build, run, and do other things using the command line.

For a middle-ground solution, they can use Visual Studio Code, a sophisticated cross-platform editor built on top of the.NET CLI. Alternatively, users can utilize a potent IDE like Visual Studio, which is accessible on both Windows and Mac and offers an interactive programming environment.

Regardless of the tool you select, you may use a variety of project templates to get your new application started quickly. Additionally, you can develop your own.NET project template.

From the .NET Framework to the .NET Platform

The.NET project was introduced by Microsoft in 2002. .NET has always aimed to develop a platform that can be used to program in any language. Naturally, the primary.NET target for the initial stage was Windows.

Microsoft did, however, submit the C# programming language and.NET runtime architecture requirements to ECMA for standardization. As a result, a few porting initiatives were created for Linux, embedded systems, mobile devices, browsers, and other platforms.

Additionally, this caused the platform to become fragmented and occasionally caused developer confusion. Learn more about evolution by reading this article on NET.

Let’s attempt to define the distinctions between a few widely used notions.

.NET Framework

The first version of NET was the.NET Framework. It communicates with the underlying operating system and offers the developer a set of APIs for the majority of common programming requirements. It only operates on Windows, and its lifecycle is currently approaching an end following the launch of.NET 5.

Mono

The Mono project makes.NET available on Linux computers. Based on the.NET standard specifications, it is the most well-known porting project. The compatibility is not always guaranteed, even though Mono aspires to run on Linux applications created for the.NET Framework and vice versa. There are a few causes for this, including the fact that the Mono implementation frequently lags behind the most recent.NET Framework features and that some.NET Framework capabilities are overly dependent on the Windows operating system.

.NET Core

The.NET Framework has been completely rewritten as.NET Core to be cross-platform. A core set of minimal features that are shared by Windows, Linux, and Mac platforms are defined by its revised architecture. The remaining functionalities are available as library packages for download.

.NET Standard

Another.NET implementation is not what the.NET Standard is. It is a.NET API formal definition that aids in the development of cross-platform libraries. No matter the device type or framework implementation, if a platform supports a specific.NET Standard version, a library supporting that version will also run on that platform (.NET Framework, Mono, .NET Core).

.NET

The universal development platform has been referred to as.NET since the beginning. The.NET nomenclature produced ambiguities because other implementations have emerged since then. The initial concept of a universal development platform is intended to be realized with.NET 5. It takes the place of the current versions of.NET Framework, .NET Core, and even Mono. As a result, starting with.NET 5, only.NET will be used as a name and a platform.

Auth0 and .NET

You can simply include cutting-edge authentication and authorization into your.NET applications thanks to Auth0’s extensive support for the platform, which includes sample projects, documentation, and dedicated SDKs. You may discover a list of the.NET resources that Auth0 offers you in this section.

.NET QuickStart

You can set up your first authentication and authorization integration with the aid of Auth0 QuickStart. They provide step-by-step instructions for adding the necessary code and configuration. The code snippets are set up for your account if you are logged in. You can create a free Auth0 account if you don’t already have one.

There are the NET-related QuickStarts listed below:

ASP.NET Core Web API v3.1: Using the common JWT middleware, this QuickStart assists you in adding authorization to an ASP.NET Core Web API.

ASP.NET Core v3.1 Web Application: The ASP.NET Core Web Application User Login QuickStart illustrates how to add a user login.

WPF/Windows Forms (WinForms): The QuickStart provides instructions for adding user login to Windows desktop C# programs.

Xamarin: You can add user login to Xamarin applications with the aid of this QuickStart.

Windows Universal App: You may add user login to Windows Universal C# applications by reading this QuickStart.

Software Development Kits (SDKs)

To assist you in integrating authentication and authorization in your.NET applications, Auth0 offers you the following SDKs:

Auth0.NET Client Library: Two APIs are supported by this SDK:

  • The Authentication API: You can include OIDC-based authentication into your application using this API.
  • The Management API: With the help of this API, you may communicate with the Auth0 Management API and manage your Auth0 tenant.

.NET desktop apps based on WinForms, WPF, and UWP as well as Xamarin mobile applications, this library enables OIDC authentication.