ASP.NET MVC에서 모델을 어떻게 네임 스페이스해야합니까? 괴상한 저녁 식사에 대해 혼란스러워합니다

StackOverflow https://stackoverflow.com/questions/766212

문제

나는 ASP.NET MVC를 배우고 있고 나는 그것을 좋아한다. 그러나 나는 내 모델을 네임 스페이스하는 올바른 접근 방식에 대해 매우 혼란스러워합니다.

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

이 폴더는 레일 및 친구와 같은 프레임 워크에서 영감을 받았으며 MVC 제목에서 M을 정당화해야하지만; 자동 모델 네임 스페이스가 다른 시스템과 구현에서 분리 가능하고 휴대용 인 비즈니스 로직을 작성할 가능성을 파괴하지 않습니까?

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

이것을 보여줄 복잡하고 좋은 ASP.NET MVC 샘플 앱이 있습니까?

도움이 되었습니까?

해결책

나는 당신에게 가장 의미가있는 방식으로 당신의 수업을 분류 할 것입니다. 나는 그들이 Nerd Dinner 샘플 앱에서 그 네임 스페이스를 사용했다고 생각합니다. 응용 프로그램의 일부.

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

다른 팁

Dev-Senses는 데이터 모델을 다른 프로젝트로 완전히 리팩토링해야한다고 말했습니다. 일부는 심지어 또 다른 프로젝트에서 비즈니스 엔터티를 만들고 LINQ-SQL 클래스에서 구성하도록했습니다.

나는 Scott과 Co.가 최소한 데이터 모델을 프레젠테이션 계층에서 분리하는 길을 갔을 것이라고 생각했습니다. 우리는 모두 우려의 분리의 이점을 알고 있지만 MVC 앱 내에서 데이터 모델을 유지하는 방식으로 당황 스럽습니다.

더 계층화 된 방법에 대한 더 이상 제안이 있습니까?

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