2009-04-08 16 views
2

私は経験豊富で多様な開発チームで作業しており、Windows Mobile 6向けの最初のモバイル開発にアプローチする準備をしています(プラットフォームの変更はできません)。オプション)。Windows Mobile開発:.Netコンパクトとネイティブ(C++)コードの選択

私たちは、Windowsデスクトップとサーバー開発用のVisual C++と.Netテクノロジの両方でスキルと経験を持っています。

モバイル開発には、画像処理とBluetoothデバイスへの読み取り/書き込みアクセスが含まれます。残念ながら、私は実際にそれ以上の詳細を与えることはできません。

私たちは、管理対象コードまたはネイティブコードを使用してモバイルクライアントを作成するかどうかを選択しようとしています。 C#またはC++をそれぞれ使用します。

私の質問は以下のとおりです。

  • これらの言語の間で期待される性能差がどのくらいありますか?ネイティブコードはモバイルデバイスではかなり高速だと聞いたことがありますが、経験豊かな人から聞いてみたいと思います。

  • ブルートゥースデバイスにアクセスするためのWindows Mobileサービスの操作に関して、どちらの言語に大きな利点がありますか?

  • 管理対象コードとネイティブコードの間にバッテリ寿命に影響はありますか?

  • 私たちが考慮すべき他の主要な知識はありますか?

フィードバックに感謝いたします。

答えて

1

非常によく似たquestionがほんの数日前に尋ねられ、答えられました。そこには役に立つ情報があります。ご質問

ショート答え:

  • ネイティブコードが高速ですが、多くの用途のために速度差が顕著ではありません。これがアプリケーションの重要な要素でない限り、ネイティブコードを速度にのみ使用しないでください。管理されたアプリケーションも高速で実行できます。起動するには時間がかかることがあります。
  • .NETアプリケーション用の優れたBluetooth libraryがあります。私はC++アプリケーションのための同様のライブラリを認識していません。
  • それは良いバッテリ寿命を達成するために、あなたの設計次第です。プラットフォームの選択は重要ではありません。
1

私はいくつかの考えと点を追加する必要があります。

私の職場では、私たちは、C++やATL/WTLを使用して、Windows CE 5.0用のアプリケーションを書いてきました。これはで動作するように素晴らしく、MFCと.NETの両方に比べて非常に軽いなってしまいます。 (ここで上級開発者が説明したように)考慮すべき

他の点は、.NET Compact Frameworkでは、マシンコードにアプリケーションがに切り替わるたびにバイトコードを再コンパイルする必要があることです。これは潜在的にとても気をつけて、時間とプロセッサパワーの長い量を取ることができます。

+1

シニア開発者が.NetのJITコンパイラとWindows CEの動作について混乱しているか、彼が言ったことを誤解しています。いずれにしても、WinCEのアプリケーションを切り替えると、.Netであろうとなかろうと、パフォーマンスに大きな影響はありません。 – MusiGenesis

4

もう1つの考慮事項は、メモリ使用量とモジュールサイズの問題です。私たちは、モバイル開発において重大な問題にぶつかり、OSにすべてのDLLをメモリにロードさせようとしました。通常のWindows開発とは異なり、すべてのモジュールをロードする必要がある32Mbという非常に厳しい制限があります。私たちはすべてのものをうまくロードするために、非常に汚いトリックをたくさん実行しなければなりませんでした。私たちは、ユーザーが携帯電話の電源を入れたり、Bluetoothデバイスを使用しても、それらのデバイス用のドライバは、モジュール用のスペースを使い果たしてしまうため、アプリケーションが失敗する可能性があることを発見しました。

すべてのことを念頭に置いて、このアプリケーションに追加されたモジュールの重量のために、.Netのサポートをアプリケーションに追加できませんでした。あなたのアプリケーションに多くの依存がある場合、これを余裕に入れる必要があるかもしれません。

関連する問題