質問

.NET でデスクトップ アプリケーションを開発する場合、.NET Framework を必要としないことは可能ですか?.NET でソフトウェアを開発することは、デスクトップ アプリケーションを開発する好ましい方法ですか?ソフトウェア会社がデスクトップ アプリケーションの開発に使用する最もよく使用されているプログラミング言語は何ですか?

.NET Framework の要件は、インストールされている Windows OS に基づいて想定されているだけなので、Windows OS のバージョン要件がリストされているのはなぜですか?

役に立ちましたか?

解決

C/C++ を使用して Windows デスクトップ用のアプリケーションを開発することはでき、.NET Framework への要件は不要になりますが、必要なライブラリがすでにシステム上にあるか、インストールされていることを確認する必要があります。

.NET Framework の優れた点は、Windows XP SP2 および Vista には 3.0 フレームワーク ランタイムがデフォルトでインストールされていることです。

多くの意味で、これは Microsoft の「開発標準」であり、しばらくの間そのようになっています。これにより、アプリケーションに大量のライブラリが追加されることを心配する必要がなくなります。.NET が提供するライブラリをすべて使用する場合は、実行可能ファイルのデプロイについてのみ考慮する必要があり、大きな頭痛の種が軽減されます。同様にデプロイする必要があるライブラリが多数ある場合、更新を作成するときに問題が発生し始めます。これらの更新が既存のインストーラーと既存のインストールされているすべてのアプリに確実にプッシュされるようにする必要があるからです。 。

「好ましい」という点に関しては、時には混乱することもありますが、私がよく訪問する就職活動サイトでは、Web およびデスクトップ向けの .NET 開発者を求めている人が増えています。8^D

編集:フレームワークに関する私の混乱を指摘してくれた Orion に感謝します。XP SP2 または Vista を使用している場合は、すぐに 3.0 を入手できます。それ以外の場合は、Windows Update を簡単にダウンロードまたは実行する必要があります。

他のヒント

.Net フレームワークなしでは .Net アプリを実行できません。フレームワークは面倒なバックグラウンド タスクの一部を処理するため、フレームワークなしではアプリを実行できません。

Windows プラットフォームでは、.NET を使用することがデスクトップ アプリケーションの開発に推奨される方法です。.NET の WinForms モデルは、従来のクライアント アプリまたはシック クライアント アプリを開発する 1 つの方法であり、.NET の Windows Presentation Foundation は MS の最新テクノロジの方向性です。

私が言いたいのは、特定のソフトウェアのシステム要件を確認するときに、.NET Framework が要件であることはほとんどないということです。したがって、(.NET でソフトウェアを開発した場合に) それが要件にならずにどうやってやっていくのかといつも疑問に思います。したがって、ほとんどの商用ソフトウェアは .NET で書かれていないと推測しているので、この質問をしているのです。これでいくつかのことが解決されたことを願っています。

単核症 .NET への依存を絶対に避けなければならない場合は、Windows リリースがあります。

ただし、どう考えても、アプリケーションを実行するコンピューターには .NET 互換のランタイムが必要です。したがって、.NET を完全に回避したい場合は、おそらくアプリケーションと一緒に Mono ランタイムを配布する必要があります。

.NET アプリケーション配布のベスト プラクティスは、必要なフレームワークの .NET 再頒布可能インストーラを使用してインストーラを何らかの方法でブートストラップすることです。そのため、必要なフレームワークがまだインストールされていない場合 (たとえば、Windows XP では 3.5 が必要な場合)、インストーラはそれを入れるだけです。

.NET ランタイムは、これが可能なほど十分に小さいインストールです (.NET 2.0 の場合は約 24MB ですが、.NET 3.5 がどのくらいの大きさかは確認していません)。

私が言おうとしているのは、特定のソフトウェアのシステム要件を見ると、.NETフレームワークが要件であると見なすことはめったにないということです。ですから、私はそれが要件にならずに彼らがどのようにうまくいくのだろうか(彼らが.NETでソフトウェアを開発した場合)。ですから、ほとんどの商用ソフトウェアは.NETで書かれていないと仮定しているため、この質問をしているのはそのためです。これでいくつかのことが解決されたことを願っています。

数字はありませんが、ほとんどの人がデスクトップで XP と Vista を実行しているため、特に 2.0 フレームワークをターゲットにしている場合は、.NET フレームワークをリストするのは意味がないと推測します。アプリケーション自体。その昔、Windows のインストールにデフォルトで組み込まれて以来、「vbrun50.dll が必要」などと表示されているアプリケーションを何個見たことがありますか?

さらに、コンピューターにあまり詳しくない人にとっては、「怖さ」は少し和らぎます。彼らがやりたいのは、アプリをダウンロード、インストール、実行することだけです。私が持っているいくつかのアプリには 2.0 フレームワークが必要ですが、それは何ですか、どうすれば入手できますか、何か費用はかかりますか、と尋ねられる人もいます。私が彼らに与える典型的な答えは、「XP または Vista を実行している場合は、何も心配する必要はありません」です。そして、彼らはそれを気に入っているようです。

