基本クラスライブラリ
基本クラスライブラリ(英: Base Class Library、通称BCL)は共通言語基盤 (CLI) における標準ライブラリである。共通言語仕様 (CLS) を満たす全てのCLI言語から利用可能となっている。
ボーランドとマイクロソフトが1999年6月8日に結んだ特許契約の成果物で、Visual Component Library (VCL) から派生したライブラリとなっている。また、一部のコンポーネント[要説明]についてはバグまでもが完全移植されている。なお、これらのバグについては互換性維持のために修正されず現在も残されており、新たなコンポーネントの追加でその問題に対処している。
CLIは多数の共通機能をカプセル化するためにBCLを含んでおり、それはプログラマの仕事をより簡単にする。 ネットワークやセキュリティといった、C/C++を含む他のほとんどの言語の基礎ライブラリよりもずっと大きな領域をサポートしており、Javaクラスライブラリと比肩しうる。 CLIの最初の実装である.NET Frameworkは、BCLの起源である。BCLにおけるほとんどの機能はMonoや.NET Coreにも移植されている。BCLはときどきFramework Class Library (FCL) として間違って言及されることがあるが、これは、実際はマイクロソフト固有の名前空間を含むスーパーセットである。
BCLは.NET Frameworkのそれぞれのバージョンで更新・機能追加されている。
名前空間 (namespace)
[編集]いくつかの名前空間 (namespace) は、マイクロソフトによって公式にBCLの一部だとみなされているものもあれば、そうでないものもあるかもしれない。しかし、マイクロソフトによるCLIの実装である.NET Frameworkによって提供されるライブラリの一部としては、すべてが含まれている。
標準化された名前空間
[編集]ECMA 335 6th EditionおよびISO/IEC 23271:2012 standardsとして標準化された名前空間について記述する[1][2]。
- System
- この名前空間はプログラミングの需要の核たるものを含んでいる。各種の基本数値型、文字列型 (
String
)、日時型 (DateTime
)、論理値型 (Boolean
) などのクラスと構造体、コンソール (Console
)、数学関数と数学定数 (Math
)、属性、例外および配列など、各種の基本クラスやインターフェイス、環境をサポートしている。
- System.Collections
- プログラミングで使用される多くの共通なコンテナあるいはコレクションクラスを定義している。リスト (
ArrayList
)、キュー (Queue
)、スタック (Stack
)、ハッシュ (Hashtable
)、連想配列 (実装としてはHashtable
,DictionaryBase
,SortedList
) などである。 - .NET Framework 2.0以降では、ジェネリックプログラミングのサポート (
Generic
) を含んでいる[3]。
- System.Collections.Generic
- ジェネリックコレクションを定義するインターフェイスとクラスが含まれています。
- System.Diagnostics
- アプリケーションに診断機能を提供する。イベントログ、パフォーマンスカウンタ、トレース、およびシステムプロセスに関する相互作用に関する機能である。[4]
- System.Globalization
- 国際化対応したアプリケーションを記述するための手助けとなる機能を提供する。文化 (culture) に結び付けられた情報、言語、国や地域、カレンダーの使用法、日付のフォーマット法、通貨、数字などが定義されるようになる。[5]
- System.Net
- 現代的なネットワークで使用される多くのプロトコルのためのプログラミングインターフェイスを提供する[7]。HTTP, FTP, SMTPなど。セキュアな通信としてTLSなどが提供される。
- System.Reflection
- 型、メソッド、フィールドに対するオブジェクトビューを提供する。これにより、コードの動的な生成や型を行使する能力が得られる[8]。CLRのリフレクション機能にアクセスするAPIを公開する。
- System.Runtime
- アプリケーションやCLRの実行時の振る舞いを管理する機能を提供する。COMやネイティブコードと相互運用するいくつかの能力により、分散コンピューティングおよびバイナリ形式あるいはSOAP形式へのオブジェクトのシリアライズが実現される[9] 。
- System.Security
- CLRセキュリティシステムの下層構造を提供する[10]。この名前空間はアプリケーションにポリシーと権限に基づいたセキュリティを構築する機能を提供する。暗号化サービスなど。
- System.Diagnostics.CodeAnalysis
- 分析ツールとの相互作用のためのクラスが含まれる。これらのツールは名前付けやセキュリティ規則といった慣例をコード化するための準拠用のコードを分析するために使用される[14]。
- System.Diagnostics.Contracts
- 事前条件や事後条件、そして普遍条件といったプログラム契約を表すための静的クラスを含む。[15]
- System.Diagnostics.Eventing
- アプリケーションのインストルメントに使用するためのクラスが含まれる。インストルメンテーションを可能にすると、Event Tracing for Windows (ETW) トレース サブシステムにイベントデータを記録する。[16]
- System.Diagnostics.PerformanceData
- この名前空間内でカウンター データを提供するためのクラスを使用する。カウンターはパフォーマンス モニターのようなコンシューマーにパフォーマンス モニターをさらすために使用される。パフォーマンスカウンターアーキテクチャの完全な解説は、パフォーマンスカウンターを参照すること。[17]
- System.Diagnostics.SymbolStore
- System.Diagnostics.SymbolStore 名前空間は、Microsoft intermediate language (MSIL) マップのソース行のような、デバッグ シンボル情報の読み書きを可能にするクラスを提供する。.NET Frameworkをターゲットとするコンパイラは、プログラム データベース (PDB) ファイルへのデバッグ シンボル情報を保存できる。デバッガとコードプロファイラーツールは実行時にデバッグ シンボル情報を読める。[18]
標準化されていない名前空間
[編集]これらの名前空間はECMAあるいはISO standardとして標準化されておらず、マイクロソフトの実装特有のものである。しかしながら、これらの実装を強制しなくても、これらのうち完全あるいは一部は他のCLI実装に実装されている。
- System.ComponentModel
- コンポーネントおよびコントロールに対する実行時およびデザイン時の振る舞いを実装する機能を提供する。「属性、型のコンバーター、データソースのバインディング、およびライセンスコンポーネントの実装のための」インフラを含んでいる。[20]
- System.Configuration
- 設定のハンドリングのインフラを提供する。[21]
- System.Data
- この名前空間はADO.NETアーキテクチャを表現する。データアクセスおよびデータサービスのためにプログラマが使用できるコンピュータソフトウェアコンポーネントの集合である[22]。
- System.DirectoryServices
- マネージドコードからActive Directoryへのアクセスを提供する。[25]
- System.EnterpriseServices
- エンタープライズ向けアプリケーションのために、COM+サービスへのアクセスを.NETオブジェクトに提供する。これにより、.NETオブジェクトをより実践的なものとすることができる[27]。
- System.Management
- 情報を検索することができるようになる。「HDDの空き容量がどれだけあるかとか、現在のCPUの機能は何かとか、データベースにどのアプリケーションが接続しているか、など」[30]
- System.Media
- システム音声やWaveファイルの再生能力を提供する。[31]
- System.Messaging
- 「モニター、およびネットワークの管理者メッセージキューへの接続、送受信、メッセージの検索など」[32] .NET Remoting は提供される機能のもう一つの名称である。この名前空間はWindows Communication Foundationにより取って代わる予定である。
- System.Resources
- アプリケーションを異なる文化や言語向けに国際化するため、多くの異なるリソースを管理する機能を提供する。[33]
- System.ServiceProcess
- アプリケーションをWindowsのサービスとして起動する機能を提供する。[34]
- System.Timers
- 「イベントを指定した間隔で発生させる機能を提供する」[35]
- System.Transactions
- ローカルもしくはネットワーク相手とのトランザクション処理を提供する。[36]
- System.Web
- さまざまなウェブに関連した機能を提供する。ブラウザ/サーバー間のコミュニケーションおよびXMLウェブサービスを作成することを可能にする。ほとんどもしくはすべてのこれらのライブラリはASP.NETで使用される。
- System.Windows.Forms
- この名前空間はWindows Formsアーキテクチャを含み、ネイティブのWindowsインターフェイス(Windows API)をラッピングする。これによりWindows向けのGUIアプリケーションをマネージドコードで記述することが可能になる。[37] このシステムはWindows Presentation Foundationにより置き換えられる予定である。
関連項目
[編集].NET frameworkの将来的な機能
[編集]- Windows Presentation Foundation (WPF)
- Windows Communication Foundation (WCF)
- Windows Workflow Foundation (WF)
- Windows CardSpace
参照
[編集]- ^ “.NET architectural components”. Microsoft Docs. マイクロソフト (2020年10月5日). 2021年5月9日閲覧。
- ^ “ECMA-335 6th Edition / Common Language Infrastructure (CLI) Partitions I to VI”. Ecma International (2012年6月). 2021年5月9日閲覧。
- ^ MSDN Documentation - System.Collections Namespace
- ^ MSDN Documentation - System.Diagnostics Namespace
- ^ MSDN Documentation - System.Globalization Namespace
- ^ MSDN Documentation - System.IO Namespace
- ^ MSDN Documentation - System.Net Namespace
- ^ MSDN Documentation - System.Reflection Namespace
- ^ MSDN Documentation - System.Runtime Namespace
- ^ MSDN Documentation - System.Security Namespace
- ^ MSDN Documentation - System.Text Namespace
- ^ MSDN Documentation - System.Threading Namespace
- ^ MSDN Documentation - System.Xml Namespace
- ^ MSDN Documentation - System.Diagnostics.CodeAnalysis Namespace
- ^ MSDN Documentation - System.Diagnostics.Contracts Namespace
- ^ MSDN Documentation - System.Diagnostics.Eventing Namespace
- ^ MSDN Documentation - System.Diagnostics.PerformanceData Namespace
- ^ MSDN Documentation - System.Diagnostics.SymbolStore Namespace
- ^ MSDN Documentation - System.CodeDom Namespace
- ^ MSDN Documentation - System.ComponentModel Namespace
- ^ MSDN Documentation - System.Configuration Namespace
- ^ MSDN Documentation - System.Data Namespace
- ^ MSDN Documentation - System.Deployment.Application Namespace
- ^ MSDN Documentation - System.Deployment.Internal Namespace
- ^ MSDN Documentation - System.DirectoryServices Namespace
- ^ MSDN Documentation - System.Drawing Namespace
- ^ MSDN Documentation - System.EnterpriseServices Namespace
- ^ MSDN Documentation - System.Linq Namespace
- ^ MSDN Documentation - System.Linq.Expressions Namespace
- ^ MSDN Documentation - System.Management Namespace
- ^ MSDN Documentation - System.Media Namespace
- ^ MSDN Documentation - System.Messaging Namespace
- ^ MSDN Documentation - System.Resources Namespace
- ^ MSDN Documentation - System.ServiceProcess Namespace
- ^ MSDN Documentation - System.Timers Namespace
- ^ MSDN Documentation - System.Transactions Namespace
- ^ MSDN Documentation - System.Windows.Forms Namespace
外部リンク
[編集]- .NET Framework Developer Center Microsoft Developer Network (MSDN).
- Base Class Libraries Community More information and FAQs about the BCL.
- .NET Framework 3.5 namespaces
- MSDN BCL Documentation
- BCLTeam's WebLog
- [1]