私が働いているキャンプのためのデータベースアプリケーションを書くつもりです。Windows GUI インターフェイスを使用して C# で作成することを考えていますが、アプリケーションとしてブラウザーを使用することは、さまざまな理由でますます魅力的になっているようです。私が疑問に思っているのは、なぜ誰かがアプリケーションを Web アプリケーションとして作成することを選択しないのかということです。元。戻るボタンはあなたにいくつかのトラブルを引き起こす可能性があります. 他に考えられることはありますか?
13 に答える
たくさんの短所があります:
- 速度と応答性が大幅に低下する傾向があります
- 複雑な UI ウィジェット (ツリー コントロールなど) は実行が難しい
- あらゆる種類のグラフィックスのレンダリングは非常に難しく、3D グラフィックスはさらに難しい
- ログインをいじる必要があります
- 集中型サーバーは、クライアントが常にネットワーク アクセスを必要とすることを意味します
- セキュリティ上の制限により、問題が発生する可能性があります
- ブラウザの非互換性により、多くの余分な作業が発生する可能性があります
- Web では UI 規則があまり明確に定義されていないため、ユーザーは使いにくいと感じる可能性があります
- クライアント側のストレージは限られています
問題は.. Web を間違った選択にするのに十分な数があなたのプロジェクトに当てはまりますか?
ここで言及されていないことの1つは、優れたWebアプリケーションを生成するために必要な複雑さと知識のレベルです。問題は、非常に単純なことをしているのでない限り、これらのアプリケーションに組み込まれる「単一の」知識やテクノロジーがないことです。たとえば、クライアントサーバープラットフォーム用のアプリケーションを作成する場合は、JavaまたはC++で開発できます。複雑なWebアプリケーションの場合、Java、Javaスクリプト、HTML、Flash、CSS、Ajax、SQL、J2EEなどの専門知識が必要になる場合があります。また、Webベースのアプリケーションのコンポーネントも多数あります。Webアプリケーションサーバー、HTTPサーバー、データベース、ブラウザは典型的なコンポーネントですが、もっと多くの可能性があります。クライアントサーバーアプリは、まさにそれが言うとおりの典型的なものです。クライアントアプリケーションとサーバーアプリケーション。私の経験と個人的な好みはウェブベースではありません.. Webベースは多くのことに最適です。しかし、私はすべてのソリューションとしてWebアプリに完全に登場している大手企業のITアーキテクトですが、短所はまだたくさんあります。テクノロジーは進化し、短所は時間とともになくなるでしょう。 。
基本的に、実際の制限は、ブラウザであるプラットフォームを介してのみです。現在使用されているすべてのブラウザを考慮する必要がある場合は、各ブラウザの標準の程度が異なるため、問題になる可能性があります。
使用するブラウザーを制御できる場合、つまり、サイトで制御するコンピューター上に全員がいて、すべてのブラウザーにFirefoxをインストールするとすると、最新のJavascriptおよびCSS標準をコンテンツ配信で最大限に活用できます。
[編集]adobe統合ランタイムや「AIR」などのオプションをオプションとして調べて、xhtml / css / javascript、flash / flexなどの従来のブラウザベースのオプションでフロントエンドをコーディングし、バックエンドを接続することもできます。オンラインでデータベースに追加し、同時に従来のデスクトップアプリの機能のみを提供します。
Web アプリケーションとの最大の相違点と欠点は、状態管理です。Web は本質的にステートレスであるため、維持したいものはすべて、要求と応答のたびにサーバーとの間でやり取りする必要があります。ページサイズとパフォーマンスに関して、効率的に保存および取得する方法は難しい場合があります。また、ブラウザーには真の標準がない (少なくともすべての人が準拠しているというわけではない) という事実が、一貫性を本当に楽しいものにしています。
Webアプリケーションでは、サーバーにユーザーデータを保存するときに、プライバシーに関する懸念が高まります。あなたはそれを紛失/開示しないことを確認する必要があり、あなたのユーザーはあなたのサーバーにそのデータを保存するという考えに慣れている必要があります。
それとは別に、中間者攻撃、XSSまたはSQLインジェクションなど、多くのセキュリティ問題があります。
また、手元に十分な計算能力と帯域幅があることを確認する必要があります。
Webアプリケーションをインストールするサーバーへのネットワークアクセスが必要です(アプリケーションに複数のユーザーがいる場合-通常はそうです)。
実際には、短所よりも長所があります-アプリケーションに関する詳細を教えていただければ、もう少しお手伝いできます...
それはあなたのプロジェクトの要件に完全に依存します。ほとんどの場合、最近ではWebアプリケーションで実行できないことはあまりありません。確かに、特定のアプリケーションはブラウザとしてデスクトップに属しています(現在、急速に進歩していますが)が、まだ完全には存在していません。Google Docs、Gmailなどのアプリケーションの出現から
あなたがウェブ上でできることはあまりありません。ただし、World of Warcraftの競合他社を作成している場合、Webは間違いなく最適なソリューションではありません。繰り返しになりますが、残念ながら、キャンプ用に構築しているアプリケーションについて、より多くの洞察が必要になります。Webの最も優れている点は、ブラウザーを持っている人なら誰でもアプリケーションを使用できることです。
Webアプリケーションは、処理をリモートマシンに委任します。処理の量によっては、これは短所になる可能性があります。Webアプリであるフォトエディタを考えてみましょう。
また、Webアプリケーションは、クライアントとの間でやり取りされる大量のデータを処理できません。あなたはそれが圧縮されているときにオンラインでビデオを見ることができます。Webベースのビデオ編集ソフトウェアが登場するまでにはしばらく時間がかかります。
ブラウザの互換性も面倒です。アプリケーションのルックアンドフィールを100%制御することはできません。
Vaibhavには良い点があります。あなたのアプリケーションは何ですか?
主要なものは移行のダウンタイムです...ユーザーはアプリケーションがダウンすることを期待しませんが、現実的にはメジャーアップグレードのためにダウンする必要があります。デスクトップアプリケーションでこれを行う場合、ユーザー(またはエンドユーザーのシステム管理者)がアップグレードのタイミングを制御します。オンラインアプリでは、そうではありません。
大量のデータを含むアプリケーションの場合、多数のユーザーのデータを一元的に保存するため、パフォーマンスが大きな問題になる可能性があります。つまり、すべてのユーザーにラップトップを提供した場合ほどIOパフォーマンスは向上しません。
一般に、スケーラビリティはサーバーベースのアプリに問題をもたらします。デスクトップアプリケーションは非常に適切に拡張できます。
Web ベースのアプリでは非常に多くのことを実行できますが、シック クライアントを使用すると、特定のことをより簡単に実行できます。
- パフォーマンス: クライアントの CPU のフルパワーに簡単にアクセスできます。
- 応答性: 対話性は迅速かつ簡単です。
- グラフィック: DirectX や OpenGL などのグラフィック ライブラリを簡単に使用して、印象的なグラフィックをすばやく作成できます。
- ローカル ファイルの操作
- ピアツーピア
Web アプリケーションが適切なアプローチであるかどうかの決定は、何を達成しようとしているかによって異なります。ただし、Web アプリケーションの一般的な短所を次に示します。
- デスクトップ アプリ (Outlook など) との実際の統合は不可能
- アプリとデスクトップ/他の実行中のアプリの間でドラッグ アンド ドロップします。
アプリケーションを正しく設計すれば、戻るボタンはそれほど問題にはなりません。AJAX を使用して、ブラウザーの履歴に項目を追加することなく、現在のページの一部を操作できます (ページ自体は変更されないため)。
Web アプリケーションの設計に関する最大の問題は、状態と、プログラミングする必要がある課題に関係しています。デスクトップ アプリケーションでは、状態を簡単に処理できます。データベース接続を開いたままにして、レコードをロックし、ユーザーが変更を加えてコミットするのを待つことができます。Web アプリケーションを使用すると、レコードをロックできますが、ユーザーがブラウザーを閉じたらどうなるでしょうか? これらのことは、アプリケーションの設計で克服する必要があります。
Web アプリケーションを設計するときは、サーバーへの各トリップが「独立」して完全な回答を提供することを確認してください。作業を実行する前に常に変数を再初期化し、何も仮定しないでください。私がかつて遭遇した課題の 1 つは、グリッド データの「ページ」をユーザーに戻すことでした。レコードの追加/変更がリアルタイムで行われる実際に忙しいシステムでは、ページ間のユーザー ナビゲーションは大きく異なり、場合によってはクエリの前に新しい追加が追加されたときにいくつかのレコードの同じセットが表示されることさえあります。 .
「Ex. 戻るボタンを押すと、問題が発生する可能性があります。」
これについて具体的に説明する必要があります。多くの人が Web アプリケーションで根本的な間違いを犯し、トランザクションの処理方法にバグを持ち込んでいます。"Redirect after Post" ( Post-Redirect-Get 、PRG 設計とも呼ばれます) を使用しない場合、戻るボタンの問題として表示されるバグが作成されます。
トラブルの戻るボタンが真実である可能性は低いという包括的な声明。特定の例は、これに関する特定の質問を明確にします。