基本クラスライブラリ

出典: フリー百科事典『ウィキペディア(Wikipedia)』
移動: 案内検索

基本クラスライブラリ(Base Class Library、通称BCL)は全てのCLI言語から利用可能な共通言語基盤 (CLI) 標準ライブラリである。

ボーランドマイクロソフトが1999年6月8日に結んだ特許契約の成果物で、Visual Component Libraryから派生したライブラリとなっている。また、一部のコンポーネントについてはバグまでもが完全移植されている。なお、これらのバグについては互換性維持のために修正されず現在も残されており、新たなコンポーネントの追加でその問題に対処している。

CLIはたくさんの数の共通機能をカプセル化するためにBCLを含んでおり、それはプログラマの仕事をより簡単にする。 C/C++を含む他のほとんどの言語の基礎ライブラリよりもずっと大きな領域をサポートしており、Javaクラスライブラリと比肩しうる。 CLIの最初の実装である.NET Frameworkは、BCLの起源である。BCLはときどきFramework Class Library (FCL) として間違って言及されることがあるが、これは、実際はマイクロソフト固有の名前空間を含むスーパーセットである。

BCLは.NET Frameworkのそれぞれのバージョンで更新されている。


名前空間[編集]

CLIの.NET Frameworkのマイクロソフトの実装として用意されたライブラリの一部として含まれているいくつかの名前空間 (namespace) は、マイクロソフトによって公式にBCL用と看做されているだろう。(訳注:あるいはそうではない / may or may not be officially considered)

標準化された名前空間[編集]

ECMA 335およびISO/IEC 23271:2006 standardsとして標準化された名前空間について記述する。[1][2]

System 
この名前空間はプログラミングの需要の核たるものを含んでいる。基本型、文字列、DateTime、論理値 (boolean) などなど、コンソール、数学関数、基本クラス、属性、例外および配列などの環境をサポートしている。
System.Collections 
プログラミングで使用される多くの共通なコンテナあるいはコレクションクラスを定義している。リスト (List)、キュー (Queue)、スタックハッシュ(Hash table)、連想配列(実装としてはHashtable/Dictionary)などである。これらはジェネリックプログラミングのサポートを含んでいる。[3]
System.Diagnostics 
アプリケーションに診断機能を提供する。イベントログ、パフォーマンスカウンタ、トレース、およびシステムプロセスに関する相互作用に関する機能である。[4]
System.Globalization 
国際化対応したアプリケーションを記述するための手助けとなる機能を提供する。「文化 (culture) に結び付けられた情報、言語、国や地域、カレンダーの使用法、日付のフォーマット法、通貨、数字など」が定義されるようになる。[5]
System.IO 
異なるストリーム (stream)、ファイルやほかのストリームを読んだり書いたりする機能を提供する。ファイルシステムに対するアクセスする機能も提供する。[6]
System.Net 
「今日ネットワークで使用される多くのプロトコルのための」インターフェイスを提供する。[7] HTTP, FTP, SMTPなど。セキュアな通信としてTLSなどが提供される。
System.Reflection 
型、メソッド、フィールドに対するオブジェクトビューを提供する。これにより「動的な生成や型を行使する能力」が得られる。[8] CLRのReflective programming機能へのアクセスするAPIを公開する。
System.Runtime 
アプリケーションやCLRの実行時の振る舞いを管理する機能を提供する。COMやネイティブコードとのinteropするいくつかの能力により、分散コンピューティングおよびバイナリあるいはSOAPへのオブジェクトのシリアライズが実現される。[9]
System.Security 
「CLRセキュリティーシステムの基礎をなす構造体提供する」[10] この名前空間はアプリケーションにポリシーと権限に基づいたセキュリティーを構築する機能を提供する。暗号化サービスなど。
System.Text 
さまざまなエンコード、正規表現、より効果の高い文字列の操作メカニズム(StringBuilder)などをサポートする。[11]
System.Threading 
マルチスレッドプログラム開発を容易にする手助けである。「スレッドの活動とデータへのアクセス」を同期すること、および「システムにより供給されたスレッドプール」を提供する。[12]
System.Xml 
XML処理のための標準ベースのサポートを提供する」[13] 読み書き、スキーマ、シリアライズ、検索、変換の機能を含む。
System.Diagnostics.CodeAnalysis 
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.CodeDom 
このライブラリは実行時にコードを生成し実行する機能を提供する。[19]
System.ComponentModel 
コンポーネントおよびコントロールに対する実行時およびデザイン時の振る舞いを実装する機能を提供する。「属性、型のコンバーター、データソースのバインディング、およびライセンスコンポーネントの実装のための」インフラを含んでいる。[20]
System.Configuration 
設定のハンドリングのインフラを提供する。[21]
System.Data 
この名前空間はADO.NETアーキテクチャを押さえ込んでいる。プログラマが使用できるデータアクセスおよびデータサービスのコンピュータソフトウェアコンポーネントのセットである。[22]
System.Deployment 
ClickOnceを使用してアプリケーションをアップグレードする方法をカスタマイズする機能を提供する。[23][24]
System.DirectoryServices 
マネージドコードからActive Directoryへのアクセスを提供する。[25]
System.Drawing 
GDI+によるグラフィック機能へのアクセスを提供する。2Dおよびベクターグラフィック、画像処理、印刷、およびテキストサービスを含む。[26]
System.EnterpriseServices 
「COM+ servicesへのアクセスする.NETオブジェクトを提供する。これによりエンタープライズのアプリケーションのためのより現実的な開発が可能になる」[27](訳注:修飾関係が複雑だったため訳が正しくない可能性があります。チェックをお願いします)
System.Linq
IQueryable<T>インターフェイスおよび関連するメソッドを定義する。これによりLINQが追加提供される。[28]
System.Linq.Expressions
デリゲートおよびラムダ式により構文木として記述された高レベルなコードが実行時に検査され、実行されることを許可する。[29]
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の将来的な機能[編集]

