Silverlight 1.1の基本クラス ライブラリにおける非ジェネリック系のCollectionについて

Alpha版で調査をなされていらっしゃるお客さまも多いのではと思いますが、Silverlightのランタイムにおいて非ジェネリック系のコレクション クラスを取り除く予定でございます。また、ジェネリックのコレクション クラスでもList を使っての追加実装が可能な、Queue, Stack, LinkedListも取り除くことになります。

ジェネリック コレクション クラスと非ジェネリック コレクション クラスのマップはMSDN ライブラリにございますが、非ジェネリック系のコレクションでビジネス ロジックなどを組み上げられてしまわれSilverlightとの共有をなされるご予定であられた方にはご迷惑をおかけすることになると思います。この変更は、サイズの制限、ジェネリックによるコードの読みやすさ、ボックス化のない高パフォーマンスでタイプ セーフなライブラリといった点を考慮し、機能的な相似性などを考えた結果でございます。

しかし、このあたりのことを考えるにあたっては、日本語になっている情報や、お客さまの違いからくる日本のシナリオにおいて上手くいくかどうかということが気になりました。非ジェネリック固有の機能をロジックの判定にお使いになられている場合、まだ、ジェネリックまで手がまわらない方々の場合、また、コレクションのクラス ライブラリの使用や拡張をするまでにいたっていらっしゃらない場合など、クラスの独自実装はやはり困難になるかと思います。書店やWebを見ても、このあたりのガイダンスをする情報がなかなか日本語では見当たりませんし、私どもも製品のドキュメントでは網羅しきれない部分であり悩ましいところではあります。

このような懸念があることを担当のInbar Gazitにフィードバックとして返したところ、最近になっていくつかblogにて情報を公開しております。こちらの変更に加えて、Stack クラスのジェネリックを使った変換のサンプルや、ジェネリックによるコレクション クラスの動作の違いの注意点、スレッドの同期の懸念などを取り上げた内容もございます。残念ながら英語なのですが、有用なサンプル コードがいくつか紹介されておりますので、ご参考にしていただければと思います。