すべてのメーが開発Win32アプリのC++以上。NETアプリクライアントまで、フルのC#?

StackOverflow https://stackoverflow.com/questions/562620

質問

私はwindowsグ用サンプルシミュレーションのWin32APIに含まれています。くわしくはこちらをご覧くださいにもアプリの開発。NET用のC#.理解しているほとんどの時間のない性能差がネイティブコードコンポーネントです。なった場合、また書き込みを開始する新しいデスクトップアプリが今日あるのは如何なる理由以外にもっているからだと思うみなさんのC++といいかもしれませんねをしない、非営C++です。います。があるのもメリットをC++およびネイティブコードについて教えてください。やってる方法については未交換。NET、Windowsプラットフォーム?

もちろん知っている人が書いて低レベルのデバイスドライバと同様のプログラムなんです。います。いい参考に典型的なクライアントアプリを作成するのではありません直接ハードウェアに発信します。

役に立ちましたか?

解決

  • 性能(特定の状況などのグラフィック)
  • メモリフットプリント(Mancusoい)
  • 既存の図書館
  • を必要としませんruntime
  • より細かく制御

一覧表示。

しかしながら、お客様のものを見たいから何を学べるか"というテーマを対角に公平に評価する言語を利用します。

また、利なC++/CLIの両方を組み込むために、ネイティブ。純ます。

他のヒント

IMO小さなダウンロード可能なアプリケーションのための最も重要なのはネイティブコードが.NETランタイムを必要としないということです。ブロードバンドがますます一般的になりますがありませんほぼ誰もがまだそれを持っています。

一部の人々は、あなたの2メガバイトのアプリケーションを実際に実行するためのフレームワークのダウンロードと厄介なインストールプロセスの別の20メガバイトが必要であることを確認するために失望することができます。彼らは本当に最初の場所で、あなたのアプリケーションが必要かどうかわからない場合、彼らはたださえそれを試してみる前に、それを削除し、競合製品になるかもしれません。

あなたのアプリケーションは、インストールせずに実行できるようにする必要がある場合(つまり、あなたは、または.NET Frameworkをインストールするような何かをすべきではないことができない場合)、あなたは(.NETはWindowsマシン上であることに数えることができませんVista以前)。ユーティリティアプリケーションの多くは、このカテゴリーに入ることができます。

のものをお勧めします 書く毎にデスクトップアプリケーショ 管理コード..NET/C#でplatformいます。

私の理由

  1. 性能刑制度は無視できる.Googleのためのベンチマークかない場合には私の言葉です。その中で、コードそのものです。きにはO(n^m)アルゴリズムをC++でいます。NET/C#.JITエンジンは非常に成熟します。
  2. ポC++大きな欠点で ユニット試験、嘲笑うとリファクタリング.この非常に煩雑と柔軟性を欠く.反射で管理されるようにするためのコードという非常に便利です。
  3. 展開する小さな問題です。しかし、セットアップをチェックのために必要です。純前提条件、設置まで自動的に行います。はない-同じ系列.
  4. 正常にコンパイルできているこの芽 ないリンカー!でも起こるのと同時に、バックグラウンドを編集するコードです。
  5. .当期純 図書館を支援 この方法により、クリーナーよりSTL MFCと進みました。
  6. なヘッダファイルおよびマクロ.それらは単なるエラーに陥りやすい。
  7. 安全保障!Good byeバッファが溢れる、悪へのポインタが初期化されていない変数の...
  8. 例外.明確な階層の例外です。います。C++の例外を除いてすぐです。

メモリー・フットプリント。あなたが深刻な障害者のマシンのメモリ単位のために開発している場合を除きしかし、それは実際にほとんどのアプリケーションのための問題ではありません。

は、.NETのために行く、スタック上の依存関係に余裕があれば モダンでエレガントな、強力かつ結果としてはるかに速くするために開発しています。

しかし、あなたはそれにアプリをチェーンことを実現 - 。言語やフレームワークに、あなたはこれをエスケープしたい場合があり、将来をforsee場合は、より良い考え直す

Win32のは、古いものと不格好ですが、それは、余分な依存関係なしで事実上すべてのWindowsのバージョンを上で動作し、あなたのコードは、プレーン、ポータブル、C / C ++にすることができます。

+1 / NETのパッケージを必要とするターゲット・マシン(複数可)にインストールする必要がないため。これは、まだ大きな問題です。

すべてのマシンは、モノまたはNETを持っている場合、それは、そのような大したことはありません。

二つのことをいいことだと思います。

  1. 知的財産の保護に関してで無限にくいリバースエンジニアリングしたり、ユC++アプリです。管理します。純またはJavaアプリケーションが簡単にデコンパイルの場合はこの限りではありませんとポ可能です。

  2. 高速になります。C++に近いハードウェアとして小さいメモリフットプリントのその他のコメントした。このほとんどのゲームを続けるC++で記述され、インライン。

.NETプログラムも本当にないネイティブサポート期間を、持っています。ネイティブは、更新を必要とせずにOS年代別の間で長年にわたって実行されます。

.NETプログラムが悪い。ネットの構成でまずいことができ、ネイティブだけで実行を続けていると、ほとんどOSのアップデートによって影響されません。

.NETプログラムは起動が遅く、迅速な低迷、ネイティブの始まりを感じるし、迅速に実行されます。

.NETは、ネイティブアプリケーションにすべてのコードをコンパイルする最小公分母(ほとんどの分散フレームワークのバージョン)のためにコード化する必要がある - ので、あなたが望むものを使用します。

ネイティブではなく、C ++のために使用デルファイ。 .NETは、部分的にデルファイRADとJavaのバックエンドに基づいています。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top