MVC 폴더 구조에서 일반 클래스 파일은 어디에 있어야합니까? 예를 들어, 사용할 DataContext를 결정하는 클래스가 있으므로 각 컨트롤러에서 휠을 다시 작성하지는 않습니다. 그것은 컨트롤러가 아니더라도 컨트롤러 폴더에 있어야합니까? 그것이 모델이 아니더라도 데이터베이스와 관련이 있기 때문에 모델과 함께 있어야할까요? 아마도 Views \ Shared 폴더일까요? 또는 콘텐츠가 그런 종류의 콘텐츠를 포착하는 폴더입니까? 나는 어느 곳에 나 둘 수 있다고 확신하지만, 나는 "적당한"장소가 어디에 있는지 궁금해하고 있었다.MVC 일반 클래스 위치
답변
컨트롤러, 콘텐츠 또는보기가 아니므로 사용하지 마십시오. 모델과 가장 밀접한 관련이 있기 때문에 "Helpers"또는 "Utility"등의 하위 폴더에 모델로 넣을 수 있습니다. 또는 서비스라고하는 다른 최상위 폴더를 추가하여 거기에 넣을 수 있습니다. 바로 이것이 컨트롤러와 모델 사이의 중간 논리 인 모든 앱 로직을 집어 넣는 곳입니다.
자체적으로 유용 할 수 있다면 (명령 줄 도구로 생각하면됩니다), 모델 폴더에 넣으십시오. 컨트롤러의 도우미로만 사용되는 경우 Controllers 폴더에 넣으십시오.
당신은 롭의 MVC 점포를 보면 : (Commerce.MVC.Data 등) 별도의 클래스 라이브러리 프로젝트
롭이하는 일에 관한 것이 아니라, 그 이상의 것입니다. 그것은 책임의 분리 등에서의 단순한 표준 접근 방법입니다. 데이터 액세스는 애플리케이션의 프리젠 테이션 레이어에 아무런 의미가없는 한 페이지 애플리케이션에 대해 언급하지 않는 한 비즈니스를 수행하지 않습니다. –
, 그렇지 않으면 그것을 컨트롤러 폴더에 넣을 수 있습니다.
dmajkic,
왜 자체 영역으로 분리해야합니까? BLL 코드가 컨트롤러 폴더에 있어야합니다. DAL 관련 항목 인 경우 모델에 있어야합니다. 프로젝트가 거대 해지고 하위 폴더를 만들고 싶습니다. 문제가되지 않아야합니다. 그러나 다른 계층에 코드를 두는 것은 MVC의 목적을 실제로 무방입니까?
MVC는보기 패턴입니다. 그것은 프리젠 테이션 레이어와 관련이 있습니다. 컨트롤러는 프리젠 테이션 로직만을 포함해야합니다. 컨트롤러 클래스에는 비즈니스 로직이 없어야합니다. dmajkic은 클래스를 별도의 프로젝트가 아닌 별도의 프로젝트에 배치한다고 말했습니다. – liammclennan
@liammclennan - 정확히 알레르기가 뭔지 모르겠지만 어쩌면 그만 두어야 할 것입니다. –
별도의 DataAccess 어셈블리가 있고 해당 클래스를 내부적으로 만들고 DataContextFactory라고합니다.
- 1. CSV (일반 속성) 일반 클래스
- 2. asp.net mvc 일반 컨트롤러
- 3. 사전의 정적 일반 클래스
- 4. Java 일반 컨테이너 클래스
- 5. 일반 T에서 클래스 파생
- 6. 일반 클래스 테스트
- 7. 일반 클래스 팩토리 문제
- 8. 일반 데이터 클래스 설계
- 9. 목록 요소의 일반 클래스
- 10. Iterable을 구현하는 일반 클래스
- 11. 일반 객체의 클래스 찾기
- 12. 일반 클래스 구성
- 13. 일반 프록시 클래스
- 14. 배열이있는 일반 클래스
- 15. C++ 구현 일반 클래스
- 16. 일반 클래스 직렬화
- 17. ASP.Net MVC 아키텍처 - ViewModels의 위치
- 18. 다른 일반 클래스를 사용하는 일반 클래스
- 19. 일반 클래스 및 인터페이스가 아닌 일반 버전
- 20. Reflection.Emit 일반 기본 클래스 일반 메서드 호출
- 21. MVC 응용 프로그램에 추가 클래스를 배치해야하는 위치
- 22. GDI + 일반 오류 ASP.NET MVC
- 23. 일반 뷰 모델 컨트롤 (MVC)
- 24. 테이블의 일반 열에 클래스 속성 매핑
- 25. 자체 참조 일반 클래스 템플릿
- 26. 클래스 객체의 일반 유형 지정
- 27. 일반 클래스 만들기 Rails-y
- 28. 일반 클래스 내에서 equals 사용
- 29. 일반 사전 클래스 키 값
- 30. Java의 일반 클래스 (안전한 형식)
모든 애플리케이션 로직을 프리젠 테이션 레이어 프로젝트에 넣으시겠습니까? 끔찍한 소리가 난다. ... –
작은 프로젝트를 위해 나는 거기에 넣었다. 서비스가 재사용 될 경우 자체 프로젝트가 생성됩니다. –