AJAX
あなたの質問は、「私のWebアプリケーションはクライアント側またはサーバー側でHTMLを生成する必要がありますか?」クライアント側の生成は、AJAXを使用してサーバーと通信しますが、X(XML)は一般にJSONに置き換えられていますが、ほとんどの人は、AJAXと呼んでいます。サーバー側では、サーバーはサーバー上でHTMLを作成します。
私はXMLについて多くの経験があり、JSONについてはほとんど経験がありません。XMLについて知っていることから、可能な限りJSONを使用することをお勧めします。
AJAXの長所:
- HTTP(S)で送信するデータが少なくなるため、より高速に実行できます。
- サーバーは基本的にWebサービスであるため、他のユーザー(またはユーザー)が独自のクライアントを作成できます。これは、サイトのモバイルバージョンを作成するときに役立つ場合があります。また、多くの発明は、作成者が意図しなかった理由で人気があります。サービスは、コードの新しい用途を見つけた人にとって使いやすいです。
- 新しいアプリケーションのように見える
AJAXの短所:
- JavaScriptのデバッグ
- 複雑?
- JavaScriptでできることは、視覚障害者や障害者が使用することは完全に不可能です。
- より多くのコードの合計が必要になる場合があります(組み込みデバイスの全体的なストレージが大きい)
クライアントサーバー
すべてのWebアプリケーションは、クライアントサーバーアーキテクチャを使用します。HTTPプロトコルにより、Webアプリケーションは強制的にそのように動作します。AJAXはその設計上の制限のために回避策を使用しますが、HTTPの基本的な基本モデルは依然としてクライアントサーバーです。MVCをWebアプリケーションに適用するための最良の方法について、私はすべてにこだわることはありません。政治的な理由でMVCを実行する必要がある場合は、Ruby / Railsがどのように実行するかを確認してください。実際、Railsはコピー(または使用)するのに最適なアーキテクチャです。
サービスとアプリ。
優れたサービスは、ほとんどの場合、アプリケーションよりも優れています。しかし、良いサービスを作るのは難しいです!サービスの十分に設計された仕様を作成する前に、アプリケーションを作成する必要がある場合があります。あなたの仕事を必要以上に難しくしないでください。バージョン1では、優れたアプリケーションの作成に焦点を当てます。アプリケーションが比較的安定し、ユーザーの要件を満たしていることが確実になるまで、サービスを使用しても何の役にも立たないでしょう。間違ったサービスを設計するのが早すぎると、サービスインターフェイスを修正し、サーバーとクライアントの両方のコードの大規模なリファクタリングに対処しようとして無駄になり続ける時間の無駄です。
C / Web
ワオ。Web開発に切り替える前に、Cとアセンブリで3年間働いていました。特にセキュリティの観点から、Webアプリケーションを記述するのに悪い言語を考えることはできません。入力の検証と出力のエスケープは非常に重要です... SANSは毎年最も一般的なエラーのリストをリリースしています。バッファオーバーフロー、インジェクション、クロスサイトの問題(不適切な出力エンコーディング)...これらのエラーはすべて、Cまたはアセンブリで簡単に作成できます。少なくともJavaのような言語には、オーバーフローの影響を受けない文字列と、一般に1つずつのエラーによって悪意のあるコードがシステムメモリにアクセスできないようにする例外処理メカニズムがあります。国際文字セットの処理は言うまでもありません(可能な場合はUTF-8を使用してください)。
メモリまたはファームウェアの理由でCを使用する必要がある場合、それはあなたがしなければならないことです。注意してください!
ブラウザのサポート
Webアプリケーションを作成する最初のステップは、クライアントが使用するブラウザーを見つけることです。 W3SchoolsとWikipediaはどちらも一般統計の優れた情報源ですが、YMMVです。
現在、私が作業している場所では、アプリケーションが有効なXHTML 1.0トランジショナルHTMLのみを作成することを検証しています。また、IEのQuirksモードを回避するために必要な特定のDoctypeと書式設定を使用します。これにより、クロスブラウザーHTMLを記述しやすくなります(ブログのヒントを参照)。IEの最新3バージョンに加え、WindowsおよびLinux上のFirefoxおよびChromeでテストします(SafariはChromeと同じレンダリングエンジンを使用します)。この検証とテストにより、BlackBerryを除くすべての場所(Windows、Mac、Linux、iPhone、Androidなど)でアプリケーションが動作します。
BlackBerryにはJavaScriptを搭載した実際のブラウザがなかったため、サポートしていません。BlackBerryユーザーは、実際のWebブラウザーを持っていないことに慣れているため、文句を言いません。たぶんそれは変化していますか?使用しているブラウザを何人かのクライアントに尋ね、それらのブラウザでテストするようにします。
概要
すべてのWebサイトはHTMLとHTTPに基づいて構築されています。アプリケーションを作成しているときに、これらのテクノロジーに関する適切なリファレンスを入手してください。ツールキットを使用しても、アプリケーションを作成する過程で、これらのテクノロジーを解決するためにこれらのテクノロジーの基本的な理解が必要な問題に出くわします。
おそらく、CSSと画像圧縮に慣れて、見た目が良く、すぐに応答するものを作成する必要があります。JavaScript、Webサーバー、およびブラウザーは、最終的に必要となる追加の知識分野です。
サーバー側でHTMLを構築する場合、コードベースはおそらく小さくなり、JavaScriptを学ぶ必要はないでしょう。サーバー側モデルとは、プログラマーがHTMLを生成する(C?)コードを記述し、クライアントに送信される前に直接見ることができることを意味します。AJAXモデルは、プログラマーがHTMLを生成するJavaScriptを記述することを意味します。JavaScriptによって生成されたHTMLコードをブラウザー内で検証したり表示したりするための多くのツールを認識していないため、正しくプログラミングするのが難しくなっています。
私が現在働いているところでは、HTMLを生成するJavaScriptを生成するJavaコードをときどき使用するハイブリッドアプローチを使用しています。皆さんがWeb開発に慣れていない場合は、そこから始めることはできません。AJAXモデルを使用する説得力のある理由がない限り、古いサーバー側のHTML生成モデルから始めて、それがどの程度達成できるかを確認しなければならないと思います。