.NET Compact Framework と、.NET Framework の違い

[このドキュメントはプレビュー版であり、後のリリースで変更されることがあります。 空白のトピックは、プレースホルダーとして挿入されています。]

.NET Compact Framework は、完全な .NET Framework のサブセットです。 完全な .NET Framework クラス ライブラリの約 30% を実装し、機能とモバイルおよび埋め込み開発に固有のクラスも含まれます。

このトピックは、2 つのフレームワーク、違いがすべてについて説明しないがアプリケーションを開発する際の重要な考慮事項を一覧表示します。

アプリケーション ドメイン

.NET Compact Framework は現在サポートしていませんドメイン中立コード領域にアセンブリの読み込み複数のアプリケーション ドメインが使用します。 詳細については、「アプリケーション ドメインの .NET Framework を最適化します。」を参照してください。

配列

一部の言語が 0 以外の下限をサポート共通言語ランタイム (CLR) しないおよび最初の要素がゼロでしない場合、MissingMethodException をスローします。

ASP.NET

.NET Compact Framework 主にリッチ クライアントのプラットフォームであり ASP.NET サポートを行いません。 モバイル デバイスの Web ページの開発、ASP.NET モバイル Web コントロールを使用できます。 パーソナル コンピューターまたは Web サービス プロバイダーの Web ページの開発、ASP.NET のマニュアルを参照してください。

アセンブリとファイル形式

両方のフレームワークのアプリケーションは、アセンブリを使用します。 両方のフレームワークはポータブル実行可能 (PE) ファイルを Microsoft 中間言語 (MSIL) を含めると、.NET Framework アプリケーションを定義するメタデータをアクセスします。 PE ファイル定義され、その他のアセンブリ ファイルによって共有されるプログラミング名前空間を参照できます。 詳細については、「完全な .NET Framework にバイナリ互換性」を参照してください。

アセンブリとグローバル アセンブリ キャッシュ

.NET Compact Framework は、複数モジュール アセンブリは現在サポートしませんがサテライト アセンブリはサポートします。

クラスと型

.NET Compact Framework .NET Framework クラス ライブラリのサブセットをサポートします。 このサブセットは、リソースの制約のあるデバイス上で実行されるように設計して意味の .NET Framework 内の同じ厳密クラスに互換性がアプリケーションに適したです。

サポートの .NET Compact Framework を判断する方法については、 方法 : 検索、.NET Compact Framework のメンバーをクラス ライブラリでサポートされていません を参照してください。

COM 相互運用

COM 相互運用機能と .NET Compact Framework との完全な .NET Frameworkの違いをマーシャリングについては、 .NET Compact Framework の相互運用性 を参照してください。

[共通言語ランタイム]

両方のフレームワークで、共通言語ランタイムはマネージ コードの実行、ジャスト イン タイム-(JIT: Just-In-Time) コードのコンパイル、およびガベージ コレクションによって活用できます。 これらのサポート、共通言語仕様 (CLS)。

両方のフレームワークを使用して、アプリケーションをビルドするときにから派生できる他の種類と同様に組み込みのプリミティブ型があります。

.NET Compact Framework の共通言語ランタイムの完全な .NET Framework 共通言語ランタイムのサイズを約 12% になります。

コントロール

.NET Compact Framework はほとんどの完全な .NET Framework によって提供される Windows フォーム コントロールをサポートし、 .NET Compact Framework に固有のコントロールを含みます。

.NET Compact Framework に対して、特別 Windows フォーム コントロールが作成されます。 詳細については、「.NET Compact Framework 内のコントロール」を参照してください。

現在のディレクトリ

現在のディレクトリの機能は Windows Embedded CE オペレーティング システムに存在しません。 したがって、.NET Compact Framework は、 GetCurrentDirectorySetCurrentDirectory メソッドをサポートしません。

.NET Compact Framework WorkingDirectory オブジェクトの ProcessStartInfo プロパティをサポートします。 ただし、そのコンテキストは、それ以降の起動で実行されている実行可能ファイルでは保持されず、ファイルを読み込みます。

データ

.NET Compact Framework ADO.NET のサブセット実装を提供し、 SQL Server Mobile データ プロバイダーを示します。 System.Data.OleDb 名前空間はサポートされていません。 データのサポートについては、 データ アクセスおよび .NET Compact Framework における XML のサポート を参照してください。

データ型と浮動小数点精度

.NET Compact Framework MidpointRounding 列挙サポートしません。

