3

나는 NHibernate에 대한 경험이 있고 Castle Nhibernate Facilities 또는 Castle NhibernateIntegration을 시작하려고합니다. 서비스 계층 (비즈니스, 클래스 라이브러리 프로젝트)에서 트랜잭션 제어 (속성 포함)를 구성하고 수행하는 방법에 대한 데모 프로젝트를 어디서 찾을 수 있는지 알고 싶습니다. 설명서가 없으며 시작하기 전에 몇 가지 내용을 찾기가 정말 어렵습니다.NHibernate 시설을 어떻게 구성합니까?

웹에서 샘플을 찾았지 만 데모 프로젝트가 아닌 코드 만 있으면 ... 뭔가를 다운로드하고 싶습니다. 나는 완전한 솔루션을 찾지 못하고 비즈니스 클래스 (클래스 라이브러리)의 구성 및 트랜잭션 제어 만 찾는다.

죄송합니다.이 종류의 스레드는 여기에 있지만, 시작하는 방법을 알고 있습니다.

감사합니다.

답변

0

당신은 내가 Sharp Architecture

샤프가 '모범 사례'템플릿 프로젝트에서 시도 및 기술의 (성 nHibernate 수의 번호를 이용하여 확인 할 nHibernate 수와 통합 성 윈저의 전체 예제를 보려면 포함됨). 그것이하는 일 중 일부는 당신의 취향에 맞지 않을 수도 있지만, 그것이 모두 함께 들어갈 수있는 방법 중 하나를 분명히 보여줄 것입니다.

Sharp가 미리 컴파일 된 템플릿 프로젝트에서 자체 기본 클래스를 사용하기 때문에 낮은 수준에서 무슨 일이 일어나는지보고 싶다면 GitHub의 소스 저장소로 이동해야 할 수도 있습니다 소스 그래서 당신이 원한다면 무슨 일이 일어나는지 볼 수 있습니다).

내 아키텍처를 정리할 때 귀중한 도움이었고 성 및 nHibernate가 갈 길이라고 솔직하게 말할 수 있기 때문에 올바른 방향으로 가고 있습니다.

편집 의견 : 아마도 나는 여기 약간 혼란스러워합니다. 캐슬 노트에 따르면

시설은 컨테이너를 확장하는 주요 방법입니다. 시설을 사용하여 WCF 또는 Hibernate와 같은 외부 프레임 워크와 컨테이너를 통합 할 수 있으며 이벤트 배선과 같은 컨테이너에 새로운 기능을 추가하거나 트랜잭션 지원 ... 또는 구성 요소 (동기화, 시작 가능 의미론 ...)에 컨테이너를 통합 할 수 있습니다.

내 성실한 Nhibernate 시설 및 성 NhibernateIntegration은 모두 컨테이너를 기반으로해야합니다.

컨테이너없이 작업하려면 Singleton Factory를 사용하여 SessionFactory를 관리해야합니다. 이 here의 예가 있습니다.

트랜잭션을 제어하는 ​​속성의 측면에서 Sharp는 이것을 수행합니다 (here 참조). 이 코드를 재사용하고 NHibernateSession을 theirs과 같은 자신의 싱글 톤으로 대체하면 사라질 수 있습니다.

nHibernate가 효율적으로 이것을 수행하기 때문에 UnitOfWork를 구현할 필요가 없습니다. 필요한 것은 단일 제어 지점 (Singleton)에서 트랜잭션을 관리 할 수있게 해주는 아키텍처이며 모든 저장소에서 사용할 수 있습니다.

+0

IoC 컨테이너를 사용할 수 없습니다. 프로젝트에서 허용하지 않습니다. IoC없이 뭔가를 구현해야합니다.내가 어떻게이 일을 할 수 있겠는가, 패턴 만 사용하여 트랜잭션을 제어한다면, 나는 UnitOfWork 패턴이 좋을 것이라고 생각하지만, 그것을 구현하는 가장 좋은 방법은 무엇인지 모르겠다. 고맙습니다! –

관련 문제