BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース 基本クラスライブラリに対する変更および改善

基本クラスライブラリに対する変更および改善

2005年以来、基本クラスライブラリは停滞している。他の.NETフレームワークは、進化しCLRの2.0バージョンにビルドされたが、基本クラスライ ブラリチームは、ゆっくりと希望リストを大きくしている。.NET 4では、CLRの新バージョンおよびBCLが準備段階に入り、最終的にこれらの拡張機能は実現可能となっている。

新しい型

IronPythonやF# のような言語には、単純だが真の整数型であるコア.NET言語に完全に適合しないものがある。整数を指定された設定ビットに適合するものに限定するVBや C#と異なり、これらの言語は事実上、どんな値も保持することができる。しかし、その2者間で値を共有するためには、他の言語は言うまでもなく、共通の実 装が必要である。基本クラスライブラリは、BigIntegerを追加することになっている。この高性能の実装はBCLチームおよびMicrosoft Solver Foundation(リンク)によって共同開発された。

主としてF#およびIronPythonに追加されたその他の型は、Tuplesである。Tuples自体は、たいしたものではない。元来固定長の一連の値を保持するデータ構造である。ある意味では、配列のようであるが、各値はさまざまな型を取ることができる。BigIntegerのように、BCLレベルにそれを組み込む理由は、重複した、互換性のない実装を避けることである。

コレクションの下に、SortedSetがある。これは別のクラスであるが、各ソートキーが固有でなければならない保管された一連のオブジェクトをサポートする。重複を許可する保管されたリストが、未だに欠けている。

管理されていないメモリサポート

非常に大きなファイルを扱っている場合、ネイティブデベロッパはMemory-Mappedファイルとして知られる技法に頼っている。その名前が示唆して いるように、メモリーマップされたファイルは、ファイル状の構造をメモリ内のアドレスにマップする。実際のファイルの他に、デバイスや共有オブジェクトを マップできる。メモリマップされたファイルの最も一般的な使用用途の1つに、プロセス間通信がある。このために、各アプリケーションが同様のファイル記述 子を開く。BCLの次バージョンでは、.NETデベロッパは、プラットフォーム起動呼び出しの代わりに、メモリマップされたファイルを直接使用することが できる。

国際化対応

.NET 4およびSilverlight 2のResource Managerは、CurrentUICultureのチェーンへのデフォルトではなく、UI言語に対するユーザの好みをサポートする。ユーザが複数の言語を好んで使用している場合に、特に重要である。

変化をもたらす

複数のSystem.Stringメソッド向けのデフォルトの比較ロジックが、変更されている。これは、英語のみのアプリケーションに影響を与えないが、国際的なアプリケーションに影響を与える可能性がある。

System.String(StartsWith、EndsWith、IndexOfおよびLastIndexOf)でのデフォルトの部分的なマッチングの過負荷は、デフォルトで国別環境に無関係である(原型)ように変更された。また、System.StringやSystem.CharのToUpperおよびToLowerが変更され、現在の国別環境の代わりに、不変の国別環境を使用する。StringComparisonパラメータを取る過負荷をつねに使用するよう推奨する、ガイダンスやFxCopの ルールがあるのだが、注意が足りないデベロッパはしばしばデフォルトの過負荷を使用する。.NETの以前のバージョンでは、これらのデフォルトの過負荷 は、現在の国別環境を使用し、国別環境に依存した比較をおこなう。無意識なデベロッパがデフォルトの過負荷を使用して、セキュリティ依存のストリング比較 をする場合、しばしばこれは微妙なバグを誘発する。最も顕著なのは、セキュリティの脆弱性である。

パフォーマンスの改善

現在、DirectoryおよびDirectoryInfo上のメソッドは配列を返す。これは、1つのエントリーがアクセスされる前に、ファイルの配列のすべてが追加される必要があることを意味する。DirectoryおよびDirectoryInfoへのIEnumerableのサポートが追加されたので、他のリストが追加されている間にも、ディレクトリの最初のファイルが即座にアクセス可能である。

 

原文はこちらです:http://www.infoq.com/news/2008/11/BCL-4

この記事に星をつける

おすすめ度
スタイル

BT