完全な .NET Framework とのバイナリ互換性
更新 : 2007 年 11 月
.NET Compact Framework は、完全な .NET Framework および共通言語ランタイムとの互換性を持つサブセット実装です。
厳密な名前のバインディング ポリシーがない場合、.NET Compact Framework に対してコンパイルされたアプリケーションは、完全な .NET Framework でバインドされて実行されます。次の考慮事項に注意してください。
.NET Compact Framework のアセンブリは、別の厳密な名前のキー ペアで署名されているため、共通言語ランタイムでは、これらのアセンブリを完全な .NET Framework のアセンブリと区別できます。
.NET Framework には、互換性のある .NET Compact Framework の参照の代わりに完全な .NET Framework アセンブリを使用するためのバインディング ポリシーが含まれます。これにより、通常、オブジェクトの新しいインスタンスを作成しなくても、既存のコンポーネントを再利用できるようになります。たとえば、.NET Compact Framework の System クラスのみを参照するコンポーネントの場合、両方のフレームワークに対して互換性があります。
完全な .NET Framework は、「.NET Compact Framework でサポートされるクラス」の一覧にある .NET Compact Framework のみでサポートされるクラスと型をサポートしません。
プラットフォーム間のバイナリ互換性によってミドルウェア コンポーネントの開発と配置を簡略化することは重要ですが、その一方で、機能豊富なクライアント アプリケーションでは、デバイス固有の機能を活用してユーザーの操作性を向上することも同様に重要だと考えられます。これは、グラフィカル ユーザー インターフェイスの最良のコードは対象デバイスに特化したコードとなる可能性が大きいということを意味します。
.NET Compact Framework では、デバイス固有の機能を個別の名前空間とアセンブリにファクタリングして競合を回避するようにしていますが、処理できない非互換のファクタリングが存在する可能性はあります。そのような場合にデバイス固有の機能を完全な .NET Framework と誤って組み合わせて使うと、アプリケーション読み込み例外ではなくランタイム例外が発生します。