.NET Framework を静的にリンクして開発する必要がなくなるようなことができたとしたら、Microsoft が提供する EULA に違反することになると思います。

これは、これほど豊かな開発者エクスペリエンスを得るために支払わなければならない代償なのです。MFC プログラミングに戻ることの難しさを考えると、価値があります。

Remotesoft はリンカーを提供しています - 単一開発者ライセンスで 1250 ドルです。 http://www.remotesoft.com/linker/index.html

アプリケーションが Mono で実行される場合 (Mono の Winform デスクトップ サポートは現在非常に優れています)、アプリケーションを単一の実行可能ファイルである Mono バンドルとしてパッケージ化できます。2 つのオプションがあります。デフォルトではランタイムが含まれますが、静的にリンクされません。もう 1 つは、Mono ランタイムに静的にリンクします。静的リンクを望まない理由は、アプリケーションが LGPL の下に置かれてしまうためです。静的にリンクされていないバンドル (単一の exe のみ) にはその要件はありません。http://www.mono-project.com/Mono:Runtime#Bundles

の使用を検討してもよいでしょう 「ClickOnce展開」, これにより、.Net 2.0、3.0、または 3.5 の再頒布可能インストーラーのブートストラップをアプリケーションに簡単に追加できます。プロジェクトのプロパティでチェックボックスをクリックするだけで、インストーラーは前提条件のフレームワークがインストールされているかどうかを自動的に検出し、インストールされていない場合はインストールします。

すべての状況に適しているわけではありませんが、活用できればかなりスムーズになります。

.NET (C# を使用) でプログラミングを行ったところ、多くのコントロールをさらに制御したいと思うことがよくあることに気づきました。これらには、.NET Framework を超えた知識が必要でした。

たとえば、Web アプリケーション用の自動テスト ツールを作成するために WebBrowser コントロールを使用して作業していたとき、状況によっては下位レベルの axWebBrowser ActiveX コントロールのイベント ハンドラーが必要になることや、ドキュメントが不足していること、コード サンプルに多くのものが組み込まれていることを認識しました。 COM 相互運用の概念。COM に関する知識があれば役に立つかもしれません。

私が言おうとしているのは、特定のソフトウェアのシステム要件を見ると、.NETフレームワークが要件であると見なすことはめったにないということです。ですから、私はそれが要件にならずに彼らがどのようにうまくいくのだろうか(彼らが.NETでソフトウェアを開発した場合)。ですから、ほとんどの商用ソフトウェアは.NETで書かれていないと仮定しているため、この質問をしているのはそのためです。これでいくつかのことが解決されたことを願っています。

Windows デスクトップ用に C++/MFC で開発されたアプリケーションの多くは、要件として明示的にリストされていない場合でも、特定のバージョンの MFC ランタイム DLL を必要とします。.NET を必要とするアプリケーションでも同じことが当てはまりつつあると思います。

たとえば、私が取り組んでいるアプリケーションには、.NET と、必要な MFC の特定のバージョンの両方の再頒布可能ファイルと、その他の多くの必要なコンポーネントが同梱されています。当社のインストール プログラムは、ユーザーのシステムに現在インストールされていないコンポーネントをインストールします。過去数年間の各リリースでは、以前のリリースよりも多くの .NET コードが使用されてきました。

要件としてリストされていないからといって、ほとんどの商用ソフトウェアが .NET を使用しないと考えるのは正確ではないと思います。そこから何かを正確に推測することはできないと思います。

.NET Framework の優れた点は、Windows XP には 2.0 Framework ランタイム ライブラリがデフォルトでインストールされていることです。

いつから?多くの Windows XP ユーザーにこれをインストールするように指示する必要がありました。はい、Windows Update を通じてダウンロードできますが、これはオプションのインストールであり、自動的に行われるものではないと確信しています。

Vista には 3.5 がインストールされています

いいえ、3.0 がインストールされています。WPF を入手できますが、 しないでください リンクを取得

はい、フレームワークを使用せずに、dot NET で組み込まれたアプリケーションを構築できます。ESS dotNET FuZe などのプログラムを使用して、フレームワーク DLL を含む任意の DLL をアプリケーションに組み込むことができます。結果として得られる EXE にはフレームワークは必要ありません。

このリンクに移動してください: http://essaver.net/fuze.html FuZe を見てみましょう。

.NET Framework を必要としないことも可能です。これを可能にするソリューションを (数千ドルで) 販売している会社もあります。ただし、これらは完全なハッキングであり、Microsoft によってサポートされていません。

デスクトップ アプリケーションを開発する方法 (つまり、.NET を使用するかどうか) は、要件によって異なります。好ましい方法はありません。

最もよく使われる言語はおそらく C# です。

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