List of .NET libraries and frameworks

Last updated

This article contains a list of libraries that can be used in .NET languages. These languages require .NET Framework, Mono, or .NET, which provide a basis for software development, platform independence, language interoperability and extensive framework libraries. Standard Libraries (including the Base Class Library) are not included in this article.

Contents

Introduction

Apps created with .NET Framework or .NET run in a software environment known as the Common Language Runtime (CLR), [1] an application virtual machine that provides services such as security, memory management, and exception handling. The framework includes a large class library called Framework Class Library (FCL).

Thanks to the hosting virtual machine, different languages that are compliant with the .NET Common Language Infrastructure (CLI) can operate on the same kind of data structures. These languages can therefore use the FCL and other .NET libraries that are also written in one of the CLI compliant languages. When the source code of such languages are compiled, the compiler generates platform-independent code in the Common Intermediate Language (CIL, also referred to as bytecode), which is stored in CLI assemblies. When a .NET app runs, the just-in-time compiler (JIT) turns the CIL code into platform-specific machine code. To improve performance, .NET Framework also comes with the Native Image Generator (NGEN), which performs ahead-of-time compilation to machine code.

This architecture provides language interoperability. Each language can use code written in other languages. Calls from one language to another are exactly the same as would be within a single programming language. If a library is written in one CLI language, it can be used in other CLI languages. Moreover, apps that consist only of pure .NET assemblies, can be transferred to any platform that contains an implementation of CLI and run on that platform. For example, apps written using .NET can run on Windows, macOS, and various versions of Linux.

.NET apps or their libraries, however, may depend on native platform features, e.g. COM. As such, platform independence of .NET apps depends on the ability to transfer necessary native libraries to target platforms. In 2019, the Windows Forms and Windows Presentation Foundation portions of .NET Framework were made open source. [2]

.NET implementations

There are four primary .NET implementations that are actively developed and maintained:

Each implementation of .NET includes the following components:

The .NET Standard is a set of common APIs that are implemented in the Base Class Library of any .NET implementation. The class library of each implementation must implement the .NET Standard, but may also implement additional APIs. Traditionally, .NET apps targeted a certain version of a .NET implementation, e.g. .NET Framework 4.6. [5] [6] Starting with the .NET Standard, an app can target a version of the .NET Standard and then it could be used (without recompiling) by any implementation that supports that level of the standard. This enables portability across different .NET implementations.

The following table lists the .NET implementations that adhere to the .NET Standard and the version number at which each implementation became compliant with a given version of .NET Standard. For example, according to this table, .NET Core 3.0 was the first version of .NET Core that adhered to .NET Standard 2.1. This means that any version of .NET Core bigger than 3.0 (e.g. .NET Core 3.1) also adheres to .NET Standard 2.1.

ImplementationVersions of the .NET Standard [7] [8]
1.01.11.21.31.41.51.62.02.1
.NET 1.02.03.0
.NET Framework 4.54.54.5.14.64.6.14.7.2 [lower-alpha 1] 4.7.2 [lower-alpha 1] 4.7.2 [lower-alpha 1] [lower-alpha 2]
Mono 4.65.46.2
Xamarin.iOS 10.010.1412.12
Xamarin.Mac 3.03.85.12
Xamarin.Android 7.08.09.3
Universal Windows Platform 8 [lower-alpha 3] 8 [lower-alpha 3] 8.1 [lower-alpha 3] 10 10 10 v1709 TBA
Unity 2018.1TBA
Windows Phone 8.1 [lower-alpha 3]
Windows Phone, via Silverlight 8 [lower-alpha 3]

Web frameworks

ASP.NET

First released in 2002, ASP.NET is an open-source server-side web application framework designed for web development to produce dynamic web pages. It is the successor to Microsoft's Active Server Pages (ASP) technology, built on the Common Language Runtime (CLR).

ASP.NET Core

