この記事では、 .NET 言語で使用できるライブラリの一覧を示します。これらの言語は、ソフトウェア開発の基盤、プラットフォーム非依存性、言語間の相互運用性、および豊富なフレームワークライブラリを提供する.NET Framework、Mono、または.NETを必要とします。標準ライブラリ(基本クラスライブラリを含む) は、この記事には含まれていません。
.NET Framework または .NET で作成されたアプリは、共通言語ランタイム(CLR) [ 1 ]と呼ばれるソフトウェア環境で実行されます。これは、セキュリティ、メモリ管理、例外処理などのサービスを提供するアプリケーション仮想マシンです。フレームワークには、フレームワーク クラス ライブラリ(FCL)と呼ばれる大規模なクラス ライブラリが含まれています。
ホストとなる仮想マシンのおかげで、.NET共通言語インフラストラクチャ(CLI)に準拠したさまざまな言語が、同じ種類のデータ構造を操作できます。そのため、これらの言語は、FCLや、CLI準拠言語で記述された他の.NETライブラリを使用できます。このような言語のソースコードがコンパイルされると、コンパイラはプラットフォームに依存しない共通中間言語(CIL、バイトコードとも呼ばれる)のコードを生成し、 CLIアセンブリに格納します。.NETアプリケーションが実行されると、ジャストインタイムコンパイラ(JIT)がCILコードをプラットフォーム固有のマシンコードに変換します。パフォーマンスを向上させるため、.NET Frameworkには、マシンコードへの事前コンパイルを実行するネイティブイメージジェネレータ(NGEN)も付属しています。
このアーキテクチャは言語間の相互運用性を提供します。各言語は、他の言語で書かれたコードを使用できます。ある言語から別の言語への呼び出しは、単一のプログラミング言語内での呼び出しとまったく同じです。ライブラリが1つのCLI言語で記述されている場合、他のCLI言語でも使用できます。さらに、純粋な.NETアセンブリのみで構成されるアプリケーションは、CLIの実装を含むあらゆるプラットフォームに転送して、そのプラットフォーム上で実行できます。たとえば、.NETを使用して記述されたアプリケーションは、Windows、macOS、およびさまざまなバージョンのLinuxで実行できます。
ただし、.NET アプリケーションやそのライブラリは、COMなどのネイティブ プラットフォーム機能に依存する場合があります。そのため、.NET アプリケーションのプラットフォーム非依存性は、必要なネイティブ ライブラリをターゲット プラットフォームに転送できるかどうかに依存します。2019 年に、 .NET Framework のWindows FormsおよびWindows Presentation Foundation の部分がオープンソースになりました。[ 2 ]
現在活発に開発・保守されている主要な.NET実装は4つあります。
.NETの各実装には、以下のコンポーネントが含まれています。
.NET Standard は、あらゆる .NET 実装の基本クラス ライブラリに実装される共通APIのセットです。各実装のクラス ライブラリは .NET Standard を実装する必要がありますが、追加の API を実装することもできます。従来、.NET アプリケーションは .NET Framework 4.6 など、特定のバージョンの .NET 実装を対象としていました。[ 5 ] [ 6 ] .NET Standard の登場により、アプリケーションは .NET Standard のバージョンを対象とすることができ、そのレベルの標準をサポートする実装であれば、再コンパイルせずに使用できます。これにより、異なる .NET 実装間での移植性が向上します。
次の表は、.NET Standard に準拠している .NET 実装と、各実装が特定のバージョンの .NET Standard に準拠するようになったバージョン番号を示しています。たとえば、この表によると、.NET Core 3.0 は .NET Standard 2.1 に準拠した最初の .NET Core バージョンです。つまり、3.0 より大きいバージョンの .NET Core (たとえば .NET Core 3.1) も .NET Standard 2.1 に準拠しています。
2002年に初めてリリースされたASP.NETは、動的なWebページを作成するためのWeb開発向けに設計されたオープンソースのサーバーサイドWebアプリケーションフレームワークです。MicrosoftのActive Server Pages (ASP)テクノロジーの後継であり、 Common Language Runtime (CLR)を基盤としています。
ASP.NET は 2016 年に、 Entity Frameworkなどの他のフレームワークとともに、モジュール式の Web フレームワークとして完全に書き直されました。書き直されたフレームワークは、新しいオープンソースの .NET コンパイラ プラットフォーム (コードネーム「Roslyn」としても知られています) を使用し、クロス プラットフォームです。プログラミング モデルであるASP.NET MVC 、ASP.NET Web API、および ASP.NET Web Pages ( Razorページのみを使用するモデル) は、統合された MVC 6 に統合されました。[ 10 ]
Blazorは、開発者がASP.NET Razorページ(「コンポーネント」)内でC#とHTMLを使用してシングルページWebアプリケーションを作成できる、無料のオープンソースWebフレームワークです。BlazorはASP.NET Coreフレームワークの一部です。Blazor ServerアプリケーションはWebサーバー上でホストされますが、Blazor WebAssemblyアプリケーションは実行前にクライアントのWebブラウザーにダウンロードされます。さらに、サーバーベースとクライアントベースのアプリケーションコンポーネントを備えたBlazor Hybridフレームワークも利用可能です。
これはコンピュータビジョンと人工知能のライブラリです。遺伝的アルゴリズム、ファジー論理、機械学習アルゴリズムを多数実装しており、対応する学習アルゴリズムを備えた複数の人工ニューラルネットワークアーキテクチャを提供します。
これは、クロスプラットフォーム対応のオープンソース数値解析・データ処理ライブラリです。C++、C#、FreePascal、Delphi、VBAなど、さまざまなプログラミング言語で記述されたアルゴリズム集で構成されており、商用ライセンスとGPLライセンスの2種類のライセンスが提供されています。
ILNumerics.ONALは、オープンソースでMITライセンスのILNumerics開発プラットフォームの数値計算コアであり、NumPy/MATLABスタイルの多次元配列、ブロードキャスト、高度なインデックス付け、複素数、線形代数、FFTをサポートする、公式LAPACK変換を含む完全管理型のONAL(Open Numerical Algorithm Language)実装を提供します。さらに、パフォーマンス向上のための独自の自動並列化アクセラレータコンパイラへのアップグレードパスも用意されています。Windows、Linux、MacOS上のVisual Studioおよび.NETに統合できます。
このライブラリは、科学、工学、および日常生活における数値計算のための方法とアルゴリズムを提供することを目的としています。対象とするトピックには、特殊関数、線形代数、確率モデル、乱数、補間、積分変換などが含まれます。MIT/X11 ライセンス。[ 11 ]
これは、.NET Framework 上で高度な科学計算を行うためのライブラリです。
これは無料の機械学習ライブラリです。ML.NETのプレビュー版には、n-gram生成などの特徴量エンジニアリングのための変換機能や、二値分類、多クラス分類、回帰タスクを処理する学習器が含まれていました。その後、異常検知やレコメンデーションシステムなどの機械学習タスクが追加され、ディープラーニングなどの他のアプローチも今後のバージョンで追加される予定です。
ILNumericsは、.NET上で動作する技術・科学アプリケーション向けの独自開発プラットフォームです。n次元配列データ型と、数値アルゴリズム開発のための基本的な数学演算(一般数学、FFT、HDF5、最適化、補間、線形代数など)を中心に設計されています。数値計算と、対話型の2D/3D可視化、Visual Studioとの統合、そしてプログラムレベルの自動並列化や配列パイプライン処理といった効率的なリソース利用のためのパフォーマンス機能を兼ね備えています。
これは、テストおよび計測アプリケーションの開発に使用するための、UIコントロールとクラスライブラリを統合したスイートです。解析クラスライブラリは、さまざまなデジタル信号処理、信号フィルタリング、信号生成、ピーク検出、およびその他の一般的な数学機能を提供します。
これは、 CenterSpace Softwareによって開発された .NET プラットフォーム用の数値コンポーネントライブラリです。信号処理 (FFT) クラス、線形代数 (LAPACK および BLAS) フレームワーク、および統計パッケージが含まれています。[ 11 ]
これは、 OpenGL、OpenGL ES、およびOpenAL用の低レベルC#バインディングです。Windows、Linux、Mac OS X、BSD、Android、iOSで動作します。スタンドアロンで使用することも、GUIに統合することも可能です。
これは、Microsoft が開発したユーザー インターフェイスをレンダリングするためのグラフィカル サブシステムです。3D レンダリング エンジンも含まれています。さらに、インタラクティブな 2D コンテンツを 3D サーフェスにネイティブに重ね合わせることができます。[ 12 ] [ 13 ]これは Windows オペレーティングシステムでのみ動作します。
これはUnity Technologies [ 14 ]によって開発されたクロスプラットフォームのゲームエンジンで、 PC、コンソール、モバイルデバイス、Webサイト向けのビデオゲームの開発に使用されます。
これはコンピュータビジョンと人工知能のライブラリです。[ 15 ] [ 16 ]多数の画像処理アルゴリズムとフィルタを実装しています。LGPLv3 ライセンスと一部 GPLv3 ライセンスでリリースされています。ライブラリの大部分は C# で記述されているため、クロスプラットフォームです。AForge.NETの機能はAccord.NETライブラリによって拡張されています。[ 17 ] [ 18 ]
これは、GNU Lesser General Public Licenseバージョン2.1の下で利用可能な、コンピュータビジョンおよび人工知能ライブラリです。主にC#で記述されています。
これらは、基盤となるGTK+およびGNOMEライブラリをC#でラップしたもので、C言語で記述されており、Linux、MacOS、Windowsで利用可能です。[ 19 ]
これは Microsoft GUI フレームワークです。オリジナルの Microsoft 実装は Windows オペレーティングシステム上で動作し、Windows API をマネージドコードでラップすることでWindows ユーザー インターフェイス共通コントロールへのアクセスを提供します。[ 20 ]代替のMono実装はオープンソースでクロス プラットフォーム (Windows、Linux、Unix、OS X で動作) です。基本的にはオリジナルの実装と互換性がありますが、完全ではありません。ライブラリは Windows への依存を避けるために C# で記述されています。[ 21 ] 2018 年 12 月 4 日の Microsoft Connect イベントで、Microsoft はWindows Forms をGitHub 上のオープンソース プロジェクトとしてリリースすることを発表しました。[ 22 ] MIT ライセンスの下でリリースされています。Windows Forms は.NETフレームワークをターゲットとするプロジェクトで使用できるようになりました。ただし、フレームワークは依然として Windows プラットフォームでのみ使用可能で、WinForms の Mono の不完全な実装が唯一のクロス プラットフォーム実装となっています。[ 23 ] [ 24 ]
これは、Microsoft による Windows ベースのアプリケーションでユーザー インターフェイスをレンダリングするためのグラフィカル サブシステムです。DirectX をベースとしており、 XML ベースの言語である XAML を使用してさまざまなインターフェイス要素を定義し、リンクします。[ 25 ] WPF アプリケーションは、スタンドアロンのデスクトップ プログラムとして展開することも、Web サイトの埋め込みオブジェクトとしてホストすることもできます。2018年 12 月 4 日に開催された Microsoft Connect イベントで、Microsoft はWPF をGitHub のオープンソース プロジェクトとしてリリースすることを発表しました。[ 22 ] MIT ライセンスの下でリリースされています。Windows Presentation Foundation は、 .NETフレームワークをターゲットとするプロジェクトで使用できるようになりました。ただし、このシステムはまだ Windows プラットフォームでのみ利用可能です。[ 23 ] [ 24 ]
これは、ユニバーサル Windows プラットフォーム(UWP)用の Microsoft UI コントロールと機能のセットです。2018 年 12 月 4 日に開催された Microsoft Connect イベントで、 Microsoft はWinUI をGitHub 上のオープンソース プロジェクトとしてリリースすることを発表しました。[ 22 ] WinUI は.NETフレームワークをターゲットとするプロジェクトで使用できるようになりました。MITライセンスでリリースされています。ただし、このライブラリは Windows プラットフォームでのみ利用可能です。[ 23 ] [ 24 ]
これは、macOS、iOS、Android、およびユニバーサル Windows プラットフォーム アプリで実行できるネイティブ ユーザー インターフェイスの開発のためのクロス プラットフォーム UI ツール キットです。[ 26 ] [ 27 ] [ 19 ]
これは、2020 年 5 月に発表されたクロスプラットフォーム UI ツールキットで、Xamarin.Forms のフォークとして始まり、Android、iOS、Linux、macOS、Tizen、および Windows で実行できます。.NET MAUI は.NET 6以降で実行されます。[ 28 ] [ 29 ] [ 30 ]ソースコードはMIT ライセンスでライセンスされており、 GitHubで入手できます。[ 29 ]
これは、Windows、Linux、macOS、iOS、Android、WebAssemblyで実行できるユーザーインターフェイスの開発のためのオープンソースのクロスプラットフォームUIツールキットです。ソースコードはMITライセンスでライセンスされており、 GitHubで入手できます[ 31 ]。
これは、.NET 用のオープンソースの単体テストフレームワークで、C# で記述されているためクロスプラットフォームです。xUnitファミリーに属する多くのプログラムの一つです。MITライセンスで提供されています。
.NET Framework は、バージョン 1.0 以降 .NET スタックの一部であるADO.NETを介して、オブジェクト リレーショナル マッピング用のユーティリティをネイティブに提供しています[ 32 ] 。 .NET 開発の初期には、フレームワークのいくつかのギャップを埋めるために、多くのサードパーティのオブジェクト リレーショナル ライブラリが登場しました。 [ 33 ] [ 34 ] [ 35 ]フレームワークが進化するにつれて、.NET Framework 3.5で導入されたEntity FrameworkやLINQ to SQLなどの追加のオブジェクト リレーショナル ツールが追加されました。これらのツールにより、サードパーティのオブジェクト リレーショナル ライブラリの重要性と人気が低下しました。
これは、 ADO.NET用のオープンソース[ 36 ]オブジェクトリレーショナルマッピング(ORM) フレームワークです。.NET Frameworkの一部でしたが、Entity Framework バージョン 6 以降は .NET Framework から分離されました。
NHibernateは、.NETプラットフォーム向けのオブジェクトリレーショナルマッパーです。
{{cite web}}: CS1 maint: bot: 元の URL の状態が不明です (リンク)一般的な:
数値ライブラリ:
データ: