14

自分のプロジェクトを Web ベース (Web アプリのように) にするか、デスクトップ ベース (デスクトップ アプリケーション) にするか、クラウドに同期または接続できるデスクトップ アプリケーションにするかを決めるのに苦労しています。

他の誰かがこのアプリケーションに興味を持っているかどうかはわかりませんが、それは私だけのものになるので、デスクトップ アプリケーションに傾倒しています。なんらかの理由でそれを完成させてリリースし、人々が実際にそれを気に入った場合、クラウドと同期することも検討するかもしれません (v2 を考えてください)。しかし、そのような根本的な変更を行うことがどれほど難しいかはわかりません。また、プロジェクトを開始する前に選択を誤ったために、役に立たない良いものになってしまいたくありません。

これに関するガイダンスはありますか?経験則やベストプラクティスはありますか? 個人的な経験はありますか?

言語が重要な場合、Java について考えているのは、単純に Java に最も慣れているからです。Java を使用すると、友人と簡単に共有してテストしたり、行き詰まって他の誰かから直接助けが必要になったりする可能性があります。

4

10 に答える 10

17

私は通常、いくつかの質問をします。

  • Webでもできるの?少し前までは、画像編集コンポーネントが含まれていましたが、それは Web アプリでなければなりませんでした。これを機能させるには多大な労力が必要であり、デスクトップ アプリの方がはるかに優れた方法でした。
  • どこからでもアクセスする必要がありますか? ええ、サムドライブにロードすることもできますが、この場合、Web の方がはるかに実行可能です。
  • 複数のユーザーが存在しますか? これはどちらの方向にも進む可能性がありますが、「ロングテール」とは通常 Web を意味します。
  • 使いたい技術は?最新かつ最高の WPF ベースの UI? デスクトップ (そうそう、Silverlight、そこには行きませんか?)。Djangoとかの脳死バカ簡単ユーザー管理?ウェブ。
  • Web アプリの場合、SQL インジェクションや XSS などの一般的な攻撃ベクトルについて心配する必要がありますか? デスクトップアプリにも独自の問題がありますが、露出が少ない傾向があります.
  • どのくらいリソースを消費しますか? 10 人のユーザーが Web サーバーのパフォーマンスを低下させますか?
  • デスクトップでのバージョン管理は面倒な場合がありますが、Web アプリケーションでは全員が同じバージョンを使用しています。ただし、これはあなたを苦しめる可能性があります。新しいFacebookユーザーのプッシュバックを参照してください.

編集:

  • コストも要因になる可能性があります。データベース バックエンドを備えた Web アプリは通常、Web サーバーを意味します。たとえば、Microsoft Stack を使い続けたい場合は、SQL Server のライセンスが必要になりますが、これは高価になる可能性があります。オープン ソースは安価ですが、すべての場合に選択できるわけではありません。デスクトップアプリを「提供」することは、一般的に安価です。
于 2008-10-02T18:51:13.517 に答える
4

Web アプリとしてリリースする場合は、移植する必要はありません。また、どこにいてもアクセスできます。

于 2008-10-02T18:47:22.670 に答える
4

ほとんどの場合、GUI に基づいて選択します。GUI が複雑になる場合 (高速である必要がある場合、または処理に時間がかかる側面がある場合) は、デスクトップを使用します。シンプルで、一度に処理できるデータ セットが常に小さい場合は、Web を使用します。

私は Web アプリとして作成されたアプリに取り組んだことがありますが、明らかにデスクトップの方が適していました。大失敗でした。私は確かにそれを使用しなかったので、顧客がそれをどのように我慢したかはわかりません. デスクトップ バージョン (書き直すのに 6 か月以上かかりました) は、Web バージョンを水から吹き飛ばしました。

そうは言っても、私はいくつかの素晴らしい Web アプリを見てきました。

于 2008-10-02T18:50:58.713 に答える
3

ほとんどのアプリケーションはデスクトップベースであるべきだと思います。利点は、より高速でより流動的なアプリです。

どこからでもアクセスできるなど、明らかな利点がある場合にのみ、Web アプリケーションを作成する必要があります。(アプリで必要な場合)。

Web アプリケーションの欠点は、開発者に依存していることです。サポートを終了すると、すべてのユーザー (存在する場合) が使用できなくなります。さらに、ユーザーが自分のデータをオンラインで保存することを望まない可能性もあります。

最終的には、作成するアプリケーションの種類によって異なります。デスクトップ アプリとして作成した場合でも、後で Web 用に書き直すことができます。多くの場合、ソフトウェアの 2.0 バージョンはほぼ完全に書き直す必要があります。

于 2008-10-02T19:00:23.167 に答える
3

私が提案できるのは、関連するいくつかの要因だけです。因子の答えと重みをどのように決定するかは、あなたと他の状況次第です。

  • あなたの聴衆は何ですか?それらを制御できますか?
  • 実装する予定のインタラクションはどの程度複雑ですか?
  • ほぼリアルタイムのデータ更新が必要ですか?
  • 最初のリリース後、どのくらいの頻度でアプリケーションを更新する予定ですか?
  • 明確に定義された一連のクライアント プラットフォームを期待しますか、それとも予測できませんか?

選択肢には Java WebStart アプリケーションを含めることもできることに注意してください。これにより、一般的なデスクトップ アプリケーションのいくつかの欠点が軽減されます。

于 2008-10-02T18:53:05.090 に答える
1

これまでのところリストにない 2 つの重要な質問:

  • 最初のバージョンには、ハードウェアへの低レベルのアクセスが必要な機能はありますか?
  • 将来のバージョンには、ハードウェアへの低レベルのアクセスを必要とする機能が含まれますか?

最初の質問に答えるのはとても簡単ですが、2 番目の質問について考えてみると、今後の頭痛の種を減らすことができます。

于 2008-10-02T19:31:08.837 に答える
1

これが私の複数のユーザーが使用するアプリケーションであり、データを共有する場合、おそらくサーバーが必要になるでしょう。その場合、私は Web アプリケーションに傾倒します。そうしないと、デスクトップとサーバー間のデータの同期が複雑になります。

于 2008-10-02T19:25:55.383 に答える
1

Web が良い場合もあれば、そうでない場合もあります。私たちはウェブの新しい波に乗っていますが、忘れてはならないことがいくつかあります。

  • 複数のブラウザがあるため、Web の GUI はより複雑です。
  • あなたのシステムで作業する必要がある人は、ブラウザで一日中作業するのを好まないかもしれません
  • 一部のアプリケーションでは Web が遅くなることがあります (画像編集、多くの CPU を必要とするハード ジョブ)。
  • Winform 用の Visual Studio のような高速 GUI は、Web 用よりも高速です

しかし、Web には展開と移植性において多くの利点があります。システムが適切に構成されている場合は、MVC で構築されたものを使用して、後で両方を作成するか、一方を他方に変更することができます。ビジュアルを変えるだけで大​​丈夫です。

于 2008-10-02T18:58:47.133 に答える
0

私のデフォルトの選択は、展開が簡単で、一般的にマルチプラットフォームである Web ソリューションを使用することです。私が winforms アプリを使用するのは、差し迫ったセキュリティ、パフォーマンス、または機能の問題が必要な場合だけです。

于 2008-10-02T18:48:45.503 に答える
-2

以前はデスクトップ アプリケーションを作成していましたが、それにはツールの方が適していて、より速く作成できたはずです。人々は以前は Web アプリを求めていましたが、最終的には常にデスクトップに行き着きました。

今日では状況が異なります。Web サービスを同じように迅速かつ簡単に作成できるため、Web ベースに移行しない理由はありません。

Web ベースの利点は、柔軟性、スケーラビリティ、および展開の容易さです。デスクトップ アプリほどレスポンシブではありませんが、デザインを考えればそれほど問題にはなりません。

于 2008-10-02T18:49:49.870 に答える