Solucionado (ver solução)
Solucionado
(ver solução)
1
resposta

Classe DataService Criada, duvidas gerais

No Curso , foi criado uma classe chamada DataService e nela adicionado uma estratégia de Inicializar o banco, verificar se existe, popular dados e tal...

Mas depois foi adicionado um Método GetProdutos(), com isso surgiram as seguintes dúvidas.

  1. Esta classe DataService é/ou a mesma classe DAO isso ?
  2. Não seria o correto manter tudo na classe DataService certo ? seria bom ter ProdutoDataService, PedidoDataService ?
  3. Onde estaria meu método por exemplo produto.Adicionar (que antes ficava na classe DAO), qual a melhor estratégia para isso ? colocariamos na Classe DataService ? ou Criariamos uma service para cada tabela ?
1 resposta
solução!

Olá, José Luiz!

Esta classe DataService é/ou a mesma classe DAO isso ?

Sim, ela é a classe de serviço de acesso a dados

Não seria o correto manter tudo na classe DataService certo ? seria bom ter ProdutoDataService, PedidoDataService ?

Sim, é uma alternativa, à medida que seu sistema vai crescendo, você poderia quebrar em classes menores para que a classe DataService não acumulasse responsabilidades demais. Como o modelo do curso é pequeno (e continuou pequeno) e não contém muitos métodos, não me preocupei muito em refinar a arquitetura (se bem que poderia ter feito, nem que fosse como uma ilustração). Então sua sugestão é perfeita. Se no futuro tivermos uma continuação do curso ASP.NET Core com essa aplicação, vou conversar sobre essas decisões arquiteturais.

Onde estaria meu método por exemplo produto.Adicionar (que antes ficava na classe DAO), qual a melhor estratégia para isso ? colocariamos na Classe DataService ? ou Criariamos uma service para cada tabela ?

Você pode criar um ProdutoDataService separado, não vejo problemas nisso. Em DataService, seu método tem que se chamar algo como "AdicionarProduto", mas em ProdutoDataService ele pode se chamar simplesmente "Adicionar", o que deixa o projeto mais elegante. E então você pode extrair uma interface e uma classe base abstrata chamada BaseDataService<T>, onde T é a classe do modelo que com a qual vai trabalhar (Produto, Pedido, etc.). Você pode sempre mexer na arquitetura para melhorar o design da aplicação.

Note também que, se precisar quebrar DataService em mais classes, também vai ter que registrar os tipos dessas classes no Startup.cs e passar as interfaces dessas classes como parâmetro nos construtores dos controllers para que a injeção de dependência do ASP.NET Core funcione corretamente.

Boa sorte e abraços!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software