除算、計算で、除数が非常に大きい場合は浮動小数点数、最大で浮動小数点値、またはそれが非常に低いまたは、最小の浮動小数点値で、計算は、正しい計算ではなく 0 (ゼロ) を返します。。

MIPS プラットフォームを 標準のバイナリの Floating-Point 演算 (IEEE 754) で指定された完全な精度をサポートしていない予期しない結果が生じる。 .NET Compact Framework では、パフォーマンスの考慮事項のため、このプラットフォーム用の浮動小数点エミュレーション機能を提供しません。

デリゲート

BeginInvoke と EndInvoke の方法を具体的には、非同期デリゲートことはできません。 詳細については、「代理人を使用して非同期のプログラミング」を参照してください。

アプリケーションの配置

アプリケーションを配置するには、は、デスクトップ コンピューター、その赤外線ポート、またはワイヤレス インターネットまたはイントラネット接続からケーブルを使用してターゲット デバイスに、アセンブリ コピーこと簡単にできます。 Microsoft Visual Studio 2005 でのデバッグ中に、デバイスに直接展開できます。

診断トレース

.NET Compact Framework トレースの構成ファイルはサポートされませんが、パフォーマンス カウンターを使用することができます。 詳細については、「最適化フレームワークのパフォーマンスと、.NET での診断」を参照してください。

オブジェクトの破棄

完全な .NET Framework はプロパティまたは破棄されたオブジェクトのメソッドへのアクセスは常に成功を保証されません。 ただし、多くの場合、Text などのいくつかのプロパティへのアクセスが .NET Framework で成功は。 実装の違い、2 つのフレームワークのためのメソッドまたはプロパティを破棄されたオブジェクトへのアクセスはほとんど失敗 .NET Compact Framework でします。

エンコーディングとローカリゼーション

日付書式や並べ替えテーブルのロケールに適した、ローカリゼーション (グローバリゼーション) のサポートは基になるオペレーティング システムの互換性やサイズ効率可能な限りに延期します。

.NET Compact Framework 用データの並べ替えのオペレーティング システムによって異なります。 したがって、並べ替え予期しない結果の一部のカルチャになる可能性があります。

.NET Compact Framework CurrentUICulture 設定のスレッドごとのサポートしません。

ローカリゼーション サポートについては、エンコーディングと、.NET でローカライズ フレームワークを最適化します。 を参照してください。

イベント

.NET Compact Framework GotFocusLostFocus イベント、サポートします、は、 Deactivated イベントをサポートしていません。

例外説明文字列

.NET Compact Framework は、個別の DLL 内の例外エラー メッセージ文字列という System.SR.dll メモリを節約するのには提供します。

アプリケーションをローカライズする別のカルチャの例外の文字列も提供されます。

ファイル名およびパス

Windows Embedded CE としてアプリケーション ディレクトリにない、デバイスのルート ディレクトリのパス情報なしで指定されているファイル名を解決します。 正常な動作を確認するには絶対パスについてを指定します。

.NET Compact Framework file://の完全な .NET Framework の異なる付きます URI (Uniform Resource Identifier) 文字列を処理します。 file://myfile のような相対仕様を \\myfile として解決します。 次の 3 つのスラッシュ) での URI 文字列 file:///myfile をルート ディレクトリに \myfile として解決します。

Version プロパティを持つアセンブリのバージョンを取得することができますが、サポート、デバイスの製造元によって異なりますは保証できません。

アプリケーションを含むディレクトリの名前を取得、方法 : アプリケーション ディレクトリを取得します。 参照してください。

高解像度

.NET Compact Framework 2.0 以降のバージョンで、DPI の解像度は Visual Studio プロジェクトで自動的に処理されます。 高解像度については、方法 : 印刷の向きと解像度の変更を処理します。 を参照してください。

入出力 (I/O)

デバイスのオペレーティング システムの違いのための制約と、I/O モデルの制限があります。 .NET Compact Framework ファイル変更通知は行いません。

RAM にデバイスの I/O が発生したため、ファイルとディレクトリの属性を設定またはアクセスできませんされます。

インストールおよび CAB ファイル

CAB ファイルを使用し、アプリケーションを配布する Microsoft Windows インストーラー アプリケーションを作成できます。

言語

.NET Compact Framework Visual Basic と Visual C# を使用して開発をサポートが C++ は現在サポートされません。

Math オブジェクト

すべての数学メソッドは、すべてのデバイスのプラットフォームでサポートされてただし、互換性を維持するため、API に含まれています。

メモリ