参照[編集]

  1. ^ ECMA C# and Common Language Infrastructure Standards”. マイクロソフト (2009年). 2009年2月26日時点のオリジナルよりアーカイブ。2009年2月21日閲覧。
  2. ^ Common Language Infrastructure (CLI)”. Ecma International (2006年6月). 2009年1月31日時点のオリジナルよりアーカイブ。2009年2月21日閲覧。
  3. ^ MSDN Documentation - System.Collections Namespace
  4. ^ MSDN Documentation - System.Diagnostics Namespace
  5. ^ MSDN Documentation - System.Globalization Namespace
  6. ^ MSDN Documentation - System.IO Namespace
  7. ^ MSDN Documentation - System.Net Namespace
  8. ^ MSDN Documentation - System.Reflection Namespace
  9. ^ MSDN Documentation - System.Runtime Namespace
  10. ^ MSDN Documentation - System.Security Namespace
  11. ^ MSDN Documentation - System.Text Namespace
  12. ^ MSDN Documentation - System.Threading Namespace
  13. ^ MSDN Documentation - System.Xml Namespace
  14. ^ MSDN Documentation - System.Diagnostics.CodeAnalysis Namespace
  15. ^ MSDN Documentation - System.Diagnostics.Contracts Namespace
  16. ^ MSDN Documentation - System.Diagnostics.Eventing Namespace
  17. ^ MSDN Documentation - System.Diagnostics.PerformanceData Namespace
  18. ^ MSDN Documentation - System.Diagnostics.SymbolStore Namespace
  19. ^ MSDN Documentation - System.CodeDom Namespace
  20. ^ MSDN Documentation - System.ComponentModel Namespace
  21. ^ MSDN Documentation - System.Configuration Namespace
  22. ^ MSDN Documentation - System.Data Namespace
  23. ^ MSDN Documentation - System.Deployment.Application Namespace
  24. ^ MSDN Documentation - System.Deployment.Internal Namespace
  25. ^ MSDN Documentation - System.DirectoryServices Namespace
  26. ^ MSDN Documentation - System.Drawing Namespace
  27. ^ MSDN Documentation - System.EnterpriseServices Namespace
  28. ^ MSDN Documentation - System.Linq Namespace
  29. ^ MSDN Documentation - System.Linq.Expressions Namespace
  30. ^ MSDN Documentation - System.Management Namespace
  31. ^ MSDN Documentation - System.Media Namespace
  32. ^ MSDN Documentation - System.Messaging Namespace
  33. ^ MSDN Documentation - System.Resources Namespace
  34. ^ MSDN Documentation - System.ServiceProcess Namespace
  35. ^ MSDN Documentation - System.Timers Namespace
  36. ^ MSDN Documentation - System.Transactions Namespace
  37. ^ MSDN Documentation - System.Windows.Forms Namespace

外部リンク[編集]