2010-05-25 1 views
4

우리는 현재 아키텍처와 응용 프로그램 디자인을 개선하고 있습니다. 데이터 액세스 레이어의 디자인을 완료했습니다. XML 액세스와 리플렉션을 사용하여 데이터를 유지한다는 의미에서 일반적인 개념입니다.비즈니스 계층 디자인

이제 우리는 비즈니스 계층을 설계하는 단계에 있습니다. 엔터프라이즈 아키텍처 및 디자인과 관련된 서적을 읽었으므로 비즈니스 계층에 적용 할 수있는 패턴이 거의 없다는 것을 알게되었습니다. 테이블 패턴과 도메인 모델은 이러한 패턴의 예입니다. 또한 도메인 기반 디자인도 발견했습니다.

이전에 테이블 개체에 대한 엔티티를 작성하기로 결정했습니다. 그러나 우리는 DDD에 관해서는 개체와 가치 객체에 차이가 있음을 발견했습니다. 그런 디자인을 겪은 당신을 위해. 패턴, 연습 및 샘플과 관련하여 저를 안내해주십시오.

미리 감사드립니다. 또한 제 관심이 없으면 자유롭게 토론하십시오.

+0

또한 앞으로 NHibernate와 작업해야 할 수도 있습니다! –

답변

0

@Adil,

나는 사용자가 어쨌든,이 (또한 NHibernate에 포함) 내가 사용 모델의 종류는 매우 체험자 아니에요.

GUI - 모든 웹 양식 등 BLL - 새 개체의 인스턴스를 생성하는 카탈로그 DAL - NHibernate와 상호 작용을 담당하는 클래스가 구현되는 곳입니다. NHibernate 매핑 파일은 여기에 있습니다.

모델 - 데이터 전송 개체 사이에 BLL 및 DAL에서 사용되는 클래스 라이브러리입니다.

다른 패턴이 사용됩니다. 예를 들어 BLL과 DAL에는 인터페이스에 대한 액세스를 허용하는 Factory 클래스가 있습니다. 카탈로그는 싱글 톤 클래스입니다. 카탈로그의 모든 접근 ... 위로 오브젝트 (예 : "기업"=> "Enterprise.PeopleCatalog".

어쨌든, 도움이 희망

@AngryHacker을 내 비즈니스 로직을 나타내는 마스터 싱글 톤 클래스를 사용하는 팁을 주셔서 감사합니다. CSLA.NET의 예를 들어 주시겠습니까?

3

@Adil이 질문에 대한 답변은 원래 질문과 다를 수 있습니다 만, 귀하의 데이터 액세스 레이어를 롤하는 결정을 내리시기 바랍니다. 당신이 NHibernate에에 가고 싶습니다 참고 :. 지금 그것을 할 IMO

, ORM을 작성하는 것은 시간 낭비입니다 당신이하지 않는 매우 구체적인 제한이 있습니다. 이미 수백 시간의 노력이 그들에게 쏟아 부어졌으며, 거기에는 다양한 옵션이 있습니다. 그것을 활용하십시오! LINQ2SQL, 엔티티 프레임 워크, NHibernate, Subsonic, LLBLGen은 모두 훌륭합니다.

참고도 당신이 자신의 롤 경우 많은 노력없이 LINQ 인 선 (善)을 사용하지 것이다.

지금까지 레이어가 간다, 너트를 이동하지 않으려 : 점검 층의 수를 유지하고 추상화가 누출을 방지하기 위해 그들 사이에 가치있는 인터페이스를 구축하는 대신에 집중한다.

내가 사용 사방 논리로 끝날와 추상화가 사방에 유출 지속성 매우 "패턴"의 수, 아름 답게 계층화 된 프로젝트를 본 적이있다. 계속 간단하게!