请输入您要查询的百科知识:

 

词条 List of .NET libraries and frameworks
释义

  1. Application development in .NET Framework

  2. Historical background

  3. Libraries and frameworks

      .NET implementations    Software frameworks    Web frameworks    Logging frameworks    Numerical libraries    Open-source numerical libraries    Proprietary numerical libraries    2D graphics    Open-source 2D graphics libraries    Proprietary 2D graphics libraries    3D graphics    Open-source 3D graphics libraries    Proprietary 3D graphics libraries    Image processing    Graphical user interface frameworks    Open-source GUI frameworks    Proprietary GUI frameworks    Security and identity management    Quality assurance    Object-relational mapping    Open source object-relational mapping tools    Proprietary object-relational mapping tools    Serialization and data formats  

  4. See also

  5. Notes

  6. References

  7. External links

This article contains a list of notable libraries that can be used in .NET languages. While the .NET framework provides a basis for application development, which provides platform independence, language interoperability and extensive framework libraries, the development ecosystem around .NET is dependent on user libraries that are developed independently of the framework.

Standard Libraries (CLI) (including the Base Class Library (BCL)) are not included in this article because they have a separate article.

Application development in .NET Framework

Programs written for .NET Framework execute in a software environment known as Common Language Runtime (CLR), an application virtual machine that provides services such as security, memory management, and exception handling. Framework includes a large class library called Framework Class Library (FCL), which together with CLR constitute the .NET framework.

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 the Framework Class Library and other .NET libraries that are written in one of the CLI compliant languages. When source code of a CLI compliant language is compiled, the compiler generates a platform independent code in the Common Intermediate Language (also referred to as bytecode), which is stored in CLI assemblies. When a .NET application is executed, the just-in-time compiler (JIT) turns the CIL code into platform specific machine code. To improve performance, the .NET Framework also comes with Native Image Generator (NGEN), which performs ahead-of-time compilation to machine code.

This architecture has several implications. The framework provides language interoperability (each language can use code written in other languages) across the .NET CLI compliant languages programming 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 any other CLI language. Moreover, applications that consist only of pure .NET assemblies, can be transferred to any platform that contains implementation of .NET framework and executed on that platform. For example, an application written for Microsoft .NET on Windows can also be executed on Mono (a cross platform alternative implementation of .NET) on Linux or macOS. Such applications are automatically cross-platform (or platform independent) to the extent to which the .NET framework itself is ported to different platforms.

Ability to transfer applications across platforms is extremely important for software developers, because in this way they can use the same code base for the application on any platform, enabling code reuse and avoiding code duplication. Both lead to reduced development and maintenance costs.

However, platform independence is only guaranteed in the described way when none of the assemblies constituting an application depends on any code that is not pure .NET code. Many .NET libraries, however, make use of native libraries (written e.g. in C or C++) or system calls through interoperability mechanisms such as COM interoperability and the P/Invoke feature, which makes possible to call native code and thus call into libraries written in compiled languages (as opposed to managed) such as C or C++.

In these cases, platform independence of applications written for the .NET framework also depends on the ability to transfer non-.NET libraries, on which application depends, to target platforms. Any additional such library may add significantly to the effort necessary to transfer the application to other platforms. Sometimes, the best solution is to re-implement the parts of application that depend on such a library for each targeted platform. In many cases, the vast majority of the application's code base can be easily transferred across platforms, and only small specific portions of code dependent on problematic libraries must be re-implemented for each platform. Sometimes, a special compatibility layer is introduced that provides a uniform API to the platform dependent parts of code. Then, even if the higher level code heavily depends on platform dependent parts, dependence is resolved through API calls that are the same on all platforms, and the same high level code can still be used on different target platforms.

A notable example is the Windows Forms graphical (GUI) class library. The library provides access to Windows User Interface Common Controls by wrapping the Windows API in managed code.[1] The library is therefore not easily transferred to platforms other than Windows. In spite of that, the cross-platform .NET implementation Mono implements the library. Because of that, an application that depends on Windows Forms, can be ported to other forms by using the Mono runtime on which the Windows Forms library is implemented (beside Windows, this includes Unix and OSX). The Mono's implementation of the library is written in C# in order to avoid Windows dependence.[2]

Most of the Windows Forms API works on Mono, except for some minor incompatibilities and implementation bugs. However, many .NET libraries that were written on Windows and depend on Windows Forms, also make direct P/Invoke calls straight to the Windows API and bypass the Windows Forms API (this is sometimes done to avoid limitations of the Windows Forms). Such libraries will be broken when transferred to platforms other than Windows, although Windows Forms itself is available on these platforms via Mono implementation. For a GUI class library, the Mono project endorses use of the GTK# library,{{citation needed|date=April 2016}} which is a .NET binding for the Gtk+ toolkit written in C.

GUI libraries are not the only critical area of interest for .NET developers. Other libraries that may be problematic include 3D graphics libraries, sound and video libraries and device dependent libraries in general. While some areas are very well covered by core .NET libraries (such as database connectivity, file I/O, sockets, HTTP, XML manipulation, standard cryptography), the others (such as numerical libraries, general parsing libraries) are easy to implement in pure .NET but may be under represented as compared to availability of corresponding native libraries. For developers of both proprietary and open source software (including free software), licensing information is also critically important. Entries in the list therefore provide information about the scope of the listed libraries, main dependencies (especially when these affect platform dependence), and licensing information.

Historical background

