2017-10-20 14 views
0

MVC 패턴에서 비즈니스 계층이 어디에 있어야할지 궁금하다. 이렇게 빨리 "n-tier와 MVC의 차이점은 무엇입니까?"라는 질문을 받게되었습니다. 많은 기사와 Stackoverflow 응답을 읽었으며 응답이있는 것처럼 다른 의견이 돈으로 있다는 것을 알았습니다.MVC 및 N 계층 아키텍처

저는 전문가는 아니지만 일부 답변과 기사는 단지 쓰레기라고 생각했습니다. 예 : 각 계층은 네트워크에 물리적으로 상이한 하드웨어 때 N 계층은 (아니!) N 계층 큰 애플리케이션 용이며 MVC 작은 (나쁨)을위한

그러면 I 말이 만든 하나 읽었다. N 계층 프로세스는 항상 UI를 BL로 DL로 보내고 BL을 통해 다시 UI로 전달합니다. 그러나 MVC에는 삼각형 프로세스 흐름이 있습니다. 사실,하지만 그게 전부인가?

MVC는 애플리케이션 아키텍처 모델이고 n-tier는 시스템 아키텍처 모드였습니다. 애플리케이션 아키텍처 인 MVC 패턴이 각각의 n 계층 계층에서 사용될 수 있다고 언급 할 때까지 그 의미가 무엇인지 확신 할 수 없었습니다.

Angular에 대해 읽었을 때 MVC가 UI 레이어에 구현되어 MVC와 웹 API가 최근에 병합 된 모습을 볼 수있었습니다. Net, 컨트롤러, 뷰 및 모델이있는 웹 AP 중간 레이어를 볼 수있었습니다.

하지만 DL을 기다리고 있을까요? 요즘 대부분의 데이터 레이어는 EntityFrame의 일부 랩핑 작업입니다. DL 계층을 MVC 패턴으로 구현할 수 있습니까? 아니면 실제로 구현해야합니까?

이 N-tier 및 MVC 정의가 올바른 경우 N 계층 시스템 계층의 모든 계층에 MVC 모델을 적용 할 수 있어야합니다.

가능하면 누구에게도 알려주거나 DAL이 MVC로 괴롭혀 야하는 사람이 있습니까?

답변

0

어쨌든 그렇습니다. 데이터 영역에 MVC와 비슷한 것을 구현할 수 있습니다. 특히 뷰, 모델 및 컨트롤 (반드시 컨트롤러 일 필요는 없음).

예를 들어, SQL Server를 사용하십시오. 기본 모델 (테이블)이 변경 되어도 API에 액세스하지 못하도록 데이터에 액세스하기위한 API를 만들 수있는 메시지 전달 아키텍처를 만들 수 있습니다.

그러나 "데이터 계층"은 물리적 계층보다는 코드를 참조하는 경향이 있음을 기억하십시오. 데이터 액세스 계층은 일반적으로 데이터를 캡슐화하고 응용 프로그램 계층 호환 가능 데이터 집합으로 변형시키는 API, 모델 또는 리포지토리입니다.