Entities Designer
O modelo de entidades é construido com o Entities Designer (ED) e define basicamente o modelo de dados de um módulo da aplicação.
O modelo de dados define as entidades do sistema, os seus atríbutos e as relações entre si, bem como determinados comportamentos intrínsecos ao sistema que estão diretamente ligados com as entidades.
Na Plataforma Elevation utiliza-se indiferenciadamente os seguintes termos para referir as entidades do sistema: entities, entidades, domain entities ou business entities.
Conceitos Principais
Os conceitos principais do modelo são os seguintes:
Entity
Este é o conceito principal do modelo e representa uma entidade principal, o Cliente por exemplo.
Uma entidade pode ter 1 ou mais atríbutos (normal attributes).
Value List
Trata-se de uma lista fixa de valores possíveis pré-definidos (um enumerado).
Uma value list pode ter 1 ou mais itens (value list items).
Association
Uma associação define uma relação entre 2 entidades ou entre uma entidade e uma value list.
Na prática, uma associação define uma foreign key da entidade X para a entidade Y (exemplo: o cliente tem um meio de pagamento).
Composition
A composição é um caso particular de uma associação em que a entidade destino passa a ser um detalhe da entidade origem.
É o exemplo clássico do master/detail em que o detail não existe (não faz sentido) sem o master (exemplo: a fatura tem linhas).
Interfaces
As interfaces são artefactos especiais que impõem "regras" (interfaces) a entidades (por exemplo, os atríbutos que devem existir) obrigatoriamente. Este conceito é utilizado em particular para implementar vários dos padrões de negócio suportados pela framework.
Um exemplo é o interface ICompanyDependent.
Extensions
A extensão é uma entidade particular que extende outra. Extende no sentido que acrescenta algum tipo de informação específica à entidade estendida.
Assim é possível que duas entidades distintas extendam a mesma entidade. Uma vez que essas entidades podem existir em módulos diferentes da aplicação, este conceito também facilita imenso a separação de preocupações entre módulos, evitando super entidades que têm sempre que ser alteradas se algum dos módulos que dependem delas precisam de alguma funcionalidade nova.
Um exemplo concreto são as entidades CustomerParty e SupplierParty que extendem a entidade Party.
Outputs Principais
Este modelo, para além de servir de base a todos os outros, garante a geração de uma parte significativa do código de um módulo, nomeadamente:
- O modelo de objeto das business entities (POCO).
- A base de dados.
- Os mapeamentos para o ORM.
Meta-modelo
A imagem seguinte apresenta uma visão simplificada do meta-modelo do modelo de entidades.
