2009-04-19 2 views
3

ASP.NET MVC를 배우고 있습니다. 그러나 필자는 모델을 네임 스페이스로 매핑하는 올바른 방법에 대해 매우 혼란 스럽습니다.ASP.NET MVC에서 내 모델의 이름 공간을 어떻게 지정해야합니까? Nerd Dinner에 대해 혼란스러워합니다.

NerdDinner 샘플 앱을 해부하는 동안 모델 폴더의 모든 항목이 모델 네임 스페이스에 속한다는 사실을 발견했습니다. 데이터 매핑 클래스, 리포지토리, 오류 규칙 관리 등은 동일한 네임 스페이스 수준에 속합니다.

이 폴더는 Rails 및 친구들과 같은 프레임 워크에서 영감을 얻었으며 MVC 제목에서 M을 정당화해야한다는 것을 알고 있습니다. 자동 모델 네임 스페이스가 서로 다른 시스템과 구현에서 분리 가능하고 이식 가능한 비즈니스 로직을 작성할 기회를 파괴하지 않습니까?

비즈니스 로직을이 모델 네임 스페이스 아래에 네임 스페이스로 표시해야합니까, 아니면 완전히 무시하고 더 많은 프레임 워크 독립적 인 방식으로 클래스를 분류해야합니까?

거기에 복잡하고 좋은 ASP.NET MVC 샘플 앱이 있습니까?

답변

7

나는 당신을 가장 잘 이해하는 방식으로 수업을 분류 할 것입니다. 학습 스탠드에서 개발자가 항상 볼 수 있기 때문에 Nerd Dinner 샘플 응용 프로그램에서 해당 네임 스페이스를 사용했다고 생각됩니다. 응용 프로그램의 모델 부분에 있습니다.

개인적으로 Model 폴더에 아무 것도 넣지 않고 내 엔터티 (App.Domain)와 도메인 서비스 (App.Services)에 대해 별도의 프로젝트를 만듭니다. 또한 두 프로젝트의 테스트 프로젝트를 만듭니다.

1

내 개발자는 데이터 모델을 다른 프로젝트로 리펙토링해야한다고 말했습니다. 일부는 아직까지는 또 다른 프로젝트에서 비즈니스 엔티티를 생성하고 Linq-SQL 클래스로 구성해야합니다.

Scott과 Co.는 최소한 데이터 모델을 프레젠테이션 계층에서 분리하는 방법을 생각했을 것입니다. 우리는 모두 관심사 분리의 이점을 알고 있지만, MVC 응용 프로그램 내에서 데이터 모델을 유지하는 방식으로 저를 혼란스럽게합니다.

더 계층화 된 방식으로 더 이상 제안 할 필요가 없습니다.

관련 문제