2017-10-20 11 views
0

私は、MVCパターンでビジネス層がどこにあるべきか疑問に思い始めました。 これはすぐに「n層とMVCの違いは何ですか?」と尋ねました。 私は多くの記事とStackoverflowの回答を読んで、回答があったのとは異なるお金があることを発見しました。MVCとN層アーキテクチャ

私は専門家ではありませんが、返信や記事の一部はごみだけだったと思いました。例えば各層は、ネットワークに物理的に異なるハードウェア上にある場合 N層である(ナ!) N層が大規模なアプリケーションのためのものであり、MVCは、小さな(酷い)のためのものである

それから意味を作られたものを読みます。 N層プロセスは、常にUIをBLにDLしてDLに戻し、BLを介してUIに戻します。しかし、MVCにはその三角プロセスフローがあります。本当ですが、それだけですか?

MVCがアプリケーションアーキテクチャモデルであり、n-tierがシステムアーキテクチャモードであったという別の点がありました。 MVCパターンがアプリケーション・アーキテクチャーであることがn層のレイヤーのそれぞれで使用可能であると述べるまで、彼らが何を意味しているのか分かりませんでした。

ちょうどAngularについて読んだところ、UIレイヤーに実装されているMVCと、最近MVCとWeb APIがどのように統合されたのかを知ることができました。コントローラ、ビュー、モデルでWeb APの中間層を見ることができました。

しかし、それはDLを保持するだろうか?最近の.NETのほとんどのデータレイヤーは、いくつかのラッピングを含むEntityFrameの作業です。 DL層をMVCパターンで実装するか、実際にはそれを実装する必要がありますか?

このN-tierとMVCの定義が正しい場合、MVCモデルをN-Tierシステム層のどのレイヤーにも適用できるはずです。

これが実現可能かどうか、またはDALがMVCであることに気を配らなければならないかどうかは、誰にでもわかります。

答えて

0

ところで、はい。データレイヤーにMVCに似たものを実装することは可能です。特に、ビュー、モデル、およびコントロール(必ずしもコントローラではない)。

たとえば、SQL Serverを使用します。メッセージパッシングアーキテクチャーを作成すると、データにアクセスするためのAPIを作成できるため、基になるモデル(表)が変更されてもAPIには影響しません。

しかし、「データ層」は物理層ではなくコードを参照する傾向があることに注意してください。データアクセスレイヤーは、通常、データをカプセル化してアプリケーション層互換のデータセットに変換するAPI、モデル、またはリポジトリです。

関連する問題