.NET Compact Framework バッテリ駆動のシステム用に最適化されたし、RAM の容量と CPU サイクルの頻繁に使用を回避します。 メモリを節約する方法については、.NET Compact Framework でデバイスのメモリ管理方法 : パフォーマンスを向上します。 を参照してください。

ネットワーキング

.NET Compact Framework には、赤外線接続およびデバイスへの HTTP 要求を処理用の Web リッスンしているクラスの赤外線データ関連 (IrDA) クラス用意されています。 これらのクラスは、.NET Compact Framework でのみ利用できます。 詳細については、「ネットワークと、.NET での接続の圧縮フレームワーク」を参照してください。

プロキシ コード

.NET Compact Framework は、Web サービス記述言語ツール (Wsdl.exe) によって生成されたすべてのコード サポートしません。 特定するコードはサポートされていません、方法 : Wsdl.exe によって生成されたプロキシを使用します。 参照してください。

反転

.NET Compact Framework System.Reflection.Emit 名前空間サポートしません。

.NET Compact Framework は現在サポートしていません==と等値演算子 ( MethodInfo) FieldInfoPropertyInfoEventInfoMemberInfoMethodBaseConstructorInfoParameterInfo などのオブジェクトをリフレクション比較する場合。 代わりに、次の値に等しいメソッドの実装 表示します。

リモート処理

.NET Compact Framework リモートをサポートしません。 .NET Compact Framework 内のキュー メッセージ 代替ソリューションに対して参照してください。

セキュリティ

セキュリティの違いと考慮事項は、.NET Compact Framework のセキュリティ で説明します。

シリアル化

サイズとパフォーマンスに関する考慮事項のため、.NET Compact Framework BinaryFormatter、または SoapFormatter を使用して SOAP シリアル化を使用してバイナリ シリアル化サポートしません。

ただし、.NET Compact Framework は、XML Web サービスでの SOAP を使用してデータセットを XML にシリアル化オブジェクト データを転送のシリアル化のサポートを提供は。

[サイズ]

.NET Compact Framework 8% は完全な .NET Framework 再頒布可能パッケージのサイズです。 ディスクのサイズは、50% 小さくなります Windows Embedded CE ファイル システムの圧縮のためです。

ソケット

すべてのソケット オプションには。 詳細については、「ソケットのプログラミング」を参照してください。

文字列操作、正規表現

.NET Compact Framework で正規表現を使用するアプリケーションは正規表現を完全な .NET Framework で使用するアプリケーションのバイナリ互換性でないがソース コードは互換性のあります。

Threads

.NET Compact Framework アプリケーションは 4 つまでスレッドを作成します。

  • メイン アプリケーション スレッド。

  • さまざまな期間タイマーと、システムまたはアプリケーションによってスケジュール可能なタイムアウトを制御するために使用されるスレッド。

  • 変更 (Windows XP がいないで Windows Embedded CE 上に存在しているメディア センス動作をシミュレート) 作業中の TCP/IP インターフェイスを追跡に使用されるスレッド。

  • オブジェクトのファイナライザーの実行に使用されるスレッド。 最初のファイナライズ可能なオブジェクトがガベージ コレクションされたときに、このスレッドが作成されます。

スレッド処理のサポートについては、.NET Compact Framework でスレッド を参照してください。

時間の間隔を設定

Now プロパティは、秒、ミリ秒いないのみに固有の値を返します。 TickCount プロパティを使用してさらに細かく測定値を取得できます。

タイマ

Start とオブジェクトの StopSystem.Timers.Timer メソッドはサポートされていません] が開始および EnabledSystem.Windows.Forms.Timer に true オブジェクトの false プロパティを設定してタイミングを停止することができます。

Visual Basic [

The compact supports the Visual Basic My feature (see My による開発), except for the following My objects:

  • My.Application

  • My.Computer

  • My.User

  • My.Settings

Web サービス

サービスのクライアントが実行される Web 直接 wsdl.exe によって生成されるアセンブルします。

localhost、デバイス、アプリケーションを実行するを指すため、localhost、Web サービス、デバイスを作成使用しないでください。 代わりに、コンピューターの名前または IP アドレスを使用する必要があります。

XML

、サイズの考慮事項のため、XML スキーマの検証をサポートしません .NET Compact Framework。 XML ドキュメント オブジェクト モデル (DOM) はサポートします。 詳細については、「データ アクセスおよび .NET Compact Framework における XML のサポート」を参照してください。

参照

その他の技術情報

.NET Compact Framework の概要