문제

인사말,

나는이 질문에 직접 대답하기에 충분히 이것을 연구하지 않았다는 사과를 전했다. 그러나 나는 그것이 시간이 걸릴 것이라고 생각하며, 나는 그것을 배우는 데 더 많은 시간을 투자하기 전에 오히려 지금 알고 싶다. 초기 연구에서 아무것도 찾을 수 없었습니다 ..

이미 다중 계층 아키텍처 (데이터 계층, 논리 계층, 프레젠테이션 레이어)를 사용하는 경우 ASP.NET MVC를 사용하는 이유는 무엇입니까? 컨트롤러가 논리 계층보다 더 많은 전력을 가지고 있다는 사실 외에.

MVC의 모델 부분에서 nhibernate와 모든 데이터 액세스 클래스, 엔티티 및 매핑을 사용할 수 있다고 생각 하는가?

컨트롤러를 사용할 때 많은 논리를 별도의 클래스로 분리하여 여러 컨트롤러에서 호출 할 수 있습니까? 또는 컨트롤러 자체에서 전화 할 수 있습니다. 모든 것이 모든 행동이되고 싶지 않다는 사실을 고려할 때 정상적인 방법입니다.

감사

도움이 되었습니까?

해결책

MVC는 N-Tier를 대체하지 않으며 프리젠 테이션 계층을 구성하는 방법입니다.

컨트롤러가 로직 계층보다 강력하다고 말하지 않습니다. 대신, 컨트롤러 (프리젠 테이션 계층의 일부로)는 여전히 논리 계층을 호출해야합니다.

컨트롤러는보기에 대한 데이터 만 준비하고 뷰에서 작업을 처리해야합니다. 여전히 BLL을 사용해야합니다.

다른 팁

그렇습니다. nhibernate 엔티티는 (그리고 그것들이 있어야 함) 견해로 전달 될 수 있습니다.

이것은 당신이 당신을 약간의 문제로 데려 갈 것입니다. 평평한 널-안전한 DTOS 일명보기 모델을 사용해야합니다.

DAMIEN,이 두 게시물을 읽고 싶을 수도 있습니다.

지방 컨트롤러

ASP.NET MVC 프레임 워크의 아키텍처보기

n-tier는 an입니다 아치적 패턴, 응용 프로그램의 주요 영역의 재사용, 우려 사항 및 확장 성을 가능하게합니다. 비 UI 계층 (비즈니스, 데이터, 정면 등)은 단위 테스트 및 UI Agnostic이어야합니다.

UI 레이어는이 레이어 중 하나 일뿐입니다. 날씨는 Silverlight, ASP.NET MVC, 웹 양식 등입니다.

MVC와 마찬가지로 MVC는 a입니다 디자인 패턴 이는 UI 층의 더 나은 테스트 가능성을 가능하게합니다. ASP.NET MVC는이 패턴을 지원하고 시행하는 박스 외 프레임 워크입니다. 패턴은이 프레임 워크보다 오래 전에 사용 중이었다.

그러나 이것은 단순히 UI 계층 선택이며, 컨트롤러에 데이터베이스, 서비스 등과의 상호 작용이 없어야하며, 모델을 사용하여보기 상태를 제어하고 비즈니스 로직, 기간, 트랜잭션 등을 제어해서는 안됩니다.

이미 다중 계층을 사용하는 이유에 대한 질문에 답하기 위해서는 더 정리적이고 검색 엔진 친화적 인 URL을 만듭니다. 또한 다른 패턴이 asp.net에있는 경향이있는 것보다 표준 패턴입니다. 따라서 다른 플랫폼에서 이미 MVC를 사용하는 사람들에게 더 많은 개발자가 친숙해집니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top