web-dev-qa-db-ja.com

クライアント-MVCとサーバー-MVC

サーバーサイドMVCの利点について、他のユーザーから意見を聞きたいと思っています。多くのjavascriptライブラリの力で。サーバー側のMVCサーバーはもうどのような目的を持っていますか?

テンプレートとREST APIを使用して、クライアント側のMVCを簡単に使用して、小さな変更のためにページ全体をリロードするオーバーヘッドを減らして、はるかにレスポンシブなアプリケーションを作成できます。

22
Justin

サーバーMVCの利点:

  1. 成熟した。
  2. 広く採用されています。
  3. ほとんどのコードはサーバー内にあるため、より安全である必要があります。

しかし、間違いなくクライアント/サーバーコンピューティングに戻る傾向がありますが、Cまたは別の言語で記述されたファットクライアントの代わりに、非常に優れたプラットフォームであるブラウザーがあります。

サーバー側MVCとクライアント側MVCをいつ使用するかについての簡単なポリシーがあります。

  1. インタラクションがほとんどないカジュアルユーザー:サーバー+ Ajax。
  2. LOBアプリケーション(会計、ERP、CRMなど):クライアント。

ところで、私はJava Server Faces for#1と、JAX-RSサービスによってバックアップされたExtJSを#2に使用しています。

よろしく。

5
ssamayoa

私の見方では、Vをブラックボックスに包まれたクライアント側MVCと見なすと、サーバー側MVCは引き続き関連性があります。重要なのは、これはすべてコラボレーションとスケーラビリティに関することです。サーバー側のMVCは、ブラウザで実行されている別のフレームワークに表示テクノロジを技術的にアウトソーシングしているという概念で、REST API(たとえば)を引き続き強化します。

ブラウザはアプリケーション開発プラットフォームとしてますます見られるようになっているため、「バックエンドプラットフォーム」からクライアント(ブラウザ)に大量のデータをエクスポートし、そのデータをブラウザのローカル「データベース」として扱うことで、応答時間を短縮できます。

これら2つのMVCフレームワークを組み合わせると、次のことが可能になります。

  1. サーバーとクライアント間のトラフィックがまばらであるため、待ち時間が短縮されます
  2. より関連性の高いデータセットへのアクセスをローカライズすることにより、Webアプリの応答性を向上させます
  3. 単一のサーバー側コントローラーから数百のブラウザーに負荷を分散する

ここで機能しているアーキテクチャは、CDN(コンテンツ配信ネットワーク)と非常によく似ています。実際には、データをローカライズし、処理センターに近づけることです。

そうは言っても、製品のアーキテクチャ上のニーズを理解していれば、引き続き相互に排他的に使用することができます。適切な仕事のための適切なツール。

11
Kingz

それでも、サーバー側のMVCエンジンによって提供される可能性のある初期ページが必要になります。

それとは別に、client-MVC + RESTは機能する可能性がありますが、大きなアプリケーションではまだ異なるセクションがあり、これらのセクションを結び付ける必要があると思います。これはクライアント側で行うことが可能です。 、しかし私はそれをサーバー側で行う方が簡単だと思います。

今のところ、私は両方が幸せに共存しているのを見ることができます。クライアント側とRESTを介して可能な限り多くのことを実行できますが、クライアント側で何かが不可能な場合でも、MVCのサーバー側の利点を活用できます。

6
Kenneth

justMVCを一方のエンドポイントからもう一方のエンドポイントと比較することはあまり建設的ではありません。 MVCは、コードを編成する方法の構造です。これは、コードを切り離して保守しやすくするのに役立つデザインパターンのファミリーです。私たちは常にそれを望んでいます。

サーバー上に構築する場合でもクライアント上に構築する場合でも、関心の分離を備えた優れたアーキテクチャが必要であることに誰もが同意します。そこにはコンテストはありません。

本当の、そしてより重要な質問は、クライアント側とサーバー側のレンダリングですか?サーバーまたはクライアントのどこでHTMLビューを生成しますか?これは、ページの速度とUIの応答性についてより懸念される別の質問です。また、複数の場所で何度も回答されています。例を検索: https://stackoverflow.com/search?q=client+rendering+vs+server+rendering

3
givanse

MVCは単純なWebアプリケーションに最適なパターンだと思います。ただし、FacebookやGmailなどの最新のリッチWebアプリケーションを構築する場合はあまり役に立ちません。 MVCを使用しない理由については、この投稿をご覧ください。

http://dennis-nerush.blogspot.co.il/2016/04/should-we-use-mvc-for-modern-web.html

0
Dennis Nerush