🔥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
Eu só queria dar clareza sobre o que estávamos falando.
Formato
Validade (conformidade)
Existência (fidelidade)
Para que ele não fizesse tivesse todas as informações para não fazer besteira, ou pior, assumir de antemão conceitos equivocados.
Mas aí já teria que usar uma API externa pra garantir 🤡
Читать полностью…e essa implementação ainda não garante que seja um CPF existente na Receita Federal
Читать полностью…fiz um exemplo no Replit de como, mais ou menos, está implementada minha classe
(p.s.:não é o mesmo código e a parte de validação eu pedi pra LLM gerar, então não tenho certeza de que está 100% correto)
(p.s.2: eu costumo habilitar o <Nullable> em meus projetos, mas não funciona no Replit)
TenshiZer0/ExemploCpf?v=1" rel="nofollow">https://replit.com/@TenshiZer0/ExemploCpf?v=1
Boa lembrança, mas lembra que número de CPF formatado não é o suficiente para ser válido.
Um CPF ou CNPJ para ser válido precisa que o digito seja verificado.
E isso ainda não tem relação com ser existente ou real, ainda estamos falando apenas sobre ser um número válido.
Quem vem do javascript ou PHP está acostumado a fazer tudo em um projeto só, separando tudo em pastas.
Aqui temos mais uma camada de separação, os projetos.
Cuidado para não confundir lazy load nas entidades e propriedades com uma conexão criada com lazy.
Читать полностью…<input type="text" id="cpf" name="Cpf" class="form-control" data-mask="000.000.000-00">
Читать полностью…Primeira vez mexendo com essa tecnologia e estou bem perdido kkk
Читать полностью…É que ele falou manualmente, então quis dar um exemplo sem libs.
Читать полностью…Tem um detalhe que eu acho importante: quando você implementa o UnitOfWork, qualquer ação de qualquer repo pode ser chamada em qualquer momento e em qualquer ordem. Assim, o único ponto comum é o construtor: seja do DbSession (exemplo do Balta) seja do UnitOfWork (exemplo do Tim)
Читать полностью…O Balta tem esse exemplo aqui e ele inicia a conexão no construtor também.
https://balta.io/blog/dapper-unit-of-work-repository-pattern
E tem também esse repo em que a conexão é aberta no construtor do Unit (o que teria o mesmo “problema”). Esse repo tem vários forks e várias estrelas (embora nunca tenha visto ele antes).
https://github.com/timschreiber/DapperUnitOfWork/blob/master/DapperUnitOfWork/UnitOfWork.cs
Honestamente eu não tenho preferência em abrir a conexão 50 ms antes ou depois e não sei se vai fazer alguma diferença.
Eu acho que o colega só quer mesmo para estudos e formato válido dos nossos amigos cpf e cnpj
Читать полностью…a vantagem que eu vejo em fazer dessa forma é que, além de ficar centralizada a validação do CPF, também garante que, em qualquer parte do meu projeto, se eu receber um objeto Cpf, ele vai sempre ser um Cpf válido
Читать полностью…Primitive obsession.
Aqui pra empresa, eu criei uma lib de tipos que acabam indo em todos os projetos. CPF e CNPJ são dois desses tipos. Nossos modelos não tem um string Cpf ou um string Cnpj, mas sim um
public Cpf Cpf { get; }
public Cnpj Cnpj { get; }
IParsable
, então é só fazer Cnpj.TryParse, que ele faz a verificação inclusive dos dígitos
Читать полностью…
Se for no model e só colocar uma expressão regular de cpf
[RegularExpression("xyz")]
public string Cpf { get; set; }
Fica em outra classe, que por sua vez não deveria estar nesse projeto.
Читать полностью…Se você respeitar o escopo (scoped da injeção de dependências do aspnet) para fazer o lazy, não há impacto.
Читать полностью…Boa tarde pessoal tudo joia? eu estou fazendo um projeto com ASP.NET Core MVC, um verificador de CPF coisa simples, e eu queria saber em qual arquivo que eu devo colocar o algoritmo de cálculo para fazer a verificação e retornar a resposta para o usuário, se é no index.cshtml, ou no program.cs
Читать полностью…Mapperly faz toda a geração do mapeamento com source generators
Читать полностью…Interessante. Acho que a ideia é mesmo manter a consistência. Tentei trazer a ideia e esse padrão para a aplicação, mas estão achando um absurdo isso. O tech lead disse que eu estou trazendo muita complexidade.
Читать полностью…Da sim. Como eu disse, não curti a UX.
Poderia ser uma única visão já o padrão.
Fala galera, surgiu aqui uma questão:
Estamos trabalhando com o Dapper e resolvi implementar o padrão UoW (AddScoped), onde no construtor a factory cria e abre a conexão. No entanto, um outro dev viu um absurdo nisso, pois neste caso conexão é aberta logo quando a requisição é enviada para a aplicação.
Ele quer que a conexão seja aberta exatamente no momento de fazer a consulta na base (na linha acima do QueryAsync()). Parece que o lazy loading resolveria isto, mas pode ter outros impactos. A questão é: saber onde é o momento exato para abrir a conexão em uma webapi muito simples, não é overthinking?