문제
3 개의 레이어 (또는 계층)가있는 다중 티어 프로젝트를 만들고 싶습니다.
이제 각 레이어 (계층) 이름을 어떻게 지정해야합니까?
Wikipedia 에서이 설명을 보았습니다.
그러나 나는 단순히 내 레이어를 "프레 젠 테이션 계층", "논리 계층"및 "데이터 티어"라는 이름을 지정할 수는 없습니다. 네임 스페이스에서 적절하지 않은
.
이름 지정을위한 아이디어는 무엇입니까?
해결책
계층과 층은 때로는 상호 교환 가능하게 사용되지만 미묘한 구별이 있습니다.계층은 물리적이며 레이어가 논리적입니다.더보기 : "레이어"와 "계층"의 차이점은 무엇입니까?
명명을 위해서는, 어떤 종류의 프로젝트가 일하는지, 어떤 유형의 아키텍처가 있는지에 따라 다릅니다.
예를 들어, 저는 호박색이라는 웹 프로젝트가 있습니다.이 프로젝트가 있습니다.
- amber.logic (논리 및 데이터는이 경우 단일 프로젝트 / 계층으로 결합)
- amber.tests (테스트)
- amber.web (프레젠테이션)
다른 팁
다음과 같이 네임 스페이스의 이름을 지정할 수 있습니다.
meormycompany.theapplication.Data
meormycompany.theapplication.logic
meormycompany.theapplication.presentation때로는 와 같은 하위 네임 스페이스를 추가해야합니다.
meormycompany.theapplication.Presentation.main
meormycompany.theapplication.presentation.dialogs
meormycompany.theapplication.Presentation.Controls
...그것은 당신에게 달려 있습니다.
프로젝트에 폴더를 만들 때 폴더 이름이 네임 스페이스에 자동으로 추가됩니다. 따라서 "meormycompany.thePplication"이라는 프로젝트가있는 경우 "데이터", "논리"및 "프레젠테이션"이라는 폴더를 추가 할 수 있습니다. "프레젠테이션"내에서 "주", "대화 상자", "컨트롤"또는 적절한 것으로 보이는 하위 폴더를 추가하십시오.
세 티어에 대해 별도의 프로젝트를 만들 수도 있습니다.
예 :
여기서 SVG 폴더의 클래스가 자동으로 네임 스페이스가 있습니다
cysoft.slvision.diagrams.shapes.svg
.namespace CySoft.SLVision.Diagrams.Shapes.Svg { public class SvgLine : LineShape { private SvgShapeFactory _context; ... } ... }
단일 응용 프로그램 - 솔루션에서는 일반적으로 다음과 같습니다.
<Company name>.<Application name>.<Tier name>
.
이름 대신에 공백이 포함되어 있거나 너무 길면 약어를 사용할 수도 있습니다.
나는 각 프로젝트 / 어셈블리에 대해이 명명 규칙을 사용합니다.
내 일반적으로 현재의 계층 / 층은
DAL
- 내 데이터 액세스 레이어 (예 : EF)
Business
- 내 비즈니스 논리 및 엔티티
Facade
- 응용 프로그램 로직을 정의하는 내 프리젠 테이션 레이어
UI
- 실제 사용자 인터페이스