2

두 가지 질문이 있습니다.컨벤션을 통한 컨벤션에 언제 새 폴더를 추가합니까?

사람들이 프로젝트에 서비스 폴더를 추가하는 것을 봅니다. 그 폴더의 목적은 무엇입니까?

서비스 및 ViewModels 폴더를 볼 수 있습니다. 이제 Repositories에 대한 기사를 읽었습니다. 그래서 새로운 사용법이있는 수업을 할 때마다 폴더를 만들어야한다는 규칙이 있습니까? 예를 들어 Repository 클래스가있는 경우 Repository 폴더를 만들어 모델 폴더 대신이 폴더에 저장해야합니다.

답변

3

모델 폴더는보기 모델에만 해당됩니다. 그 속에 속한 것은 없습니다.

모든 비 UI 로직을 MVC 프로젝트에서 참조하는 별도의 클래스 라이브러리로 옮기는 것이 좋습니다. Google separation of concerns

폴더 명명법은 아키텍처마다 다릅니다. 도메인 기반 설계를 사용하는 사람들은 다른 사람들에 대한 루트 폴더를 만드는 동안

  • 서비스
  • 을 폴더

    • 인프라
    • 모델 이름 (도메인 모델 및 모델을 볼 수 없습니다)
    • 저장소 경향 모든 관련 클래스를 배치하는 모델의 각 유형.

    +0

    잘해야한다 ".. 모델 폴더보기 모델에만 해당됩니다 다른 건 그 안에 속한 없다" ASP.NET MVC에서? 읽고 읽은 모든 것은 Domain Models (객체 또는 데이터베이스에서 바로) 또는 ViewModel 일 수 있음을 보여줍니다. 사실, MVC 기사/튜토리얼의 좋은 숫자는 별도의 ViewModels 폴더를 만들 것을 말해줍니다. – dotnetN00b

    +0

    기존 가이드 라인이 없기 때문입니다. 누구나 예제, 블로그 항목 또는 잘 작동하는 기본 MVC 프로젝트를 채찍질 할 수 있습니다. 문제는 응용 프로그램이 커지고 유지 관리를 시작해야 할 때 발생합니다. MVC3 프로젝트는 UI 계층이며 UI 논리 만 포함해야합니다. 적어도 당신이 관심사의 분리를 사용하는 잘 구조화 된 솔루션을 원한다면. – jgauffin

    +0

    @ dotnetN00b : 더 자세한 정보가 필요하십니까? – jgauffin

    1

    폴더 (일반적으로)에는 아무 것도 없습니다. g 컨벤션에 관한 관례와 관련이있다. 그것들은 단순히 콘텐츠를 구성하는 방법 일뿐입니다. 이것은 일반적으로 해당 폴더 내의 모든 클래스에 대한 네임 스페이스 (폴더 이름의 네임 스페이스)를 생성합니다.

    구체적인 경우에는 가장 합리적인 것을해야합니다. 리포지토리에 대해 사용자 지정 POCO를 사용하는 경우 리포지토리 폴더를 만드는 데 동의하게됩니다. 그러나 모델 폴더는 실제로 UI에서 사용되는 모델이 저장되어있는 MVC의 규칙입니다.

    그냥 당신이 가장 논리적 인 장소에 객체를 저장할 수 있도록, 당신은 당신이 말한 :