Índice
Neste tópico vamos criar um projeto para nossa camada de aplicação, definir um módulo, interface e implementação de nosso serviço de aplicação.
Para começarmos a trabalhar temos que criar um projeto com suporte a .NET Core.
...
Com o projeto criado vamos adicionar os seguintes pacotes via nuget: nuget Tnf , e Tnf.Dto disponível em nosso package source: em https://www.myget.org/F/tnf/api/v3/index.json
Caso você faça referencie outros projetos em sua camada de aplicação como: camada de domínio e de infraestrutura, note que os projetos do .NET Core compartilham referencias referências entre eles não sendo necessário instalainstalá-las em cada assembly.
Vamos agora criar nosso modulo adicionando referências para nossa camada de aplicação.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
[DependsOn( typeof(TnfAutoMapperModule), typeof(DomainModule), typeof(CarolModule), typeof(EntityFrameworkModule))] public class AppModule : TnfModule { public override void PreInitialize() { base.PreInitialize(); } public override void Initialize() { IocManager.RegisterAssemblyByConvention(typeof(AppModule).GetAssembly()); } } |
Como mencionado anteriormente no tópico de introdução a camada de aplicação, esse essa camada tem a responsabilidade de ligar nosso assembly de negocio com nossa infraestrutura.
...
...
Todo serviço de aplicação deve implementar a interface IApplicationService.
Bloco de código | ||||||||
---|---|---|---|---|---|---|---|---|
| ||||||||
public interface ITaskAppService : IApplicationService { void CreateTask(CreateTaskInput input); } |
Agora vamos implementar o contrato de nosso serviço definido acima. Toda implementação de serviços de aplicação devem Ao fazer a implementação devemos derivar da classe ApplicationService.
...
Note que nosso módulo registra as convenções no método Initialize. Nosso serviço de aplicação já será automaticamente configurado em nosso container de injeção de dependência para o suporte a injeção de dependência.
Em nossa implementação do "TaskAppService" estamos usando a infraestrutura de Logger usada para criação de logs e L que representa o acesso a estrutura de localização do framework.
Essas e outras funcionalidades estão disponíveis através da herança do ApplicationService.