2012-01-30 3 views
14

단일 프로젝트 솔루션에서 컨트롤러가 많은 경우 영역을 도입하면 분리가 향상되고 모듈을 솔루션 안팎에 쉽게 복사 할 수 있습니다. 그러나 대규모 엔터프라이즈 솔루션에서는 논리를 별도의 프로젝트로 분할하는 것이 좋습니다.MVC 기업용 영역 - 좋음 또는 나쁨?

따라서 별도의 UI, 컨트롤러, SOA, 모델 및 저장소 프로젝트가 필요합니다. 이 시나리오에서는 더 이상 이해하지 못하는 부분이 있습니다. 또한 필요하지 않은 URL에 추가 최상위 수준을 추가합니다. 그러나 컨트롤러를 고유하게 유지하면 Url 영역을 생략 할 수는 있지만 믿을 수는 없습니다. 약간 냄새 나는거야?

아마 지역은 중간 복잡성 사이트에 적합하거나 모듈 코드를 다른 사이트에 복사하거나 제거 할 수 있도록 한 곳에 보관하는 것이 좋습니다.

+1

아마도이 주제가 유용 할 수 있습니다. http://stackoverflow.com/questions/6656843/how-to-reuse-areas-controllers-views-models-routes-in-multiple-apps-or-websi. 코드를 여러 프로젝트로 분리 할 수 ​​있습니다. –

+0

나는 당신이 찾고있는 것이 일반적인 영역이 아닌 휴대용 영역이라고 생각한다. –

답변

13

올바른 질문인지 확실하지 않습니다. 지역은 소규모 프로젝트의 경우 과잉 행동 일 수 있지만, 지역을 사용하지 않는 비범 한 규모의 대규모 프로젝트를 생각하면 수업을 체계적으로 정리할 수 있습니다.

나는 기업을위한 MVC 영역을 사용하고에 대한 몇 가지 사랑 :

  1. 은 일반적으로 사람들이 (예를 들어, 검색, 체크 아웃 등) 주어진 도메인 내에서 기능을 작동합니다. 해당 지역 이름이 비즈니스 도메인에 해당하는 경우 MVC Areas는 관련 클래스를 찾기 쉽기 때문에 기능을 구현하는 데 걸리는 시간을 줄이는 데 도움이됩니다.
  2. MVC 라우팅은 유연성을 제공합니다. URL 구조화 방법은입니다. Action Controller "pattern"을 사용했지만 비공개 URL의 경우에는 지역 기본 경로를 완전히 수용하여 쉽게 작업 할 수있게되었습니다.
  3. 영역은 스타일링의 뚜렷한 이점을 제공하며 더 중요한 것은 사이트 섹션 수준에서 캡슐화 동작을 제공합니다. 각 영역은 기본보기 페이지를 제어하거나 관리되는 처리기를 추가 할 수있는 자체 웹 구성을 갖습니다.

당신은 서비스가 여러 클라이언트가 일반적인 비즈니스 기능에 액세스 할 수있는 환경에서 별도의 프로젝트/솔루션 모두, 저장소를 통해 그 추상적 인 데이터 액세스에 있어야 절대적으로 맞다.

하지만 MVC 영역은 웹 프로젝트가 성장함에 따라 UI/라우팅 혼돈에 어떤 순서를 제공하는 데 훌륭합니다. 문맥에 관계없이 소중한 것입니다.

+0

+1, 지역이 유용한 이유에 대한 훌륭한 개요. – kprobst

1

먼저이 질문에 답하기 전에 이것은 단지 제 의견이며 주로 모델에 관한 것입니다.

영역은 내가보기에 너무 사악 할 수 있습니다. 많은 영역이 있다면 솔루션 탐색기가 미로가되어 무언가를 찾기가 어려워 질 수 있습니다.

솔루션 내에 새 라이브러리 프로젝트를 만들고 거기에 로직을 넣는 것이 좋습니다.

가장 좋은 점은 찾고있는 것을 쉽게 찾을 수있는 것이 아니라 응용 프로그램이 훨씬 모듈화되어 있다는 것입니다. 라이브러리를 만들고 ASP.NET MVC 응용 프로그램에서 라이브러리에 대한 참조를 지정하면 을 쉽게 실수로 만들고 논리에 UI를 포함시킬 수 없습니다.