NHibernate-아키텍처
요즘에는 많은 시스템이 계층화 된 아키텍처로 설계되었으며 NHibernate도이 기능을 갖추고 있으며 해당 설계와 완벽하게 잘 작동합니다.
계층화 된 아키텍처
계층 구조는 시스템을 여러 그룹으로 나눕니다. 각 그룹에는 특정 문제 영역을 다루는 코드가 포함되어 있으며 이러한 그룹을 계층이라고합니다. 대부분의 엔터프라이즈 수준 응용 프로그램은high-level application architecture 세 개의 레이어로 구성된
- 프레젠테이션 레이어
- 비즈니스 계층
- 지속성 레이어
예를 들어, 프리젠 테이션 계층이라고도하는 사용자 인터페이스 계층에는 웹 페이지를 작성하고 사용자 입력을 처리하기위한 모든 애플리케이션 코드가 포함될 수 있습니다.
계층화 접근 방식의 주요 이점 중 하나는 다른 계층을 크게 중단하지 않고 한 계층을 자주 변경할 수 있다는 것입니다. lesser fragile and more maintainable.
프리젠 테이션 레이어
사용자 인터페이스, 페이지, 대화 상자 또는 화면 그리기, 사용자 입력 수집 및 탐색 제어를 담당하는 코드가 포함 된 최상위 계층입니다.
비즈니스 계층
비즈니스 계층은 사용자가 문제 도메인의 일부로 이해할 수있는 비즈니스 규칙 또는 시스템 요구 사항을 구현하는 역할을합니다.
또한 지속성 계층에서 정의한 모델을 재사용합니다.
지속성 레이어
지속성 계층은 애플리케이션 데이터 저장 및 검색을 담당하는 클래스 및 구성 요소로 구성됩니다.
이 계층은 또한 모델 클래스와 데이터베이스 간의 매핑을 정의합니다. NHibernate는 주로이 레이어에서 사용됩니다.
데이터 베이스
- 데이터베이스는 .NET 응용 프로그램 외부에 있습니다.
- 시스템 상태의 실제적이고 지속적인 표현입니다.
- SQL 데이터베이스가 사용되는 경우 데이터베이스에는 관계형 스키마 및 저장 프로 시저가 포함됩니다.
도우미 / 유틸리티 클래스
모든 애플리케이션에는 UI 위젯, 메시징 클래스, 예외 클래스 및 로깅 유틸리티와 같은 다른 계층을 지원하는 도우미 또는 유틸리티 클래스 세트가 있습니다.
이러한 요소는 계층화 된 아키텍처에서 계층 간 종속성에 대한 규칙을 따르지 않기 때문에 계층으로 간주되지 않습니다.
NHibernate 아키텍처
NHibernate 애플리케이션의 상위 레벨보기이며 간단한 NHibernate 아키텍처도 볼 수 있습니다.
애플리케이션 코드는 NHibernate를 사용합니다. ISession 과 IQuery 지속성 작업을위한 API이며 이상적으로는 NHibernate를 사용하여 데이터베이스 트랜잭션을 관리해야합니다. ITransaction API.