Árvore de páginas

Você está vendo a versão antiga da página. Ver a versão atual.

Comparar com o atual Ver Histórico da Página

« Anterior Versão 3 Próxima »

A arquitetura multicamadas é uma técnica largamente aceita pelo mercado de desenvolvimento de software a fim de reduzir a complexidade e aumentar o reuso de código. Para entregar uma arquitetura multicamadas o TOTVS .NET Framework (TNF) segue os princípios do Domain Driven Design (DDD):

  • Apresentação: Fornece a interface com o usuário e usa a camada de aplicação para interagir com o usuário. A solução da TOTVS para esta camada é o TOTVS HTML Framework (THF).

  • Aplicação: Faz a mediação entre as camadas de Apresentação e Domínio. Orquestra as regras de negócio e tarefas da aplicação.

  • Domínio: Inclui os objetos de negócio e suas regras. É o coração da aplicação.

  • Infraestrutura: Fornece as capacidades técnicas necessárias pelas camadas acima. Em exemplo é a implementação de um repositório utilizado para interagir com o banco de dados através de um ORM ou uma implementação de um provedor de envio de e-mails.

TOTVS .NET Framework

Visão geral das estruturas e camadas:

Apresentação

View Models (Javascript), Views (HTML/CSS)

Localização, Navegação, Notificação

WebWeb API Controllers, OData, ASP.NET Core
Aplicação

DTOs, DTO Mappers

Autorização, Sessão, Auditoria

Domínio

Entidades, Objetos de Valor, Repositórios, Serviços de Domínio

Unidade de Trabalho (UoW), Eventos de Domínio

Infraestrutura

ORM (EntityFramework Core), MongoDB, Carol

Backgroud Jobs

Outros


Uma camada pode ser implementada em um ou mais assemblies. Também podem existir contextos de negócio onde cada um pode ter as suas próprias camadas.

Camada de Domínio

Na camada de domínio é onde todas as regras de negócio devem ser implementadas.

Entidades representam os dados e operações de negócio de um domínio. Geralmente, mas não somente, elas são mapeadas para tabelas do banco de dados.

Repositórios são coleções de objetos e são utilizados para recuperar e gravar entidades na fonte de dados (banco de dados). A camada de domínio define os repositórios, mas não os implementam. Sua implementação deve ficar na camada de infraestrutura.

Unidade de Trabalho (UoW) é um padrão de projeto utilizado para gerenciar a conexão com o banco de dados e suas transações, acompanhar as mudanças em uma entidade e armazená-las na fonte de dados. É definida na camada de domínio, mas implementada na camada de infraestrutura.

Serviços de Domínio trabalham com entidades e outros objetos de domínio e implementam regras de negócio que não pertencem a uma única entidade. 

Esta camada deve ser independente de bibliotecas de terceiros ao máximo possível.

Camada de Aplicação

Esta camada contém os serviços que são utilizados pela camada de apresentação. Um serviço desta camada pode receber um DTO (Data Transfer Object) como entrada, utilizá-lo para executar alguma operação da camada de domínio e retornar outro DTO, se necessário. Ela não deve receber ou retornar entidades. Validação da entrada de usuário é implementada nesta camada. É recomendado o uso de uma ferramenta de mapeamento para mapear entidades para DTOs.

Camada de Infraestrutura

Enquanto a camada de domínio define os contratos para repositórios, unidade de trabalho e outros serviços, a camada de infraestrutura implementa esses contratos. Ela implementa os repositórios utilizando ferramentas de ORM como EntityFramework. O TNF fornece classes base para trabalhar com o EntityFramework Core. Esta camada é utilizada para abstrair as dependencias com bibliotecas de terceiros das outras camadas.

Outras

O TNF usa e suporta Injeção de Dependência. Ele também fornece log e outros componentes reutilizáveis.

 

 

 

  • Sem rótulos