ASP.NET was completely rewritten in 2016 as a modular web framework, together with other frameworks like Entity Framework. The re-written framework uses the new open-source .NET Compiler Platform (also known by its codename "Roslyn") and is cross platform. The programming models ASP.NET MVC, ASP.NET Web API, and ASP.NET Web Pages (a model using only Razor pages) were merged into a unified MVC 6. [9]

Blazor

Blazor is a free and open-source web framework that enables developers to create Web apps using C# and HTML. Blazor Server apps are hosted on an ASP.NET Core server in ASP.NET Razor format, while Blazor WebAssembly apps are Single-page apps that are downloaded to the client's web browser before running.

Numerical libraries

Open-source numerical libraries

AForge.NET

This is a computer vision and artificial intelligence library. It implements a number of genetic, fuzzy logic and machine learning algorithms with several architectures of artificial neural networks with corresponding training algorithms.

ALGLIB

This is a cross-platform open source numerical analysis and data processing library. It consists of algorithm collections written in different programming languages (C++, C#, FreePascal, Delphi, VBA) and has dual licensing – commercial and GPL.

Math.NET Numerics

This library aims to provide methods and algorithms for numerical computations in science, engineering and everyday use. Covered topics include special functions, linear algebra, probability models, random numbers, interpolation, integral transforms and more. MIT/X11 license. [10]


Meta.Numerics

This is a library for advanced scientific computation in the .NET Framework.

Proprietary numerical libraries

ILNumerics.Net

This is a high performance, typesafe numerical array set of classes and functions for general math, FFT and linear algebra. The library, developed for .NET/Mono, aims to provide 32- and 64-bit script-like syntax in C#, 2D & 3D plot controls, and efficient memory management. It is released under GPLv3 or commercial license. [10]

Measurement Studio

This is a integrated suite of UI controls and class libraries for use in developing test and measurement applications. The analysis class libraries provide various digital signal processing, signal filtering, signal generation, peak detection, and other general mathematical functionality.

NMath

This is a numerical component library for the .NET platform developed by CenterSpace Software. It includes signal processing (FFT) classes, a linear algebra (LAPACK & BLAS) framework, and a statistics package. [10]

3D graphics

Open-source 3D graphics

Open Toolkit (OpenTK)

This is a low-level C# binding for OpenGL, OpenGL ES and OpenAL. It runs on Windows, Linux, Mac OS X, BSD, Android and iOS. It can be used standalone or integrated into a GUI.

Windows Presentation Foundation (WPF)

This is a graphical subsystem for rendering user interfaces, developed by Microsoft. It also contains a 3D rendering engine. In addition, interactive 2D content can be overlaid on 3D surfaces natively. [11] [12] It only runs on Windows operating systems.

Proprietary 3D graphics

Unity

This is a cross-platform game engine developed by Unity Technologies [13] and used to develop video games for PC, consoles, mobile devices and websites.

Image processing

AForge.NET

This is a computer vision and artificial intelligence library. [14] [15] It implements a number of image processing algorithms and filters. It is released under the LGPLv3 and partly GPLv3 license. Majority of the library is written in C# and thus cross-platform.[ citation needed ] Functionality of AForge.NET has been extended by the Accord.NET library. [16] [17]

Accord.NET

This is another computer vision and artificial intelligence library, available under the Gnu Lesser General Public License, version 2.1. It is mainly written in C#.

Graphical user interface

Gtk#

These are C# wrappers around the underlying GTK+ and GNOME libraries, written in C and available on Linux, MacOS and Windows. [18]

Windows Forms (WinForms)

This is a Microsoft GUI framework. The original Microsoft implementation runs on Windows operating systems and provides access to Windows User Interface Common Controls by wrapping the Windows API in managed code. [19] The alternative Mono implementation is open source and cross-platform (it runs on Windows, Linux, Unix and OS X). It is mainly compatible with the original implementation but not completely. The library is written in C# in order to avoid Windows dependence. [20] At the Microsoft Connect event on December 4, 2018, Microsoft announced releasing of Windows Forms as open source project on GitHub. [21] It is released under the MIT License. Windows Forms has become available for projects targeting the .NET framework. However, the framework is still available only on Windows platform and the Mono incomplete implementation of WinForms remains the only cross-platform implementation. [22] [23]

Windows Presentation Foundation (WPF)

This is a graphical subsystem for rendering user interfaces in Windows-based applications by Microsoft. It is based on DirectX and employs XAML, an XML-based language, to define and link various interface elements. [24] WPF applications can be deployed as standalone desktop programs or hosted as an embedded object in a website.[ citation needed ] At the Microsoft Connect event on December 4, 2018, Microsoft announced releasing of WPF as open source project on GitHub. [21] It is released under the MIT License. Windows Presentation Foundation has become available for projects targeting the .NET framework. However, the system is still available only on Windows platform. [22] [23]

Windows UI Library (WinUI)

This is a set of Microsoft UI controls and features for the Universal Windows Platform (UWP). At the Microsoft Connect event on December 4, 2018, Microsoft announced releasing of WinUI as open source project on GitHub. [21] WinUI has become available for projects targeting the .NET framework. It is released under the MIT License. However, the library is still available only on Windows platform. [22] [23]

Xamarin.Forms

This is a cross-platform UI toolkit for development of native user interfaces that can be run on macOS, iOS, Android, and Universal Windows Platform apps. [25] [26] [18]

.NET Multi-platform App UI (.NET MAUI)

This is a cross-platform UI toolkit announced in May 2020 that originated as a fork of Xamarin.Forms and that can run on Android, iOS, Linux, macOS, Tizen, and Windows. .NET MAUI will run on .NET 6 and later. [27] [28] [29] The source code is licensed under MIT License and available on GitHub. [28]

Avalonia

This is an open-source cross-platform UI toolkit for development of user interfaces that can be run on Windows, Linux, macOS, iOS, Android, and WebAssembly. The source code is licensed under MIT License and available on GitHub [30]

Quality assurance

NUnit

This is an open source unit testing framework for .NET, written in C# and thus cross-platform. It is one of many programs in the xUnit family. Licensed under MIT License.

Object–relational mapping

.NET Framework natively provides utilities for object–relational mapping [31] through ADO.NET, a part of the .NET stack since version 1.0. In the earlier years of .NET development, a number of third-party object–relational libraries emerged in order to fill some perceived gaps in the framework. [32] [33] [34] As the framework evolved, additional object–relational tools were added, such as the Entity Framework and LINQ to SQL, both introduced in .NET Framework 3.5. These tools reduced the significance and popularity of third-party object–relational libraries.

Entity Framework

This is an open source [35] object–relational mapping (ORM) framework for ADO.NET. It was a part of .NET Framework, but since Entity framework version 6 it is separated from .NET framework.

NHibernate

NHibernate is an object–relational mapper for the .NET platform.

Notes

  1. 1 2 3 Nuget mistakenly believes that .NET Framework 4.6.1 adheres to .NET Standard version 1.5 through 2.0. [7] [8]
  2. There are no plans for the .NET Framework to support .NET Standard 2.1
  3. 1 2 3 4 5 Microsoft has removed Windows 8, Windows 8.1, Windows Phone 8 and Windows Phone 8.1 from its tables, as they are deprecated. [lower-alpha 4] .NET Foundation has only removed Windows Phone 8.0 and 8.1. [lower-alpha 5]
  4. "Update .NET Standard table (#10697) · dotnet/Docs@619885c". GitHub .
  5. "Remove deprecated platforms · dotnet/Standard@8a5b1ff". GitHub .

Related Research Articles

In computing, cross-platform software is computer software that is designed to work in several computing platforms. Some cross-platform software requires a separate build for each platform, but some can be directly run on any platform without special preparation, being written in an interpreted language or compiled to portable bytecode for which the interpreters or run-time packages are common or standard components of all supported platforms.

The Shared Source Common Language Infrastructure (SSCLI), previously codenamed Rotor, is Microsoft's shared source implementation of the CLI, the core of .NET. Although the SSCLI is not suitable for commercial use due to its license, it does make it possible for programmers to examine the implementation details of many .NET libraries and to create modified CLI versions. Microsoft provides the Shared Source CLI as a reference CLI implementation suitable for educational use.

<span class="mw-page-title-main">Windows Forms</span> Graphical user interface software library

Windows Forms (WinForms) is a free and open-source graphical (GUI) class library included as a part of Microsoft .NET, .NET Framework or Mono, providing a platform to write client applications for desktop, laptop, and tablet PCs. While it is seen as a replacement for the earlier and more complex C++ based Microsoft Foundation Class Library, it does not offer a comparable paradigm and only acts as a platform for the user interface tier in a multi-tier solution.

Windows Presentation Foundation (WPF) is a free and open-source graphical subsystem originally developed by Microsoft for rendering user interfaces in Windows-based applications. WPF, previously known as "Avalon", was initially released as part of .NET Framework 3.0 in 2006. WPF uses DirectX and attempts to provide a consistent programming model for building applications. It separates the user interface from business logic, and resembles similar XML-oriented object models, such as those implemented in XUL and SVG.

Comparison of the Java and .NET platforms.

An embedded database system is a database management system (DBMS) which is tightly integrated with an application software; it is embedded in the application. It is a broad technology category that includes:

<span class="mw-page-title-main">.NET Framework</span> Software platform developed by Microsoft

The .NET Framework is a proprietary software framework developed by Microsoft that runs primarily on Microsoft Windows. It was the predominant implementation of the Common Language Infrastructure (CLI) until being superseded by the cross-platform .NET project. It includes a large class library called Framework Class Library (FCL) and provides language interoperability across several programming languages. Programs written for .NET Framework execute in a software environment named the Common Language Runtime (CLR). The CLR is an application virtual machine that provides services such as security, memory management, and exception handling. As such, computer code written using .NET Framework is called "managed code". FCL and CLR together constitute the .NET Framework.

<span class="mw-page-title-main">Xamarin</span> American software company

Xamarin is a Microsoft-owned San Francisco-based software company founded in May 2011 by the engineers that created Mono, Xamarin.Android and Xamarin.iOS, which are cross-platform implementations of the Common Language Infrastructure (CLI) and Common Language Specifications.

Windows Runtime (WinRT) is a platform-agnostic component and application architecture first introduced in Windows 8 and Windows Server 2012 in 2012. It is implemented in C++ and officially supports development in C++, Rust/WinRT, Python/WinRT, JavaScript-TypeScript, and the managed code languages C# and Visual Basic (.NET) (VB.NET).

<span class="mw-page-title-main">Mono (software)</span> Computer software project

Mono is a free and open-source .NET Framework-compatible software framework. Originally by Ximian, it was later acquired by Novell, and is now being led by Xamarin, a subsidiary of Microsoft and the .NET Foundation. Mono can be run on many software systems.

Windows UI Library is a user interface API that is part of the Windows Runtime programming model that forms the backbone of Universal Windows Platform apps for the Windows 8, Windows 8.1, Windows 10 and Windows Phone 8.1 operating systems. It enables declaring user interfaces using Extensible Application Markup Language (XAML) technology.

MonoGame is a free and open source C# framework used by game developers to make games for multiple platforms and other systems. It is also used to make Windows and Windows Phone games run on other systems. It supports iOS, Android, macOS, tvOS, Linux, PlayStation 4, PlayStation 5, PlayStation Vita, Xbox One and Nintendo Switch. It implements the Microsoft XNA 4 application programming interface (API). It has been used for several games, including Bastion, Celeste,Fez and Stardew Valley.

ASP.NET Core is an open-source modular web-application framework. It is a redesign of ASP.NET that unites the previously separate ASP.NET MVC and ASP.NET Web API into a single programming model. Despite being a new framework, built on a new web stack, it does have a high degree of concept compatibility with ASP.NET. The ASP.NET Core framework supports side-by-side versioning so that different applications being developed on a single machine can target different versions of ASP.NET Core. This was not possible with previous versions of ASP.NET. ASP.NET Core initially ran on both the Windows-only .NET Framework and the cross-platform .NET. However, support for the .NET Framework was dropped beginning with ASP.Net Core 3.0.

<span class="mw-page-title-main">.NET</span> Free and open-source software platform developed by Microsoft

The .NET platform is a free and open-source, managed computer software framework for Windows, Linux, and macOS operating systems. The project is mainly developed by Microsoft employees by way of the .NET Foundation and is released under an MIT License.

Universal Windows Platform (UWP) is a computing platform created by Microsoft and introduced in Windows 10. The purpose of this platform is to help develop universal apps that run on Windows 10, Windows 10 Mobile (discontinued), Windows 11, Xbox One, Xbox Series X/S, and HoloLens without the need to be rewritten for each. It supports Windows app development using C++, C#, VB.NET, and XAML. The API is implemented in C++, and supported in C++, VB.NET, C#, F# and JavaScript. Designed as an extension to the Windows Runtime (WinRT) platform introduced in Windows Server 2012 and Windows 8, UWP allows developers to create apps that will potentially run on multiple types of devices.

Microsoft, a technology company historically known for its opposition to the open source software paradigm, turned to embrace the approach in the 2010s. From the 1970s through 2000s under CEOs Bill Gates and Steve Ballmer, Microsoft viewed the community creation and sharing of communal code, later to be known as free and open source software, as a threat to its business, and both executives spoke negatively against it. In the 2010s, as the industry turned towards cloud, embedded, and mobile computing—technologies powered by open source advances—CEO Satya Nadella led Microsoft towards open source adoption although Microsoft's traditional Windows business continued to grow throughout this period generating revenues of 26.8 billion in the third quarter of 2018, while Microsoft's Azure cloud revenues nearly doubled.

<span class="mw-page-title-main">PeachPie</span>

PeachPie is an open-source PHP language compiler and runtime for the .NET Framework and .NET. It is built on top of the Microsoft Roslyn compiler platform and is based on the first-generation Phalanger project. PeachPie compiles source code written in PHP to CIL byte-code. PeachPie takes advantage of the JIT compiler component of the .NET Framework in order to handle the beginning of the compilation process. Its purpose is not to generate or optimize native code, but rather to compile PHP scripts into .NET assemblies containing CIL code and meta-data. In July 2017, the project became a member of the .NET Foundation.

Avalonia is a free and open-source .NET cross-platform XAML-based UI framework inspired by WPF/UWP and distributed under the MIT License.

References

  1. gewarren. "Common Language Runtime (CLR) overview - .NET". docs.microsoft.com. Retrieved 2022-08-07.
  2. Hanselman, Scott (4 December 2018). "Announcing WPF, WinForms, and WinUI are going Open Source". Scott Hanselman's Blog2.
  3. Lander, Richard (6 May 2019). "Introducing .NET 5". .NET Blog. Microsoft.
  4. "Announcing .NET 5.0". .NET Blog. 2020-11-10. Retrieved 2021-03-14.
  5. Hanselman, Scott (2 April 2012). ".NET Versioning and Multi-Targeting - .NET 4.5 is an in-place upgrade to .NET 4.0". Scott Hanselman's Blog.
  6. "Multi-Targeting Guidelines for Tools for Managed Code [Mircea]". BCL Team Blog. Microsoft. 11 April 2012.
  7. 1 2 ".NET Standard". docs.microsoft.com. Microsoft.
  8. 1 2 "Versions.md". dotnet/standard repo. .NET Foundation. 3 April 2019.
  9. "Introduction to ASP.NET 5 — ASP.NET 0.0.1 documentation". asp.net.
  10. 1 2 3 "Guide - Math and Statistics Programming with F#". fsharp.org. Archived from the original on 2016-04-25. Retrieved 2016-04-25.
  11. Introducing Windows Presentation Foundation
  12. "What's New in WPF 3.5? Here's Fifteen Cool Features..." Retrieved 2007-10-14.
  13. Riccitiello, John (October 23, 2014). "John Riccitiello sets out to identify the engine of growth for Unity Technologies (interview)". VentureBeat (Interview). Interviewed by Dean Takahashi. Retrieved January 18, 2015.
  14. S M Hassan Ahmed; Todd C Alexander; Georgios Anagnostopoulos (May 2015). "Real-time, Static and Dynamic Hand Gesture Recognition for Human-Computer Interaction". University of Miami. Retrieved 2018-11-26.
  15. Suraj Verma; Prashant Pillai; Yim-Fun Hu (2012). "Development of an eye-tracking control system using AForge.NET framework". International Journal of Intelligent Systems Technologies and Applications. 11 (3/4). Inderscience Enterprises: 286. doi:10.1504/IJISTA.2012.052485. Archived from the original on 2018-11-26. Retrieved 2018-11-26.
  16. Souza, César (20 May 2010). "Accord.NET Framework – An extension to AForge.NET". Archived from the original on 2018-11-16. Retrieved 2018-11-26.
  17. "Framework Modules". Accord.NET Framework documetation. Archived from the original on 2018-11-26. Retrieved 2018-11-26.
  18. 1 2 Lex Li (3 July 2017). "The Story About .NET Cross Platform UI Frameworks". 3 July 2017. Archived from the original on 2019-01-10. Retrieved 2018-11-26.{{cite web}}: CS1 maint: bot: original URL status unknown (link)
  19. "C# 4.0 Unleashed By Bart De Smet. Sams Publishing, Jan 4, 2011 Chapter 5".
  20. "GUI Toolkits". Mono site. 21 April 2016. Archived from the original on 2016-04-02. Retrieved 2016-04-21.
  21. 1 2 3 Gallo, Kevin (2018-12-04). "Announcing Open Source of WPF, Windows Forms, and WinUI at Microsoft Connect(); 2018". Windows Developer Blog. Official Microsoft Blog. Retrieved 2021-10-09.
  22. 1 2 3 Martin, Jeff (4 December 2018). "Microsoft Open Sources WPF, WinForms, and WinUI". InfoQ. Retrieved 2018-12-06.
  23. 1 2 3 Hanselman, Scott (4 December 2018). "Announcing WPF, WinForms, and WinUI are going Open Source" . Retrieved 2018-12-06.
  24. MSDN.NET Development: WPF: XAML Overview
  25. "Xamarin.Forms Quickstart". Microsoft Docs. Microsoft. Retrieved 2018-11-26.
  26. Nathan Williams. "Xamarin.Forms is Much More Capable Than You Think". ArcTouch. Archived from the original on 2018-11-26. Retrieved 2018-11-26.
  27. "Introducing .NET Multi-platform App UI". .NET Blog. 2020-05-19. Retrieved 2020-05-28.
  28. 1 2 "dotnet/maui". GitHub. Retrieved 2020-05-28.
  29. "Xamarin Updates From Microsoft Build 2020". Xamarin Blog. 2020-05-19. Retrieved 2020-05-28.
  30. Avalonia on GitHub
  31. Ambler, Scott. "Mapping Objects to Relational Databases: O/R Mapping In Detail". Agile Data. Archived from the original on 2018-11-03. Retrieved 2018-11-03.
  32. Maksimovic, Zoran (November 2, 2017). "Microsoft.NET O/R mapper: choose your own!". agile-code.com. Archived from the original on 2018-11-03. Retrieved 2018-11-03.
  33. "List of ORM's available for .NET". Bala.NET Tips. WordPress. February 28, 2014. Retrieved 2018-11-03.
  34. "Object Relational Tool Comparison Dot Net". WikiWikiWeb. April 10, 2014. Archived from the original on 2018-11-03. Retrieved 2018-11-03.
  35. Krill, Paul (20 July 2012). "Microsoft open-sources Entity Framework". InfoWorld. Retrieved 24 July 2012.

General:

Numerical libraries:

Data: