🔥Desde 2016! 💥O maior e mais ativo grupo de .NET do Telegram há 9 anos. 🎯Grupo sobre .NET, ASP.NET, Mono, .NET Core, Xamarin, C# etc. Use /info para as regras e informações adicionais. 👉Regras: go.gaGO.io/dotnetbr-rules
tem uma regra antiga que escutei pela primeira vez não faz muitos anos (no máximo 5 ou 6 anos, mas acho que menos) :
se não faz conta, não é número.
se não for usado em operações matemáticas, não é número.
ID's (incremento e soma)
Quantidades (soma e multiplicação)
Preço (soma e multiplicação)
Taxas e Percentuais (multiplicação)
— — — vs — — —-
CPF (n/a)
CNPJ (n/a)
inscrição estadual (n/a)
CEP (n/a)
DDD e telefone (n/a)
Conta Corrente (n/a)
Agência (n/a)
Cartão de Crédito (n/a)
Placa de Carro (n/a)
Números de carteirinhas (plano de saúde etc etc) (n/a)
....
achei uma regra simples, boba, mas absurdamente útil.
E pelo que pessoal comentou acima tem essas questões com debugger, algo vira é mexe ainda utilizo bastante.
Читать полностью…Mas veja. A pergunta inicial era Repository. E eu disse que pode usar DTO. Então começou-se a misturar Clean Architecture, e Entidade com Tabela… então eu peguei um template de Clean Architecture que usa DTO para ler do banco de dados via EF Core (que implementa o Padrão Repository).
Читать полностью…Nesse caso ele não está criando repositories, ele está pegando os dados diretamente da service. O arquivo que você mandou é uma service que recebe o contexto do banco direto no construtor:
public class ListContributorsQueryService(AppDbContext _db) : IListContributorsQueryService
Isso principalmente para API que vão ser consumidas por clientes, facilita ele não precisa saber toda a modelagem da sua base isso é uma complexidade interna
Читать полностью…Faz sentido recuperar a entidade por completa quando você quer fazer uma operação e as regras de negócio estão encapsuladas na mesma.
Читать полностью…Tenho o costume de fazer assim também, até porque fica mais difícil reutilizar métodos de repositories que retornam DTOs para casos específicos.
Retornando DTOs na repository você pode acabar com métodos assim:
GetProductBasicAsync
GerProductCompleteAsync
GetProductNamesAndIdsAsync
GetProductNamesAndPricesAsync
lembrando que o Dto serve para customizar o resultado. Algumas propriedades talvez não podem ser expostas ou devem ser tratadas antes
Читать полностью…Depende muito da sua arquitetura. Se estiver usando clean arch, provavelmente as interfaces das repositories estarão na camada de domínio, caso isso aconteça você não conseguirá retornar DTOs (que provavelmente estarão na camada de aplicação).
Digo "provavelmente" porque cada um implementa clean arch de uma forma diferente (não estou dizendo que é errado).
Pode retornar só o DTO. Imagina que você quer apenas “Id”, “Ativo” do seu Produto pra executar alguma regra de negócio específica, então você vai buscar só esses campos do banco e vai retornar só eles na DTO.
Читать полностью…Fale... talvez existam pessoa que possam dar sugestões melhores, mas por enquanto, se teu objetivo for estudo, posso te sugerir que estude os conceitos básicos de Programação Orientada a Objetos e, pra aprofundar esses conceitos, acho uma boa estudar os princípios SOLID e o Object Calisthenics. Tudo isso sempre implementando exemplos em C#, primeiro com aplicações Console e depois partindo pra uma API que receba e responda JSON.
Essa é minha sugestão de como começar em C# e .NET
Oi galera. Tudo bem? Estou nesse grupo faz algum tempo e apenas leio as mensagens e novidades que vocês postam. Eu queria saber uma coisa, se alguém puder dizer. Como começar em C# e .NET? Existe uma maneira correta e tal? Eu sou curioso da programação apenas, nunca fiz algo grandioso, só alguns scripts mesmo em JS ou Python que facilitaram alguma tarefa. E eu acho interessante esse mundo só .Net, então se alguém puder dar alguma dica ou recomendação, eu fico agradecido.
Читать полностью…🔵 [Online|22:15|Dapper x Entity Framework x ADO|Gratuito]
Fala galera! Daqui a pouco - a partir das 22:15 - horário de Brasília - estreia mais um vídeo gratuito - com chat ao vivo para dúvidas - no Canal .NET. Confira neste conteúdo um exemplo de implementação de testes de performance em .NET 9 com a biblioteca BenchmarkDotNet, comparando dessa vez a inclusão de registros em uma base SQL Server em cenários que envolvem relacionamentos do tipo um-para-muitos (1:n). Foram utilizados aqui o Entity Framework Core, Dapper, ADONET e DapperContrib, tudo isso a partir de um pipeline do Azure DevOps e criando containers sob demanda com o projeto Testcontainers: https://www.youtube.com/watch?v=3r3eszHlloY
Ainda não usei esse cursor, vejo só o pessoal falando, fico pensando se tem pagar alguma coisa (imagino que sim) então nem testo nada kkk pq se for pra usar algo 'trial' prefiro continuar como estou.
Читать полностью…A partir de julho de 2026, CNPJs poderão ter letras e números nos primeiros 12 caracteres. Bora refatorar!
Читать полностью…https://github.com/ardalis/CleanArchitecture/blob/main/src/Clean.Architecture.Infrastructure/Data/Queries/ListContributorsQueryService.cs
Esse é um template de Clean Arquitecture do Steve “Ardalis” Smith e ele mesmo usa DTO pra retornar dados do banco.
https://github.com/ardalis/CleanArchitecture/blob/main/src/Clean.Architecture.Infrastructure/Data/Queries/ListContributorsQueryService.cs
Pra mim depende da arquitetura, se vc pensar em CQS (command Query Segregation) as consultas utilizadas para retornar dados a um consumidor pode estar em uma estrutura mais simples que a que vc utiliza nas regras de negócios qdo está inserindo ou atualizando dados
Читать полностью…Só um adendo, Repository é um termo cunhado no DDD que ele abstrai a camada de dados para um AggregateRoot.
No livro diz que ele é como se fosse uma coleção das suas entidades, que armazena/insere/recupera e atualiza.
Seguindo esse conceito, nada impede você ter um Repository para fazer ações com sua entidade e um DAO (Talvez seguindo o padrão DAL) para retornar apenas partes que você precisa, sem precisar ficar carregando a entidade por completa.
Isso sem falar em problemas de performance: imagina uma aplicação com elevado throughput em que centenas ou milhares de requests carregando do banco uma porrada de dados que ele não precisa
Читать полностью…Entidade representa seu domínio, não suas tabelas do banco de dados. Uma coisa é uma coisa, outra coisa é outra coisa. Eventualmente uma entidade será mapeada em uma tabela, mas não necessariamente. Desing de domínio é diferente de design de dados.
Além disso, você não deve retornar um conjunto enorme de dados quando se precisa apenas de uns poucos campos.
Eu penso que como os dados da base de dados são representados pelas nossas entidades de domínio, então o resultado da base deve ser o objeto entidade. Quando ele é retornado para a camada de aplicação (um service por exemplo) então o objeto entidade deve ser mapeado para um Dto, que por sua vez será retornado para a controller.
Читать полностью…Assim como você pode retornar só uma string (“Nome” do Produto, por exemplo)
Читать полностью…Fiz um frontend inteiro (nextjs) só com cursor, já posso atualizar meu CV pra fullstack? 😅
Читать полностью…Pessoal, boa tarde. Uma dúvida que para alguns podem ser básica, mas tô me encucando aqui…
O meu repositório pode retornar um DTO ou ele deve retornar Entities do banco de dados? Por exemplo, se eu quiser uma consulta de informações resumidas da minha tabela de Produtos, e pra isso eu tenho um DTO simplificado com poucas informações dos meus produtos, o meu ProductRepository já pode retornar somente as informações que o meu DTO quer? Ou o certo seria retornar a entidade Product e eu fazer a conversão em outra camada?
o copilot é mais sugestivo, o cursor com claude é mais abusado kkkk ele sai fazendo as coisas q tu pediu, só q as vezes faz mais doq vc queria kkk. Acaba dando trabalho pra arrumar. A galera mais conservadora acredito q prefira o copilot. Mas quero dar uma abusada da IA pra ver até onde ela vai.
Читать полностью…