web-dev-qa-db-ja.com

3層アーキテクチャとmvcの違いは何ですか?

3層アーキテクチャとmvcの違いは何ですか?

彼らは同じですか?

両方ともモデル、ビュー、コントローラーの3つのレイヤーがあります

38
user1414880

MVCアーキテクチャとの比較

一見すると、3つの層はモデルビューコントローラー(MVC)の概念に似ているように見えるかもしれません。ただし、トポロジ的には異なります。 3層アーキテクチャの基本的なルールは、クライアント層がデータ層と直接通信しないことです。 3層モデルでは、すべての通信は中間層を通過する必要があります。概念的には、3層アーキテクチャはlinearです。ただし、[model-view-controller] MVCアーキテクチャはtriangularです。ビューはコントローラーに更新を送信し、コントローラーはモデルを更新し、ビューはモデルから直接更新されます。

ソース: http://en.wikipedia.org/wiki/Multitier_architecture#Three-tier_architecture

56
Sarfraz

MVCは、UIコードの保守とテストを容易にするために使用されるパターンです。 MVCパターンを使用すると、UIコードの大部分を単体テストできます。

MVCパターンをより詳細に説明した良い記事を次に示します。 http://martinfowler.com/eaaDev/uiArchs.html

3層アーキテクチャは、まったく異なる理由で使用されるパターンです。アプリケーション全体を意味のある「グループ」に分割します:UI、ビジネスロジック、データストレージ。

したがって、3層アプリケーションは、アプリケーション内のすべてのコードを指します。 MVCパターンは、UI層で使用されるパターンです。

3層アーキテクチャに関する優れた記事を次に示します。 http://dotnetslackers.com/articles/net/IntroductionTo3TierArchitecture.aspx

詳細については、インターネットを検索し、両方のテーマに関するガジリオンの記事を見つけることができます。

21
Gene S

In MVC:MVCアーキテクチャは三角形です:ビューはコントローラーに更新を送信し、コントローラーはモデルを更新し、ビューはモデルから直接更新されます

:3層アーキテクチャは、クライアント層がデータ層と直接通信することはありません3層モデルでは、すべての通信は中間層を通過する必要があります

10
ketan italiya

それらは次のような点で似ています:

  • 3層は、アプリ全体をUI、ロジック、データに分割します
  • MVCは、UIパーツをビュー(UIのUIの種類)、モデル(データ)、コントローラー(ロジック)に分割します

しかし、違いは、層が相互に通信する方法から生じます。

  • 3層:すべてが論理層を通過します(a-> b、b-> cおよびc-> b、b-> a)
  • MVC:それらは三角形の方法で2対2で通信します。 (a-> b、b-> c、c-> a)
4
TerraMG

http://en.wikipedia.org/wiki/Multitier_architecture 3層アーキテクチャでは、プレゼンテーション層がデータ層と直接通信することはありません。 MVCでは、モデル、ビュー、コントローラー間の関係は三角形です。 3つのうち2つは互いに通信できます

2
knguyen

3層ソリューションでは、UIをビジネス層から分離して、ルックアンドフィールに関心のあるUIデザイナーが、プログラミングの専門家に任されている重いプログラミングと混同されないようにします。

このアーキテクチャ(3層)は、大規模なアプリケーションの作成に多数の人々が関与している場合に不可欠です。

1
George Parker

両者の主な違いは次のとおりです。この場合の「層」は「レイヤー」とも呼ばれます。関連する3つの層、または層には、次のものが含まれます。HTML/JS/CSSの形式でブラウザにコンテンツを送信するプレゼンテーション層。これは、React、Angular、Ember、Auroraなどのフレームワークを活用できます。アプリケーションサーバーを使用し、アプリケーションのビジネスロジックを処理するアプリケーションレイヤー。これは、C#、Java、C++、Python、Rubyなどで記述されています。アプリケーションデータへのアクセスを提供するデータベース管理システムであるデータレイヤー。これは、MSSQL、MySQL、Oracle、またはPostgreSQL、Mongoなどです。

MVCアーキテクチャは三角形です:ビューは更新をコントローラーに送信し、コントローラーはモデルを更新し、ビューはモデルから直接更新されます

1
Anil Yadav

両者の主な違いは次のとおりです。

3層アーキテクチャは、クライアント層がデータ層と直接通信しないことです。3層モデルでは、すべての通信は中間層を通過する必要があります。

MVCアーキテクチャは三角形です:ビューは更新をコントローラーに送信し、コントローラーはモデルを更新し、ビューはモデルから直接更新されます

1
Nitesh Dashore

まず第一に、層は物理的な展開のためのものであり、多分何を意味するか、そしてMVCはプレゼンテーション層のためのフレームワークです、それがすべてです

0
LIU YUE