モデル - ビュー - コントローラーを実行する「古典的な」方法は、サーバー上に 3 つすべてを配置することです。次に、HTML および一部の JS のビュー レイヤー出力がブラウザーによってレンダリングされます。
Rails はその好例です。
「新しいクールな」方法は、ブラウザーをメインのコンピューティング エンジンとして扱い、バックエンド サーバーがservices
API を介して提供することです。
この場合、モデル、ビュー、およびコントローラー ソフトウェアはすべてクライアント上で (Javascript または coffeescript として) 実行されます。Backbone は多くの場合、ブラウザ側のソリューションの一部ですが、spine、angularJS などの代替手段があります。
バックエンド サーバーでは、dbms と適切な API システムを実行します。Ruby/Rack で構築されている優れたフレームワークがいくつかあります。Daniel Doubrovkine による code.dblock.org の投稿を参照してください。ここには多くの選択肢があります。
クライアントでの MVC の利点
- ユーザー向けのレスポンシブ ユーザー インターフェイス
- クールな Ajaxy 単一ページ効果
- 単一ページの Web アプリケーションは、通常の Web サイトよりもはるかに高速な UI をユーザーに提供できます
- 優れたアーキテクチャ、iPhone/Android アプリの構築を目的とするイネーブラー
- アプリによっては、ネットワーク接続なしで動作するスタンドアロンの Web アプリを作成するために使用できます。
- これは、多くのクールな子供たちが最近やっていることです
短所
- 古いブラウザー、IE などへのアプローチを決定する必要がある
- コンテンツを検索エンジンで利用できるようにするのは難しい場合があります。検索エンジンのためだけにシャドウ Web サイトが必要な場合があります
- テストは困難な場合があります。ただし、AngularJS などのテスト容易性に重点を置いた新しいライブラリを参照してください。
- このアプローチにはより多くのソフトウェアが必要であり、作成とテストに時間がかかります。
選ぶ
それはあなた次第です。決定は、時間枠、リソース、経験、ニーズなどによって異なります。バックボーンなどを使用する必要はありません。そうすることはトレードオフです (上記を参照)。使用しない方が常に高速/簡単ですが、使用しない (または同様のもの) と目標を達成できない場合があります。
Rails だけで、またはアドオン ライブラリを使用した PHP やその他の MVC ソリューションから、優れた MVC アプリを構築できます。