This article contains a list of
libraries that can be used in
.NET languages
CLI languages are computer programming languages that are used to produce libraries and programs that conform to the Common Language Infrastructure (CLI) specifications. With some notable exceptions, most CLI languages compile entirely to the Com ...
. These languages require
.NET Framework
The .NET Framework (pronounced as "''dot net"'') 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 bein ...
,
Mono, or
.NET, which provide a basis for
software development
Software development is the process of conceiving, specifying, designing, programming, documenting, testing, and bug fixing involved in creating and maintaining applications, frameworks, or other software components. Software development invol ...
, platform independence, language interoperability and extensive framework libraries.
Standard Libraries
In computer programming, a standard library is the library made available across implementations of a programming language. These libraries are conventionally described in programming language specifications; however, contents of a language's as ...
(including the
Base Class Library) are not included in this article.
Preamble
Apps created with .NET Framework or .NET run in a software environment known as the
Common Language Runtime
The Common Language Runtime (CLR), the virtual machine component of Microsoft .NET Framework, manages the execution of .NET programs. Just-in-time compilation converts the managed code (compiled intermediate language code) into machine instructio ...
(CLR), an
application virtual machine
In computing, a virtual machine (VM) is the virtualization/ emulation of a computer system. Virtual machines are based on computer architectures and provide functionality of a physical computer. Their implementations may involve specialized h ...
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
.NET CLI-compliant languages can operate on the same kind of data structures. Therefore, all CLI-compliant languages can use FCL and other .NET libraries that are written in one of the CLI compliant languages. When the source code of a CLI-compliant language is compiled, the compiler generates platform-independent code in the
Common Intermediate Language (CIL, also referred to as
bytecode
Bytecode (also called portable code or p-code) is a form of instruction set designed for efficient execution by a software interpreter. Unlike human-readable source code, bytecodes are compact numeric codes, constants, and references (norma ...
), 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
The Native Image Generator, or simply NGen, is the ahead-of-time compilation (AOT) service of the .NET Framework. It allows a CLI assembly to be pre-compiled instead of letting the Common Language Runtime (CLR) do a just-in-time compilation ( ...
(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
Com or COM may refer to:
Computing
* COM (hardware interface), a serial port interface on IBM PC-compatible computers
* COM file, or .com file, short for "command", a file extension for an executable file in MS-DOS
* .com, an Internet top-level d ...
. 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.
.NET implementations
There are four primary .NET implementations that are actively developed and maintained:
*
.NET Framework
The .NET Framework (pronounced as "''dot net"'') 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 bein ...
: The original .NET implementation that has existed since 2002. While not yet discontinued, Microsoft does not plan on releasing its next major version, 5.0.
*
Mono: A cross-platform implementation of .NET Framework by
Ximian, introduced in 2004. It is free and open-source. It is now developed by
Xamarin, a subsidiary of Microsoft.
*
Universal Windows Platform (UWP): An implementation of .NET used for building
UWP apps. It's designed to unify development for different targeted types of devices, including PCs, tablets, phablets, phones, and the
Xbox.
*
.NET: A
cross-platform re-implementation of .NET Framework, introduced in 2016 and initially called ''.NET Core''. It is
free and open-source
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
. .NET superseded .NET Framework with the release of .NET 5.
Each implementation of .NET includes the following components:
* One or more runtime environments, e.g.
CLR for .NET Framework and
CoreCLR
The domain name net is a generic top-level domain (gTLD) used in the Domain Name System of the Internet. The name is derived from the word ''network'', indicating it was originally intended for organizations involved in networking technologies ...
for .NET
* A class library
The .NET Standard is a set of common
APIs
Apis or APIS may refer to:
* Apis (deity), an ancient Egyptian god
* Apis (Greek mythology), several different figures in Greek mythology
* Apis (city), an ancient seaport town on the northern coast of Africa
**Kom el-Hisn, a different Egyptian ci ...
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. 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.
Web frameworks
;
ASP.NET: a 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). It provides separate patterns for developing web applications ASP.NET MVC, ASP.NET Web API, and ASP.NET Web Pages (a platform using only
Razor pages), which have merged into a unified MVC 6.
;
ASP.NET Core
ASP.NET Core is a free and open-source web framework and successor to ASP.NET, developed by Microsoft. It is a modular framework that runs on both the full .NET Framework, on Windows, and the cross-platform .NET. However, ASP.NET Core version 3 on ...
: a successor and re-implementation of ASP.NET as a modular web framework, together with other frameworks like Entity Framework. The framework uses the new open-source .NET Compiler Platform (codename "Roslyn") and is cross platform.
;
Blazor
Blazor is a free and open-source web framework that enables developers to create web apps using C# and HTML. It is being developed by Microsoft.
Overview
Five different editions of Blazor apps have been announced.
Blazor Server: These apps ...
: a
free and open-source
Free and open-source software (FOSS) is a term used to refer to groups of software consisting of both free software and open-source software where anyone is freely licensed to use, copy, study, and change the software in any way, and the source ...
web framework that enables developers to create
Web apps using
C# and
HTML. Blazor Server apps are hosted on an
ASP.NET Core
ASP.NET Core is a free and open-source web framework and successor to ASP.NET, developed by Microsoft. It is a modular framework that runs on both the full .NET Framework, on Windows, and the cross-platform .NET. However, ASP.NET Core version 3 on ...
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: 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: 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
Math.NET Numerics is an open-source numerical library for .NET and Mono, written in C# and F#. It features functionality similar to BLAS and LAPACK.
History
Math.NET Numerics started 2009 by merging code and teams of dnAnalytics with Math.NE ...
: aims to provide methods and algorithms for numerical computations in science, engineering and every day use. Covered topics include special functions, linear algebra, probability models, random numbers, interpolation, integral transforms and more. MIT/X11 license.
;
Meta.Numerics
Meta.Numerics is an open-source software, open-source library for advanced scientific computing on the Microsoft .NET, .NET platform. It provides an object-oriented Application Programming Interface, API supporting advanced functions, matrix algeb ...
: is a library for advanced scientific computation in the .NET Framework.
Proprietary numerical libraries
;
ILNumerics.Net
ILNumerics is a mathematical class library for Common Language Infrastructure (CLI) developers and a domain specific language (DSL) for the implementation of numerical algorithms on the .NET platform. While algebra systems with graphical user ...
: a commercial high performance, typesafe numerical array classes and functions for general math, FFT and linear algebra, aims .NET/mono, 32&64 bit, script-like syntax in C#, 2D & 3D plot controls, efficient memory management. Released under GPLv3 or commercial license.
;
Measurement Studio: a commercial integrated suite 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: Commercial numerical component libraries for the .NET platform by
CenterSpace Software, including signal processing (FFT) classes, a linear algebra (LAPACK & BLAS) framework, and a statistics package.
3D graphics
Open-source 3D graphics
;
Open Toolkit (OpenTK): a low-level C# binding for
OpenGL
OpenGL (Open Graphics Library) is a cross-language, cross-platform application programming interface (API) for rendering 2D and 3D vector graphics. The API is typically used to interact with a graphics processing unit (GPU), to achieve hardwa ...
,
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): 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.
It only runs on Windows operating systems.
Proprietary 3D graphics
;
Unity: a
cross-platform game engine
A game engine is a software framework primarily designed for the development of video games and generally includes relevant libraries and support programs. The "engine" terminology is similar to the term "software engine" used in the software i ...
developed by
Unity Technologies and used to develop
video games for
PC,
consoles,
mobile devices and
websites.
Image processing
;
AForge.NET: a computer vision and artificial intelligence library.
It implements a number of image processing algorithms and filters. It is released under the
LGPLv3
The GNU Lesser General Public License (LGPL) is a free-software license published by the Free Software Foundation (FSF). The license allows developers and companies to use and integrate a software component released under the LGPL into their own ...
and partly
GPLv3 license. Majority of the library is written in C# and thus cross-platform. Functionality of AForge.NET has been extended by the
Accord.NET library.
;
Accord.NET: 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#: C# wrappers around the underlying
GTK+
GTK (formerly GIMP ToolKit and GTK+) is a free and open-source cross-platform widget toolkit for creating graphical user interfaces (GUIs). It is licensed under the terms of the GNU Lesser General Public License, allowing both free and proprie ...
and
GNOME
A gnome is a mythological creature and diminutive spirit in Renaissance magic and alchemy, first introduced by Paracelsus in the 16th century and later adopted by more recent authors including those of modern fantasy literature. Its characte ...
libraries, written in
C and available on Linux, MacOS and Windows.
;
Windows Forms (WinForms): 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.
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.
:At the Microsoft Connect event on December 4, 2018,
Microsoft announced releasing of Windows Forms as open sourc
project on GitHub 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.
;
Windows Presentation Foundation (WPF): a graphical subsystem for rendering user interfaces in Windows-based applications by Microsoft. It is based on
DirectX
Microsoft DirectX is a collection of application programming interfaces (APIs) for handling tasks related to multimedia, especially game programming and video, on Microsoft platforms. Originally, the names of these APIs all began with "Direct", ...
and employs XAML, an XML-based language, to define and link various interface elements.
[MSDN.NET Development: WPF: XAML Overview]
/ref> WPF applications can be deployed as standalone desktop programs or hosted as an embedded object in a website.
:At the Microsoft Connect event on December 4, 2018, Microsoft announced releasing of WPF as open sourc
project on GitHub
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.
;Windows UI Library
Windows UI Library (WinUI codenamed "Jupiter", and also known as UWP XAML and WinRT XAML) is a user interface API that is part of the Windows Runtime programming model that forms the backbone of Universal Windows Platform apps (formerly known as ...
(WinUI): 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 sourc
project on GitHub
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.
;Xamarin.Forms
Xamarin is a Microsoft-owned San Francisco-based software company founded in May 2011 by the engineers that created Mono (software), Mono, Mono (software)#Xamarin.Android, Xamarin.Android (formerly Mono for Android) and Mono (software)#Xamarin.i ...
: a cross-platform UI toolkit for development of native user interfaces that can be run on macOS, iOS, Android, and Universal Windows Platform apps.
;.NET Multi-platform App UI
Xamarin is a Microsoft-owned San Francisco-based software company founded in May 2011 by the engineers that created Mono (software), Mono, Mono (software)#Xamarin.Android, Xamarin.Android (formerly Mono for Android) and Mono (software)#Xamarin.i ...
(.NET MAUI): 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
The domain name net is a generic top-level domain (gTLD) used in the Domain Name System of the Internet. The name is derived from the word ''network'', indicating it was originally intended for organizations involved in networking technologies ...
and later. The source code is licensed under MIT License and available on GitHub.
Quality assurance
; NUnit: an open source
Open source is source code that is made freely available for possible modification and redistribution. Products include permission to use the source code, design documents, or content of the product. The open-source model is a decentralized sof ...
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 through ADO.NET, a part of .NET stack since .NET 1.0. In addition, a number of third-party object–relational libraries have emerged, especially in earlier years of the .NET development, in order to fill some perceived gaps of the framework.
As the framework has evolved, additional object–relational tools were added, such as the Entity Framework included with the .NET Framework 3.5
Microsoft started development on the .NET Framework in the late 1990s originally under the name of Next Generation Windows Services (NGWS). By late 2001 the first beta versions of .NET 1.0 were released. The first version of .NET Framework was r ...
. LINQ to SQL was also introduced with .NET 3.5. This somehow reduced significance and popularity of third-party object–relational libraries.
; Entity Framework: an open source object–relational mapping (ORM) framework for ADO.NET. It was a part of .NET Framework
The .NET Framework (pronounced as "''dot net"'') 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 bein ...
, but since Entity framework version 6 it is separated from .NET framework.
; NHibernate:NHibernate is an object–relational mapper for the .NET platform.
Notes
References
External links
General:
.NET Open Source Developer Projects
a list maintained at GitHub
Numerical libraries:
The Math Forum - Math Libraries
an extensive list of mathematical libraries with short descriptions
Guide - Math and Statistics Programming with F#
Data:
Object Relational Mapping
Comparison of Object Relational Mapping Tools for the .NET Framework
{{Common Language Infrastructure
.NET software
Programming tools
.NET libraries and frameworks
Computer libraries
Numerical libraries
Graphics libraries
Free and open-source software