당신은 내가 Sharp Architecture
샤프가 '모범 사례'템플릿 프로젝트에서 시도 및 기술의 (성 nHibernate 수의 번호를 이용하여 확인 할 nHibernate 수와 통합 성 윈저의 전체 예제를 보려면 포함됨). 그것이하는 일 중 일부는 당신의 취향에 맞지 않을 수도 있지만, 그것이 모두 함께 들어갈 수있는 방법 중 하나를 분명히 보여줄 것입니다.
Sharp가 미리 컴파일 된 템플릿 프로젝트에서 자체 기본 클래스를 사용하기 때문에 낮은 수준에서 무슨 일이 일어나는지보고 싶다면 GitHub의 소스 저장소로 이동해야 할 수도 있습니다 소스 그래서 당신이 원한다면 무슨 일이 일어나는지 볼 수 있습니다).
내 아키텍처를 정리할 때 귀중한 도움이었고 성 및 nHibernate가 갈 길이라고 솔직하게 말할 수 있기 때문에 올바른 방향으로 가고 있습니다.
편집 의견 : 아마도 나는 여기 약간 혼란스러워합니다. 캐슬 노트에 따르면
시설은 컨테이너를 확장하는 주요 방법입니다. 시설을 사용하여 WCF 또는 Hibernate와 같은 외부 프레임 워크와 컨테이너를 통합 할 수 있으며 이벤트 배선과 같은 컨테이너에 새로운 기능을 추가하거나 트랜잭션 지원 ... 또는 구성 요소 (동기화, 시작 가능 의미론 ...)에 컨테이너를 통합 할 수 있습니다.
내 성실한 Nhibernate 시설 및 성 NhibernateIntegration은 모두 컨테이너를 기반으로해야합니다.
컨테이너없이 작업하려면 Singleton Factory를 사용하여 SessionFactory를 관리해야합니다. 이 here의 예가 있습니다.
트랜잭션을 제어하는 속성의 측면에서 Sharp는 이것을 수행합니다 (here 참조). 이 코드를 재사용하고 NHibernateSession을 theirs과 같은 자신의 싱글 톤으로 대체하면 사라질 수 있습니다.
nHibernate가 효율적으로 이것을 수행하기 때문에 UnitOfWork를 구현할 필요가 없습니다. 필요한 것은 단일 제어 지점 (Singleton)에서 트랜잭션을 관리 할 수있게 해주는 아키텍처이며 모든 저장소에서 사용할 수 있습니다.
IoC 컨테이너를 사용할 수 없습니다. 프로젝트에서 허용하지 않습니다. IoC없이 뭔가를 구현해야합니다.내가 어떻게이 일을 할 수 있겠는가, 패턴 만 사용하여 트랜잭션을 제어한다면, 나는 UnitOfWork 패턴이 좋을 것이라고 생각하지만, 그것을 구현하는 가장 좋은 방법은 무엇인지 모르겠다. 고맙습니다! –