Árvore de páginas

Versões comparadas

Chave

  • Esta linha foi adicionada.
  • Esta linha foi removida.
  • A formatação mudou.

...

  • 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 Nossa sugestão para você é usar o TOTVS HTML Framework (THF).
  • Aplicação: Faz Realiza 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 Considere como o "core" de sua 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.

...

  • Cross-cutting: Essa camada prove uma infraestrutura unica as demais camadas, podendo ter funcionalidades de log, auditoria, etc. Essas funcionalidades são compartilhadas a nível de sistema como um todo.

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

...

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.

 

 

 Os próximos tópicos abordam como você pode utilizar o TNF para criar essa estrutura de maneira mais prática e objetiva, seguindo as melhores práticas de desenvolvimento possíveis.