.NET 프로젝트에서 도우미 클래스가 있어야하는 위치에 대한 모범 사례는 무엇입니까? 비즈니스 계층과는 별도로 클래스를 참조하지만 appSetting config manager와 같은 프리젠 테이션과 앱은 때로는 특정 모듈이거나 때로는 앱 전체에서 사용될 수있는 코드입니다.C# 프로젝트 도우미 또는 유틸리티 클래스 구성
답변
나는 항상 이와 같은 것들을 꽤 유동적으로 허용합니다. 즉 :
- 다른 클래스와 같은 "헬퍼"클래스를 테스트합니다. 이것은 그들이 정적이되지 않는 경향이 있습니다.
- 필자는 필요할 때 이러한 헬퍼를 개별 메소드로 생성 할 수 있습니다. 둘 이상의 클래스에서 필요하다는 것을 알게되면, 같은 프로젝트에서 자신의 클래스 또는 "유틸리티"클래스로 옮깁니다.
- 두 개 이상의 프로젝트에서 필요하다고 판단되면 프로젝트에서 솔루션, 솔루션에서 하위 시스템, 하위 시스템에서 응용 프로그램, 응용 프로그램에서 라이브러리 또는 프레임 워크 등으로 상위 계층을 이동시킵니다.
대부분의 사용자는 "도우미"폴더에 넣습니다.
도우미에 따라 필요한 경우 모의 할 수 있도록 가상 메서드를 표시 할 수 있습니다. 그것은 구현하는 인터페이스에 바인드하거나 바인드하지만 인터페이스 당 하나의 구체적인 경우에만 과도 할 수 있습니다.
도우미 방법이 외부 의존성이없는 순수한 계산이 아니라면 어떤 경우에도 정적이 아니어야합니다.
그렇다면 다시 고려하십시오.
나는 이것을 utils 네임 스페이스에 넣는 경향이있다. 주 프로젝트 이름 공간에서 꽤 일반적인 경우. MyProject.Utils.MyHelperClass
이거나보다 구체적 인 경우 하위 네임 스페이스 MyProject.CRM.Utils.MyCRMHelperClass
입니다.
나는 거의 항상 내 솔루션에 MyProject.Core 클래스 라이브러리가 있습니다.
편집 : 나는 "더 큰"질문에 대답했을 것입니다.
하나의 프로젝트에서 모든 프로젝트의 크기에 따라 다릅니다. Microsoft 디자인 가이드에서는 5 개 미만인 경우 네임 스페이스를 만들지 말아야한다는 것에 대해 이야기합니다.
예를 들어 도우미가 사업 객체 나 핵심 객체를 사용해야하는 경우를 제외하고는이 클래스를 필요로하는 모든 프로젝트에서 참조하도록 의도 된 Common
이라는 어셈블리에 이러한 클래스를 넣습니다.
저는 Randolpho와 Ben이 한 것의 조합을하는 경향이 있습니다. 유틸리티 네임 스페이스의 "Utilities"폴더에서 정적 도우미 클래스를 사용합니다. 더 나은 파일 구성, 나머지 응용 프로그램 네임 스페이스를 명확하게 유지합니다.
- 1. C# 일반 직렬화 유틸리티 클래스
- 2. 큰 C++ 프로젝트 구성
- 3. 도우미 클래스 및 단위 테스트
- 4. 기본 클래스와 유틸리티 클래스
- 5. ASP.NET HttpCookie 도우미 클래스
- 6. ASP.NET 프로젝트 구성
- 7. 월 TableView 구성 도우미
- 8. Java 추상 클래스 또는 정적 유틸리티 클래스 디자인 선택
- 9. 유틸리티 클래스 내에서 로깅
- 10. C#, 구성 요소 클래스
- 11. 다른 TabItem을 제공하는 유틸리티 클래스
- 12. 비동기 도우미 클래스 android
- 13. 결합하고 분리 된 도우미 클래스
- 14. Java 유틸리티 클래스 대 서비스
- 15. 크로스 플랫폼 C/C++ 프로젝트 구성
- 16. 웹 응용 프로그램 유틸리티 클래스
- 17. Codeigniter 모델은 유틸리티 클래스 일뿐입니다?
- 18. 오픈 소스 Actionscript 3 또는 Javascript 날짜 유틸리티 클래스?
- 19. Magento - 도우미 클래스 만들기
- 20. 데이터베이스 도우미 클래스
- 21. .Net 클래스 도우미 메서드
- 22. NUnit 구문 도우미 클래스
- 23. PHP 양식 도우미 클래스
- 24. iCal 형식 - 구성 도우미 속성
- 25. 회원 저장소 VB.NET 도우미 클래스
- 26. .Net 확장 메서드와 유틸리티 클래스
- 27. ASP.NET + C# 다중 프로젝트 솔루션. 글로벌 유틸리티 기능은 어디에 두어야합니까?
- 28. C# Linq 도우미 작성하기
- 29. 프로젝트 아이디어 (Python 또는 C#
- 30. 예외 검색을위한 일반적인 유틸리티
'헬퍼 메소드'가 의미하는 바를 구체적으로 설명해 주시겠습니까? –
@jeff 거의 모든 재사용 가능한 코드. 필자는 항상 논리적 워크 플로우 항목의 모든 기능을 다루는 프리젠 테이션 계층과는 별도의 비즈니스 계층 프로젝트를 항상 가지고 있습니다. 하지만 구성 설정 래퍼 및 빌드 요청, 다이제스트 쿼리 스 팅을 좋아하는 실제 도우미 클래스와 같은 모든 것들, 또는 컨트롤에 대한 일반적인 기능을 수행하면 너무 길어서 게으르다. 나는 그저 모든 것을 처리하는 선호되는 방법이 무엇인지 알고 싶습니다. – spaghetticowboy