NHibernate - Arquitetura
Hoje em dia, muitos sistemas são projetados com arquitetura em camadas, o NHibernate também tem e funciona perfeitamente bem com esse design.
Arquitetura em camadas
Uma arquitetura em camadas divide um sistema em vários grupos, onde cada grupo contém o código que trata de uma área de problema específica e esses grupos são chamados de camadas. A maioria dos aplicativos de nível empresarial usahigh-level application architecture que consistem em três camadas -
- A camada de apresentação
- A camada de negócios
- A camada de persistência
Por exemplo, uma camada de interface do usuário, também conhecida como camada de apresentação, pode conter todo o código do aplicativo para construir páginas da web e processar a entrada do usuário.
Um grande benefício da abordagem de camadas é que muitas vezes você pode fazer alterações em uma camada sem qualquer interrupção significativa nas outras camadas, tornando os sistemas lesser fragile and more maintainable.
Camada de apresentação
É a camada superior, que contém o código responsável por desenhar a interface do usuário, páginas, diálogos ou telas, coletar a entrada do usuário e controlar a navegação.
Camada de Negócios
A camada de negócios é responsável por implementar quaisquer regras de negócios ou requisitos de sistema que os usuários entendam como parte do domínio do problema.
Também reutiliza o modelo definido pela camada de persistência.
Camada de Persistência
A camada de persistência consiste em classes e componentes responsáveis por salvar e recuperar os dados do aplicativo.
Essa camada também define um mapeamento entre a classe do modelo e o banco de dados. NHibernate é usado principalmente nesta camada.
Base de dados
- O banco de dados existe fora do aplicativo .NET.
- É a representação real e persistente do estado do sistema.
- Se um banco de dados SQL for usado, o banco de dados incluirá o esquema relacional e possivelmente os procedimentos armazenados.
Aulas de ajudantes / utilitários
Cada aplicativo possui um conjunto de classes auxiliares ou utilitárias que suportam as outras camadas: por exemplo, widgets de IU, classes de mensagens, classes de exceção e utilitários de registro.
Esses elementos não são considerados camadas porque não obedecem às regras de dependência entre camadas em uma arquitetura em camadas.
Arquitetura NHibernate
É uma visão de alto nível do aplicativo NHibernate e você também pode ver a arquitetura NHibernate simples.
O código do aplicativo usa o NHibernate ISession e IQuery APIs para operações de persistência e só precisa gerenciar transações de banco de dados, de preferência usando o NHibernate ITransaction API.