The .NET Framework has long supported cross-platform software development. The framework has been designed from the beginning for language interoperability, and parts of it were standardized in open standard (The Common Language Infrastructure and framework's most used programming language, C#). The original framework was first implemented only on Windows operating systems. Microsoft, the framework developer, and its partners, were working towards making their patents that cover some .NET - implemented technologies essential for framework implementation, available under "reasonable and non-discriminatory terms", which evolved into several patent promises issued by Microsoft. This made alternative third party implementations of the framework possible such as Mono, Portable.NET, and emulation CrossNet.[3]

In spite of that, it has long been a concern within the Open source community that using alternative .NET implementations for cross-platform development, especially of free software, is unsafe because of the possibility of Microsoft patent claims against such implementations. The Free Software Foundation's Richard Stallman has openly opposed inclusion of C# implementations in the default installation of GNU/Linux distributions and stated that they (the community) should discourage people from writing programs in C#. Primary concerns were parts of the framework implementations that were not subject to standards and were not explicitly included in Microsoft's patent promises.

The 2010s saw some significant shifts in Microsoft's approach towards the Open software community. The company open sourced the .NET Compiler Platform ("Roslyn") and the ASP.NET in April 2014, and later the .NET Core (open sourced on November 2014[4]) and other software. In February 2016, Microsoft acquired Xamarin, developer of Mono, an open source and cross platform implementation of .NET. On March 31, 2016 Microsoft announced at Microsoft Build that they will completely re-license Mono under the MIT license.[5] Microsoft issued the Patent Promise for Mono stating that they won't assert any "applicable patents" against parties that are "using, selling, offering for sale, importing, or distributing Mono".[6][7] It was also announced that the Mono Project was contributed to the .NET Foundation, a nonprofit organization established by Microsoft in March 2014 to improve open-source software development and collaboration around the .NET Framework.[8]

In light of these developments, a strong open source community has begun to develop around the .NET framework (especially on GitHub), starting a number of libraries and software projects[9] targeting the .NET framework for its cross platform character.

Libraries and frameworks

{{Multiple issues|section=yes|{{Expand section|date=April 2016}}{{Refimprove section|date=April 2016}}
}}

This section lists a number of notable .NET libraries (both open source and proprietary) arranged by topics.

.NET implementations

{{Anchor|.NET Standard}}{{Redirect|.NET Standard|open specification (technical standard) behind .NET standardized by ISO and ECMA|ECMA 335}}

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

.NET Standard
The .NET Standard is a set of APIs that are implemented per the Base Class Library of any .NET implementation. A library can target a version of the .NET Standard (rather than an implementation) 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.
Implementation.NET Standard Versions[10][11]
1.0 1.1 1.2 1.3 1.4 1.5 1.6 2.0 2.1
.NET Core 1.0 1.0 1.0 1.0 1.0 1.0 1.0 2.0 3.0
.NET Framework 4.5 4.5 4.5.1 4.6 4.6.1 4.6.1 4.6.1 4.6.1 N/A[12][13]
Mono 4.6 4.6 4.6 4.6 4.6 4.6 4.6 5.4 6.2
Xamarin.iOS 10.0 10.0 10.0 10.0 10.0 10.0 10.0 10.14 12.12
Xamarin.Mac 3.0 3.0 3.0 3.0 3.0 3.0 3.0 3.8 5.12
Xamarin.Android 7.0 7.0 7.0 7.0 7.0 7.0 7.0 8.0 9.3
Universal Windows Platform 10.0 10.0 10.0 10.0 10.0 10.0.16299 10.0.16299 10.0.16299 TBD
Windows (8) 8.0 8.0 8.1
Windows Phone 8.1 8.1 8.1
Windows Phone Silverlight 8.0
Unity 2018.1 2018.1 2018.1 2018.1 2018.1 2018.1 2018.1 2018.1 TBD

The table lists the minimum supported implementation version for each version of .NET Standard.

//.NET Framework">.NET Framework: the original .NET implementation that has existed since 2002.
//Mono (software)">Mono: an open source cross-platform implementation of .NET Framework. It runs on Linux, Mac OS, Android, and Windows.
//.NET Core">.NET Core: a re-implementation of .NET Framework with the goal of making it cross-platform.
//Universal Windows Platform">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.

Each implementation of .NET includes the following components:

  • One or more runtimes. Examples are CLR for .NET Framework and CoreCLR for .NET Core.
  • A class library. Class library of each implementation must implements the .NET Standard, but may also implement additional APIs. Examples are .NET Framework Base Class Library and .NET Core Base Class Library.

Optionally, implementations can also include:

  • One or more application frameworks. Examples are ASP.NET (included in .NET Framework and .NET Core), Windows Forms (included in .NET Framework, Mono and in .NET Core since version 3.0), and Windows Presentation Foundation (WPF) (included in the .NET Framework and in the .NET Core since version 3.0).
  • Development tools. Some development tools are shared among multiple implementations. Examples are Visual Studio Code, .NET Software Development Kit (SDK), or NuGet.

Software frameworks

Native
[https://csnative.codeplex.com/ C# Native] or csnative compiles C# code to machine code.
SharpLang
[https://github.com/xen2/SharpLang SharpLang] compiles C# and other .NET languages to native machine code, using LLVM as a backend.
Cosmos
[https://github.com/CosmosOS/Cosmos Cosmos] is a C# Open Source Managed Operating System, an operating system "construction kit".
Fling OS
Fling OS is a C#-based operating system designed for learning low-level development.
MOSA Project
[https://github.com/mosa/MOSA-Project/ MOSA Project] - Managed Operating System Alliance Project - a C# Operating System.

Web frameworks

//ASP.NET">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.[14]
//ASP.NET Core">ASP.NET Core: 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: a web UI framework based on C#, Razor, and HTML that runs in the web browsers via WebAssembly. Blazor was designed to simplify the task of building fast single-page applications that run in any browser. It enables web developers to write .NET-based web apps that run client-side in web browsers using open web standards.
Ooui
a web framework for programming interactive user interfaces written in C# that run in a web browser. Ooui can target WebAssembly (WASM), enabling Xamarin.Forms applications to be deployed in WASM and run in-browser without the need for a server-side scripting.[15]

Logging frameworks

[https
//github.com/apache/logging-log4net log4net]: one of the oldest logging libraries and frameworks for .NET. It was created as port of the Java framework log4j, and development later continued under the Apache Logging Services project. The library pioneered development of standard logging concepts such as log levels, loggers and appenders. It is released under the Apache License 2.0. At the current stage, log4net is a stable and mature library with a slow release cycle.[16][17]
[https
//nlog-project.org/ NLog]: a .NET open-source logging framework that was first released in 2006. It is being actively developed and is released under the BSD License.[16]
[https
//serilog.net/ Seriog]: an open-source .NET logging library created in 2013. It is distinguished by supporting true structured logging (beyond just transforming an object value to text) out of the box. It is released under the Apache License 2.0.[16]

Numerical libraries

{{Main|List of Numerical Libraries for .NET}}{{Expand section|date=April 2016}}

Open-source numerical libraries

//AForge.NET">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">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.
[https
//diffsharp.github.io/DiffSharp/ DiffSharp]: an automatic differentiation library for exact and efficient calculation of derivatives. It includes symbolic and numerical differentiation. Released under GPLv3.[20]
[https
//gbaydin.github.io/FsAlg/ FsAlg]: a lightweight linear algebra library that supports generic types, implemented in F#. Released under the BSD License.[20]
//IMSL Numerical Libraries for .NET">IMSL Numerical Libraries for .NET: a commercial library of mathematical, statistical, data mining, financial and charting classes written in C#.
NeuronDotNet
a GPL-licensed artificial neural network library entirely written in C#. Because it only depends on the core .NET assemblies, it is easily portable across platforms.
//suanshu.net">suanshu.net: a large collection of numerical algorithms by Numerical Method Inc., which includes linear algebra, (advanced) optimization, interpolation, Markov model, principal component analysis, time series analysis, hypothesis testing, regressions, statistics, ordinary and partial differential equation solvers.
//Math.NET Numerics">Math.NET Numerics: 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.[18]
//Meta.Numerics">Meta.Numerics: is a library for advanced scientific computation in the .NET Framework.
NAG
a collection of mathematical and statistical routines.
//NLinear">NLinear: a generic linear algebra toolkit in C# compatible with Silverlight.

Proprietary numerical libraries

[https
//developer.nvidia.com/alea-gpu Alea GPU]: a framework for developing GPU-accelerated algorithms in F# on .NET and Mono.[18]
//ILNumerics.Net">ILNumerics.Net: 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.[18]
//Measurement Studio">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.
[https
//msdn.microsoft.com/en-us/devlabs/hh145003.aspx Microsoft Solver Foundation]: a .NET package for designing and optimizing mathematical models.[18]
//NMath">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.[18]
//Extreme Optimization Numerical Libraries">Extreme Optimization Numerical Libraries: a commercial collection of mathematical and statistical classes for Microsoft .NET. It includes a large selection of standard algorithms from matrix factorization, function optimization, numerical integration, K-means clustering, and principal component analysis (PCA).[18]
//suanshu.net">suanshu.net: a large collection of numerical algorithms by Numerical Method Inc., which includes linear algebra, (advanced) optimization, interpolation, Markov model, principal component analysis, time series analysis, hypothesis testing, regressions, statistics, ordinary and partial differential equation solvers.

2D graphics

Open-source 2D graphics libraries

//netcontrols.org/nplot/wiki/'>NPlot: a free, open source and cross platform charting library for .NET, released under the 3-clause-BSD license. Library includes classes for adding graphs to Windows Forms and ASP.NET, or to generate bitmaps.[19]
//www.oxyplot.org/'>OxyPlot: a cross-platform charting library for .NET and supports WinForms, WPF, Xamarin and UWP platforms, released under the MIT license.[20]
//www.carlosag.net/Tools/WebChart/'>WebCharts: a web control for creating charts that render as images(png, jpg, gif, etc.).[21]
//zedgraph.sourceforge.net/'>ZedGraph: a .NET 2D charting library for drawing line, bar, and pie Charts, released under the LGPL license. Library provides a high degree of flexibility, where very many aspects of how graphs will be displayed can be configured.[22][23][24][25]

Proprietary 2D graphics libraries

//manufaktura-controls.com'>Manufaktura Controls: a set of libraries for drawing music scores in desktop, mobile and web applications.

3D graphics

Open-source 3D graphics libraries

//www.vtk.org/Wiki/VTK/CSharp/ActiViz.NET'>ActiViz.NET: consists of C# wrappers around the VTK library. The source code is released under the BSD license.[26]
[https
//github.com/Blotch3D/Blotch3D Blotch3D]: adds real-time 3D graphics; can be built for multiple platforms. Blotch3D sits on top of MonoGame and retains all its features. It is released under the Microsoft Public License.
//helix-toolkit.org/'>Helix Toolkit: a 3D graphics toolkit that builds on and extends 3D capabilities of the WPF. Due to its dependence on WPF, the toolkit is limited to Windows platforms. It is released under the MIT license.[27][28][29]
//www.monogame.net/'>MonoGame: free software used by game developers to make their Windows and Windows Phone games run on other systems. It currently supports OS X, Linux, iOS, Android, PlayStation Mobile, and the OUYA console. On Microsoft platforms it uses SharpDX and DirectX.[30] When targeting non-Microsoft platforms, platform specific capabilities are utilized by the OpenTK library. It is released under the Microsoft Public License.
//OpenTK">Open Toolkit (OpenTK): 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">Windows Presentation Foundation (WPF): 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.[31][32] It only runs on Windows operating systems.
[https
//code.videolan.org/videolan/LibVLCSharp LibVLCSharp ]:LibVLCSharp is a cross-platform audio and video API for .NET platforms based on [https://www.videolan.org/ VideoLAN]'s LibVLC Library. It provides a comprehensive multimedia API that can be used across mobile, server and desktop to render video and output audio as well as encode and stream. It works on Android, iOS, Windows, Mac and Linux.

Proprietary 3D graphics libraries

[https
//www.ab4d.com/PowerToys.aspx Ab3d.PowerToys]: a framework for .NET 3D with cameras, 3D models, 3D lines, 3D text and more.
//www.altsoftlab.com/altsketch.aspx'>AltSketch: a pure C#, 100% managed Vector Graphics Library. It has integration with GUI systems and Mobile platforms.
//Unity (game engine)">Unity: a cross-platform game engine developed by Unity Technologies[33] and used to develop video games for PC, consoles, mobile devices and websites.

Image processing

//AForge.NET">AForge.NET: a computer vision and artificial intelligence library.[34][35] 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|date=April 2016}} Functionality of AForge.NET has been extended by the Accord.NET library.[36][37]
//Accord.NET">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 frameworks

Open-source GUI frameworks

[https
//github.com/AvaloniaUI/Avalonia Avalonia]

a cross-platform XAML-based user interface (UI) framework. It has been inspired by Microsoft's Windows Presentation Foundation (WPF) (which was codenamed Avalon at an early development stage), and beside XAML for definition of widget controls it also features flexible CSS - like styling system (unlike the WPF's styling where styles are stored in the "Resources" collection). It supports the following operating systems: Windows (.NET Framework, .NET Core), Linux (GTK), MacOS, Android and iOS. It is released under the MIT license. Avalonia is currently in beta stage.[38][39]

[https
//github.com/picoe/Eto Eto.Forms]

a cross-platform desktop and mobile user interface framework released under the BSD license.[40][39]

//Gtk Sharp">Gtk#

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

[https
//github.com/ddobrev/QtSharp QtSharp]

C# bindings for the Qt framework.[39]

[https
//platform.uno/ Uno Platform]

an open source cross-platform graphical user interface for building applications that allow Universal Windows Platform - based code to run on iOS, Android, and WebAssembly.[41]

Platform is released under the Apache 2.0 license.

//Windows Forms">Windows Forms

a Microsoft's 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.[1] The alternative Mono's 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.[2]

At the Microsoft Connect event on December 4, 2018, Microsoft announced releasing of Windows Forms as open source project on [https://github.com/dotnet/winforms GitHub]. It is released under the MIT License. Windows Forms has become available for projects targeting the .NET Core framework. However, the framework is still available only on Windows platform and the Mono's incomplete implementation of WinForms remains the only cross-platform implementation.[42][43]

//Windows Presentation Foundation">Windows Presentation Foundation: 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.[44] WPF applications can be deployed as standalone desktop programs or hosted as an embedded object in a website.{{citation needed|date=April 2016}}

At the Microsoft Connect event on December 4, 2018, Microsoft announced releasing of WPF as open source project on [https://github.com/dotnet/wpf?WT.mc_id=-blog-scottha GitHub]. It is released under the MIT License. Windows Presentation Foundation has become available for projects targeting the .NET Core framework. However, the system is still available only on Windows platform.[42][43]

The Windows UI Library (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 source project on [https://github.com/Microsoft/microsoft-ui-xaml?WT.mc_id=-blog-scotthaa GitHub]. WinUI has become available for projects targeting the .NET Core framework. It is released under the MIT License. However, the library is still available only on Windows platform.[42][43]
//Xwt (toolkit)">Xwt: a GUI toolkit that maps API calls to native platform calls of the underlying platform, exposing one unified API across different platforms and making possible for the graphical user interfaces to have native look and feel on different platforms.[39]

Proprietary GUI frameworks

Xamarin.Forms
a cross-platform UI toolkit for development of native user interfaces that can be run on iOS, Android, and Universal Windows Platform apps. [45][46][39]

Security and identity management

[https
//github.com/NWebsec/NWebsec NWebsec]: Security headers for ASP.NET apps.
[https
//github.com/IdentityManager/IdentityManager IdentityManager]: a tool for developers and/or administrators to manage the identity information for users of their applications
[https
//github.com/IdentityServer/IdentityServer4 IdentityServer]: a free, open source OpenID Connect and OAuth 2.0 framework for ASP.NET Core
[https
//skgl.codeplex.com/ Serial Key Generating Library (SKGL)]: a very simple licensing system that might be used to protect .NET Apps
[https
//github.com/sshnet/SSH.NET SSH.NET]: client-side library for SSH, SCP and SFTP. It does not contain third party dependencies and is released under the BSD License.

Quality assurance

[https
//github.com/fscheck/FsCheck FsCheck]: a random testing framework for testing .NET programs automatically. It is a port of Haskell's QuickCheck.
//NUnit">NUnit: 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.
[https
//msdn.microsoft.com/en-us/library/ms243147%28vs.80%29.aspx Microsoft Unit Testing Framework]: part of Visual Studio, only available on Windows platforms.

Object-relational mapping

.NET Framework natively provides utilities for object-relational mapping[47] 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.[48][49][50]

As the framework has evolved, additional object-relational tools were added, such as the Entity Framework included with the .NET Framework 3.5. LINQ to SQL was also introduced with .NET 3.5. This somehow reduced significance and popularity of third-party object-relational libraries.

Open source object-relational mapping tools

//Entity Framework">Entity Framework: an open source[51] 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.
//www.brothersoft.com/nconstruct-lite-333381.html'>NConstruct Lite: a desktop and web rapid application development tool and environment for .NET Framework, containing an extensive library for ORM.[52]
NHibernate
NHibernate is an object-relational mapper for the .NET platform.
SQLProvider
an ORM-like-tool for F# language and SQL databases.

Proprietary object-relational mapping tools

//dataobjects.net/'>DataObjects.NET: an object-relational mapper and business logic layer development framework for .NET projects. The framework focuses on non-trivial domain models with deep inheritance and composite objects, and on code-first, test-driven development. It is a proprietary library that comes with source code, and community edition of the library is available for free.

Serialization and data formats

.NET Framework comes with a wide set of utilities for serialization of objects. The framework provides native object serialization to and from XML, JSON and binary streams. In spite of that, there are numerous third-party libraries that support serialization to target formats and working with these formats.

[https
//www.newtonsoft.com/json Json.NET]: a JSON framework for the .NET platform. Beside serialization and deserialization of arbitrary objects, it features numerous utilities for working with JSON documents. One can compose the object structures that map to JSON documents, save them to strings, streams or files, reload object structures from streams, traverse the structures, find parts by using JSON Path (an analogue to XPath in XML), convert JSON documents to XML documents, etc.

See also

  • .NET Framework
  • Library
  • List of numerical libraries
    • List of Numerical Libraries for .NET
  • Standard Libraries (CLI)
    • Base Class Library (BCL)
  • List of CLI languages

Notes

{{Notelist}}

References

1. ^{{cite web|url=http://www.informit.com/articles/article.aspx?p=2048355&seqNum=4|title=C# 4.0 Unleashed By Bart De Smet. Sams Publishing, Jan 4, 2011 Chapter 5}}
2. ^{{cite web |url=http://www.mono-project.com/docs/gui/| title=GUI Toolkits| last= | first= | work=Mono site| publisher= | date=21 April 2016| archive-url=https://web.archive.org/web/20160402171119/http://www.mono-project.com/docs/gui/ | archive-date=2016-04-02|access-date=2016-04-21}}
3. ^{{cite web |url=http://www.codeplex.com/crossnet |title=CrossNet |publisher=Codeplex.com |date= |accessdate=17 April 2012}}
4. ^{{cite web |title=.NET Core is Open Source|url=http://blogs.msdn.com/b/dotnet/archive/2014/11/12/net-core-is-open-source.aspx|website=.NET Framework Blog|publisher=Microsoft |accessdate=30 December 2014|date=12 November 2014|first=Immo|last=Landwerth}}
5. ^{{cite web|url=https://www.theregister.co.uk/2016/03/31/xamarin_tools_code_free_and_open_source/|title=Microsoft to make Xamarin tools and code free and open source.|work=The Register|date=31 March 2016|first=Tim|last=Anderson}}
6. ^{{cite web|url=http://techreport.com/news/29929/xamarin-now-comes-free-with-visual-studio|title=Xamarin now comes free with Visual Studio.|work=The Tech Report|date=31 March 2016|first=Bruno|last=Ferraira}}
7. ^{{cite web | url=https://github.com/mono/mono/blob/master/PATENTS.TXT| title=Microsoft Patent Promise for Mono | last= | first= | work=Mono on GitHub| publisher= Mono Project| date= 2016-03-28 |archiveurl=https://web.archive.org/web/20160416133644/https://github.com/mono/mono/blob/master/PATENTS.TXT | archivedate=2016-04-16|accessdate=16 April 2016}}
8. ^{{cite web |last1=Lardinois |first1=Frederic |date=April 3, 2014 |title=Microsoft Launches .NET Foundation To Foster The .NET Open Source Ecosystem |url=https://techcrunch.com/2014/04/03/microsoft-launches-net-foundation-to-foster-the-net-open-source-ecosystem/ |website=TechCrunch}}
9. ^{{cite web|url=https://github.com/Microsoft/dotnet/blob/master/dotnet-developer-projects.md|title=.NET Open Source Developer Projects|work=GitHub|date=15 April 2015|first=|last=|archive-url=https://web.archive.org/web/20160415164104/https://github.com/Microsoft/dotnet/blob/master/dotnet-developer-projects.md|archive-date=2016-04-15|access-date=2016-04-15|deadurl=yes|df=}}
10. ^{{cite web |title=.NET Standard |url=https://docs.microsoft.com/en-us/dotnet/standard/net-standard |website=docs.microsoft.com |language=en-us}}
11. ^{{cite web |title=This repo is building the .NET Standard. Contribute to dotnet/standard development by creating an account on GitHub |url=https://github.com/dotnet/standard/blob/master/docs/versions.md |publisher=.NET Foundation |date=3 April 2019}}
12. ^There are no plans for the .NET Framework to support .NET Standard 2.1
13. ^{{cite web |title=Announcing .NET Standard 2.1 |url=https://devblogs.microsoft.com/dotnet/announcing-net-standard-2-1/ |website=.NET Blog |date=5 November 2018}}
14. ^{{cite web|url=http://docs.asp.net/en/latest/conceptual-overview/aspnet.html#unify|title=Introduction to ASP.NET 5 — ASP.NET 0.0.1 documentation|work=asp.net}}
15. ^{{cite web | url=https://www.infoq.com/news/2018/04/net-browser-ooui | title=Running .NET in the Browser with Ooui |author= Jeff Martin | work= |date=18 April 2018 | publisher= | archive-url=https://web.archive.org/web/20181126171403/https://www.infoq.com/news/2018/04/net-browser-ooui |archive-date=2018-11-26 |access-date=2018-11-26 }}
16. ^{{cite web |url=https://stackify.com/nlog-vs-log4net-vs-serilog/ | title=NLog vs log4net vs Serilog: Compare .NET Logging Frameworks | last=Timms | first=Simon | work=Developer Tips, Tricks & Resources | publisher=Stackify | date=27 August 2018 | archive-url= | archive-date=2018-12-19|access-date=2018-12-19 }}
17. ^{{cite web |url=https://stackify.com/log4net-guide-dotnet-logging/ | title=Ultimate log4net Tutorial for .NET Logging – 14 Best Practices, Resources and Tips | last=Watson | first=Matt | work=Developer Tips, Tricks & Resources | publisher=Stackify | date=9 February 2017 | archive-url= | archive-date=2018-12-19 |access-date=2018-12-19 }}
18. ^{{cite web | url=http://fsharp.org/guides/math-and-statistics/ |title=Guide - Math and Statistics Programming with F# | last= | first= | work=| publisher=fsharp.org|date=| archive-url=https://web.archive.org/web/20160425104519/http://fsharp.org/guides/math-and-statistics/ | archive-date=2016-04-25|access-date=2016-04-25 }}
19. ^{{cite web |url=http://www.4guysfromrolla.com/articles/072507-1.aspx#postadlink| title= ASP.NET Charting with NPlot| last=Lerflaten | first=Olav | work=| publisher= | date=25 July 2007| archive-url= https://web.archive.org/web/20160423002508/http://www.4guysfromrolla.com/articles/072507-1.aspx| archive-date=2016-04-23|access-date=2016-04-21 }}
20. ^{{cite web | url=http://oceanairdrop.blogspot.com/2018/03/oxyplot-charting-control.html | title=OxyPlot Charting Control | last=Airdrop | first=Ocean | work=Ocean Airdrop | publisher= | date=10 March 2018 | archive-url= |access-date=2018-10-26 }}
21. ^{{cite web | url=http://aspnet.4guysfromrolla.com/articles/120804-1.aspx| title=A Look at WebCharts, a Free .NET Charting Control| last=Mitchell| first=Scott| work=| publisher= | date=8 December 2004| archive-url= https://web.archive.org/web/20160423004424/http://aspnet.4guysfromrolla.com/articles/120804-1.aspx |archive-date=2016-04-23 |access-date=2016-04-21 }}
22. ^{{cite web | url= https://www.openhub.net/p/8629| title=Project Summary at OpenHUB | last=| first=| work=| publisher= | date=| archive-url= https://web.archive.org/web/20160423011917/https://www.openhub.net/p/8629| archive-date=2016-04-23|access-date=2016-04-21 }}
23. ^{{cite web | url=http://www.webdistortion.com/2008/11/12/web-application-graphing-solutions-from-around-the-web/| title=28 useful graphing solutions for web developers| last=Anthony| first=Paul| work=| publisher= |date=12 November 2008| access-date=2016-04-21 }}
24. ^{{cite web |url=https://www.cs.ubc.ca/~tmm/courses/cpsc533c-05-fall/projects/mcora/report.pdf | title=ShadyStats: Visualizing Game Statistics using Hierarchical Parallel Coordinates. A scientific article using Zedgraph. |last= Cora| first= Mike| work=| publisher= | date=| archive-url=https://www.cs.ubc.ca/~tmm/courses/cpsc533c-05-fall/projects/mcora/report.pdf |archive-date=2016-04-21|access-date=2016-04-21 }}
25. ^{{cite web |url=http://imtuoradea.ro/auo.fmte/files-2014-v1/Roman%20%20Lucian-SOFTWARE%20APPLICATION%20FOR%20ASSESSMENT%20THE%20RELIABILITY%20OF%20SUSPENSION%20SYSTEM%20AT%20OPEL%20CARS%20AND%20OF%20ROAD%20PROFILES.pdf | title=Software Application for Assessment the Reliability of the Suspension System at Opel Cars and of Road Profiles. A scientific article using Zedgraph. |last=Roman |first= Lucian | work= Fascicle of Management and Technological Engineering | publisher=| date=May 2014 | archive-url=https://web.archive.org/web/20160423014508/http://imtuoradea.ro/auo.fmte/files-2014-v1/Roman%20%20Lucian-SOFTWARE%20APPLICATION%20FOR%20ASSESSMENT%20THE%20RELIABILITY%20OF%20SUSPENSION%20SYSTEM%20AT%20OPEL%20CARS%20AND%20OF%20ROAD%20PROFILES.pdf |archive-date=2016-04-23 | access-date=2016-04-21 }}
26. ^{{cite web | url=http://www.prweb.com/releases/2011/1/prweb8101442.htm| title=Kitware’s ActiViz .NET Tool is Now Free and Open Source| last=Messier | first=Nicole | work=| publisher= |date= 31 January 2011| archive-url=https://web.archive.org/web/20160422214713/http://www.prweb.com/releases/2011/1/prweb8101442.htm | archive-date=2016-04-22|access-date=2016-04-21 }}
27. ^{{cite web | url=https://github.com/helix-toolkit/helix-toolkit|title=Helix repository on GitHub| last= | first= | work=| publisher= GitHub| date=| archive-url=https://web.archive.org/web/20160425094825/https://github.com/helix-toolkit/helix-toolkit | archive-date=2016-04-25|access-date=2016-04-25 }}
28. ^{{cite web | url=https://github.com/helix-toolkit/helix-toolkit/wiki/Getting-started-with-WPF-3D|title=Getting started with WPF 3D| last= | first= | work=| publisher= GitHub| date=| archive-url=https://web.archive.org/web/20160425095827/https://github.com/helix-toolkit/helix-toolkit/wiki/Getting-started-with-WPF-3D| archive-date=2016-04-25|access-date=2016-04-25 }}
29. ^{{cite web | url=http://helix-toolkit.org/|title=Helix Toolkit web site| last= | first= | work=| publisher=GitHub |date=| archive-url=https://web.archive.org/web/20160425100102/http://helix-toolkit.org/ | archive-date=2016-04-25|access-date=2016-04-25 }}
30. ^Monogame at Build 2012 | Channel 9 Live at BUILD 2012 | Channel 9
31. ^Introducing Windows Presentation Foundation
32. ^{{cite web | url = http://blogs.msdn.com/tims/archive/2007/07/27/what-s-new-in-wpf-3-5-here-s-fifteen-cool-features.aspx | title = What's New in WPF 3.5? Here's Fifteen Cool Features... | accessdate = 2007-10-14}}
33. ^{{cite interview | interviewer=Dean Takahashi | first=John | last=Riccitiello | date=October 23, 2014| url=https://venturebeat.com/2014/10/23/john-riccitiello-sets-out-to-identify-the-engine-of-growth-for-unity-technologies-interview/|title=John Riccitiello sets out to identify the engine of growth for Unity Technologies (interview)|work=VentureBeat|accessdate=January 18, 2015}}
34. ^{{cite web |url=https://www.researchgate.net/publication/267769423_Real-time_Static_and_Dynamic_Hand_Gesture_Recognition_for_Human-Computer_Interaction |title=Real-time, Static and Dynamic Hand Gesture Recognition for Human-Computer Interaction | authors=S M Hassan Ahmed, Todd C Alexander, Georgios Anagnostopoulos | work= | publisher=University of Miami | date=May 2015 | archive-url=https://www.researchgate.net/publication/267769423_Real-time_Static_and_Dynamic_Hand_Gesture_Recognition_for_Human-Computer_Interaction |archive-date=2018-11-26 |access-date=2018-11-26 }}
35. ^{{cite web |url=https://www.academia.edu/3996497/Development_of_an_eye-tracking_control_system_using_AForge.NET_framework |title=Development of an eye-tracking control system using AForge.NET framework | authors=Suraj Verma, Prashant Pillai, Yim-Fun Hu | work=Int. J. Intelligent Systems Technologies and Applications, Vol. 11 | publisher=Inderscience Enterprises | date=2012 | archive-url=https://web.archive.org/web/20181126130207/http://www.academia.edu/3996497/Development_of_an_eye-tracking_control_system_using_AForge.NET_framework |archive-date=2018-11-26 |access-date=2018-11-26 }}
36. ^{{cite web |url=http://crsouza.com/2010/05/20/accord-net-framework-an-extension-to-aforge-net/ |title=Accord.NET Framework – An extension to AForge.NET | last=Souza| first=César | work= | publisher= | date=20 May 2010 | archive-url=http://crsouza.com/2010/05/20/accord-net-framework-an-extension-to-aforge-net/ |archive-date=2018-11-26 |access-date=2018-11-26 }}
37. ^{{cite web | url=http://accord-framework.net/docs/html/R_Project_Accord_NET.htm | title=Framework Modules| last=| first=| work=Accord.NET Framework documetation| publisher= | date=| archive-url=https://web.archive.org/web/20181126122705/http://accord-framework.net/docs/html/R_Project_Accord_NET.htm |archive-date=2018-11-26 |access-date=2018-11-26 }}
38. ^{{cite web | url=https://www.hanselman.com/blog/WhatWouldACrossplatformNETUIFrameworkLookLikeExploringAvalonia.aspx| title=What would a cross-platform .NET UI Framework look like? Exploring Avalonia| last=Hanselman| first=Scott | work=| publisher= | date=September 2017| archive-url=https://www.hanselman.com/blog/WhatWouldACrossplatformNETUIFrameworkLookLikeExploringAvalonia.aspx |archive-date=2018-11-26 |access-date=2018-11-26 }}
39. ^{{cite web | url=https://blog.lextudio.com/the-story-about-net-cross-platform-ui-frameworks-dd4a9433d0ea | title=The Story About .NET Cross Platform UI Frameworks |author=Lex Li | work=3 July 2017 | publisher= | date= | archive-url=https://blog.lextudio.com/the-story-about-net-cross-platform-ui-frameworks-dd4a9433d0ea?gi=ed6c9cc36c51 |archive-date=2018-11-26 |access-date=2018-11-26 }}
40. ^{{cite web | url=https://dotnetcoretutorials.com/2018/03/19/cross-platform-winforms-kinda/ | title=Cross Platform WinForms (Kinda) |author=Wade | work=.NET Core Tutorials | publisher= | date=19 March 2018 | archive-url=https://web.archive.org/web/20181126153207/https://dotnetcoretutorials.com/2018/03/19/cross-platform-winforms-kinda/ |archive-date=2018-11-26 |access-date=2018-11-26 }}
41. ^{{cite web |url=https://hackernoon.com/cross-platform-mobile-apps-with-net-and-uno-dee2b024281d | title=Cross Platform Mobile Apps with .NET and Uno | last=Billson| first=Alex | work= | publisher= | date=15 Jul 2018 | archive-url= | archive-date=2019-01-20|access-date=2019-01-20 }}
42. ^{{cite web |url=https://www.infoq.com/news/2018/12/msft-open-source-wpf-winforms | title=Microsoft Open Sources WPF, WinForms, and WinUI | last=Martin | first=Jeff | work=InfoQ | publisher= | date=4 December 2018| archive-url= | archive-date=2018-12-06|access-date=2018-12-06 }}
43. ^{{cite web |url=https://www.hanselman.com/blog/AnnouncingWPFWinFormsAndWinUIAreGoingOpenSource.aspx | title=Announcing WPF, WinForms, and WinUI are going Open Source | last=Hanselman | first=Scott | work= | publisher= | date=4 December 2018| archive-url= | archive-date=2018-12-06|access-date=2018-12-06 }}
44. ^MSDN.NET Development: WPF: XAML Overview
45. ^{{cite web | url=https://docs.microsoft.com/en-us/xamarin/xamarin-forms/get-started/hello-xamarin-forms/quickstart?pivots=windows | title=Xamarin.Forms Quickstart |authors= | work=Microsoft Docs | publisher=Microsoft | date= | archive-url= |archive-date=2018-11-26 |access-date=2018-11-26 }}
46. ^{{cite web | url=https://arctouch.com/blog/xamarin-forms-more-capable-than-you-think/ | title=Xamarin.Forms is Much More Capable Than You Think |author=Nathan Williams | work= | publisher=ArcTouch | date= | archive-url=https://web.archive.org/web/20181126155602/https://arctouch.com/blog/xamarin-forms-more-capable-than-you-think/ |archive-date=2018-11-26 |access-date=2018-11-26 }}
47. ^{{cite web | url=http://www.agiledata.org/essays/mappingObjects.html | title=Mapping Objects to Relational Databases: O/R Mapping In Detail | last=Ambler | first=Scott | work= | publisher=Agile Data | date= | archive-url=https://web.archive.org/web/20181103222615/http://www.agiledata.org/essays/mappingObjects.html | archive-date=2018-11-03 |access-date=2018-11-03 }}
48. ^{{cite web | url=https://www.agile-code.com/blog/microsoft-net-or-mapper-choose-your-own/ | title=Microsoft.NET O/R mapper: choose your own! | last=Maksimovic | first=Zoran | work=| publisher=agile-code.com | date=November 2, 2017 | archive-url=https://web.archive.org/web/20181103220259/https://www.agile-code.com/blog/microsoft-net-or-mapper-choose-your-own/ | archive-date=2018-11-03 |access-date=2018-11-03 }}
49. ^{{cite web | url=https://baladotnettips.wordpress.com/2014/02/28/list-of-orms-available-for-net/ | title=List of ORM’s available for .NET | last= | first= | work=Bala.NET Tips | publisher=WordPress | date=February 28, 2014 | archive-url=https://baladotnettips.wordpress.com/2014/02/28/list-of-orms-available-for-net/ | archive-date=2018-11-03 |access-date=2018-11-03 }}
50. ^{{cite web | url=http://wiki.c2.com/?ObjectRelationalToolComparisonDotNet | title=Object Relational Tool Comparison Dot Net | last= | first= | work= | publisher=WikiWikiWeb | date=April 10, 2014 | archive-url=https://web.archive.org/web/20181103222039/http://wiki.c2.com/?ObjectRelationalToolComparisonDotNet | archive-date=2018-11-03 |access-date=2018-11-03 }}
51. ^{{cite news|last=Krill|first=Paul|url=http://www.infoworld.com/d/application-development/microsoft-open-sources-entity-framework-198213|title=Microsoft open-sources Entity Framework|accessdate=24 July 2012|newspaper=InfoWorld|date=20 July 2012}}
52. ^{{cite web | url=https://www.openhub.net/p/NConstruct-Lite | title=NConstruct Lite - Project summary on GitHub| last= | first= | work=| publisher= GitHub| date=| archive-url=https://web.archive.org/web/20160528112838/https://www.openhub.net/p/NConstruct-Lite | archive-date=2016-05-28|access-date=2016-05-28 }}

External links

General:

  • [https://github.com/Microsoft/dotnet/blob/master/dotnet-developer-projects.md .NET Open Source Developer Projects], a list maintained at GitHub
  • [https://github.com/quozd/awesome-dotnet Awesome .NET], a collection of .NET libraries, tools, frameworks, and software, maintained at GitHub
  • A Complete List of .NET Open Source Developer Projects, a comprehensive list of open source projects based on .NET.

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
{{Portal bar|.NET Framework}}

7 : .NET Framework software|Computer programming tools|Lists of software|Computer libraries|Numerical libraries|Graphics libraries|Free and open-source software

随便看

 

开放百科全书收录14589846条英语、德语、日语等多语种百科知识,基本涵盖了大多数领域的百科知识,是一部内容自由、开放的电子版国际百科全书。

 

Copyright © 2023 OENC.NET All Rights Reserved
京ICP备2021023879号 更新时间:2024/11/13 15:28:40