- Видео 22
- Просмотров 18 137
Wilson Neto
Бразилия
Добавлен 15 янв 2019
Vamos falar sobre Engenharia de Software!
🚀 Senior Software Engineer
🌐 Especialista em C# e .NET | Microservices
🎓 MBA em Arquitetura de Software e Soluções
📍 São Paulo, Brasil
🚀 Senior Software Engineer
🌐 Especialista em C# e .NET | Microservices
🎓 MBA em Arquitetura de Software e Soluções
📍 São Paulo, Brasil
Resiliência em Integrações HTTP com .Net
Vamos falar sobre resiliência em integrações HTTP com .Net!
Link do código no github:
github.com/wilsonneto-dev/demo-resilient-http-clients
Neste vídeo vamos abordar as novas features do .Net para deixar seus serviços mais resilientes e tolerantes a falhas.
Vamos abordar:
- Retry
- Timeout
- Circuit Break
- Concurrence Limiter
- Rate Limiter
- Hedging
Link do artigo da Microsoft:
learn.microsoft.com/en-us/dotnet/core/resilience/http-resilience?tabs=dotnet-cli
🔔 Não esqueça de se inscrever no canal e ativar as notificações para mais vídeos como este!
👍 Gostou do vídeo? Deixe seu like e compartilhe com seus amigos!
📝 Tem dúvidas ou sugestões? Deixe seu comentário abaixo, adoramos ouvir sua opinião!
Segue l...
Link do código no github:
github.com/wilsonneto-dev/demo-resilient-http-clients
Neste vídeo vamos abordar as novas features do .Net para deixar seus serviços mais resilientes e tolerantes a falhas.
Vamos abordar:
- Retry
- Timeout
- Circuit Break
- Concurrence Limiter
- Rate Limiter
- Hedging
Link do artigo da Microsoft:
learn.microsoft.com/en-us/dotnet/core/resilience/http-resilience?tabs=dotnet-cli
🔔 Não esqueça de se inscrever no canal e ativar as notificações para mais vídeos como este!
👍 Gostou do vídeo? Deixe seu like e compartilhe com seus amigos!
📝 Tem dúvidas ou sugestões? Deixe seu comentário abaixo, adoramos ouvir sua opinião!
Segue l...
Просмотров: 331
Видео
Paginação Eficiente: Offset vs Cursor pagination
Просмотров 4063 месяца назад
A paginação é crucial para lidar com grandes conjuntos de dados de forma eficiente e melhorar a experiência do usuário em aplicações web. Existem duas abordagens principais para paginação: baseada em offset e baseada em cursor. Cada uma tem suas vantagens e desvantagens, e escolher a estratégia correta pode ter um grande impacto no desempenho da sua aplicação. Link do projeto mostrado no github...
A Melhor Maneira de Usar o HttpClient em .Net - HttpClientFactory
Просмотров 6414 месяца назад
Usar HTTP factory fornece uma maneira centralizada de gerenciar a criação e configuração de clientes HTTP. Essa abordagem promove uma melhor gestão de recursos, evitando grandes problemas como socket starvation, através da reutilização de instâncias de clientes HTTP. Também simplifica a injeção de dependências, permitindo um código mais fácil de manter e testar. Além disso, o HTTP factory supor...
Options Pattern - Trabalhando com configurações em .Net
Просмотров 2804 месяца назад
O Options Pattern no .NET é uma prática recomendada para gerenciar configurações de maneira organizada e coesa. Ele permite que as configurações sejam centralizadas em classes específicas, facilitando a manutenção e a atualização do código, além de suportar diferentes ambientes de execução. Sua importância reside na clareza que proporciona ao separar a lógica de configuração do código de negóci...
User Secrets - Dica de segurança para seu projeto .Net
Просмотров 7014 месяца назад
Usar user-secrets no .NET é importante para segurança porque permite armazenar informações sensíveis, como chaves de API, strings de conexão de banco de dados e outras credenciais, fora do código-fonte. Isso evita que esses dados críticos sejam expostos em repositórios de controle de versão ou distribuídos inadvertidamente com o software. O user-secrets armazena esses dados de forma local e cri...
Primary Constructors - Novidades do C# 12
Просмотров 20210 месяцев назад
Descubra as novidades mais empolgantes do C# 12! Neste video falaremos sobre os Primary Constructors e como eles podem impactar e melhorar nosso dia a dia. Nos proximos videos, exploramos outras atualizações significativas, como Collection Expressions, ref readonly parameters, e muito mais, siga o canal para ficar por dentro. Espero que você goste deste vídeo! Não se esqueça de deixar seus come...
Requests HTTP direto no Visual Studio com novo suporte a arquivos .http
Просмотров 997Год назад
Neste vídeo, mergulhamos no inovador suporte a arquivos .http no Visual Studio. Este é um recurso poderoso que pode tornar nosso processo de desenvolvimento de APIs mais rápido e eficiente do que nunca! O que abordaremos neste vídeo: ✅ Introdução aos arquivos .http/.rest ✅ Fazendo requests direto pelo Visual Studio O suporte a arquivos .http oferece uma maneira intuitiva e eficiente de realizar...
File Scoped modifier - Novidades do C#
Просмотров 200Год назад
Você já conhece o modificador "file" do C# 11? Neste vídeo, eu explico o que é e como usar esse recurso com exemplos práticos e detalhados. Essa é uma das novidades do C# 11 que você não pode perder! O que abordaremos neste vídeo: ✅ O que é o file scoped modifier ✅ Exemplos práticos Espero que goste! E deixe seu comentário de sugestão para os próximos vídeos =) Segue nas outras redes sociais ta...
Route Groups e Tags com Minimal APIs no .Net - Parte IV
Просмотров 242Год назад
Você já está usando Minimal APIs em seu dia a dia? Este é o quarto vídeo de uma série de vídeos onde vou trazer tudo o que você precisa saber para dominar minimal APIs. O que abordamos neste vídeo: - ✅ Route Groups - ✅ Tags Espero que goste! E deixe seu comentário de sugestão para os próximos vídeos =) Repositório no github: github.com/wilsonneto-dev/RUclips-MinTodo-MinimalAPIs-Curso Segue nas ...
Dev Tunnels no Visual Studio - .Net
Просмотров 431Год назад
Já conhece o Dev Tunnels? Nova feature do Visual Studio que permite expor seu projeto rodando em localhost de maneira pública na internet, o que facilita muito a nossa vide quando queremos feedback de algum stakeholder ou do próprio time em um ambiente remoto. E não esqueça de deixar seu feedback nos comentários para futuras atualizações em Visual Studio 2022. Espero que goste! E deixe seu come...
Required - Novidades do C# 11
Просмотров 329Год назад
Neste vídeo exploraremos o novo modificador 'required', novidade do C# 11! Veremos como ele pode melhorar a inicialização de campos e propriedades em classes e structs. Entenda como usar e garantir o comportamento correto, como aplicar a propriedades e campos, e como lidar com questões de visibilidade e herança. Falaremos também como o atributo SetsRequiredMembers funciona em conjunto com const...
Criando uma API com Minimal APIs - To-Do API - Minimal APIs no .Net
Просмотров 197Год назад
Chegamos ao terceiro vídeo da série sobre Minimal APIs, neste vídeo crio uma API de To-dos simples, mas que serve para demonstrar e compilar os principais pontos que vimos até aqui! Ainda virá muito mais pela frente: validações, autenticação, filters, middlewares, tratamento de erros, organização das estruturas e muito mais. Se inscreva para acompanhar =) Espero que gostem! Link da Playlist com...
Injetando Open Generics - Dependency Injection no .Net
Просмотров 340Год назад
Injetando Open Generics - Dependency Injection no .Net Você deve usar bastante no dia a dia a injeção do ILogger em suas classes, correto? Você sabe como injetar suas dependências com generics da mesma maneira? Você sabe o que são os Open Generics e como injetá-los? Neste vídeo vou falar isso e também vamos falar um pouco das vantagens que trabalhar com injeção de Open Generics pode nos trazer....
Ciclos de vida de Dependências - Dependency Injection no .Net
Просмотров 512Год назад
Você sabe quais são os tipos de ciclos de vida de uma dependência no .Net? Sabe a diferença entre estes tipos de ciclos vida? Caso tenha respondido não para alguma destas questões, neste vídeo eu explico quais são e quais as diferenças de maneira prática e com exemplos. Espero que goste! E deixe seu comentário de sugestão para os próximos vídeos =) Segue nas outras redes sociais também: linktr....
Results, TypedResults, OpenAPI e named endpoints com Minimal APIs no .Net
Просмотров 296Год назад
Você já está usando Minimal APIs em seu dia a dia? Este é o segundo vídeo de uma série de vídeos onde vou trazer tudo o que você precisa saber para dominar minimal APIs. O que abordamos neste vídeo: - ✅ Results / Response das Minimal APIs - ✅ Documentação Open API (produces, TypedResults, Results) - ✅ Endpoints Nomeados Espero que goste! E deixe seu comentário de sugestão para os próximos vídeo...
Introdução, Mapeamento de Rotas, Bindings e Injeção de Dependência com Minimal APIs no .Net
Просмотров 712Год назад
Introdução, Mapeamento de Rotas, Bindings e Injeção de Dependência com Minimal APIs no .Net
Packages no .Net - Criando e Publicando
Просмотров 585Год назад
Packages no .Net - Criando e Publicando
Você faz benchmarks? BenchmarkDotNet - C# / .Net
Просмотров 1,8 тыс.Год назад
Você faz benchmarks? BenchmarkDotNet - C# / .Net
Você conhece testes de mutação? Usando Stryker-Mutator com .Net
Просмотров 770Год назад
Você conhece testes de mutação? Usando Stryker-Mutator com .Net
Árvore Binária - Maneiras de se percorrer
Просмотров 783Год назад
Árvore Binária - Maneiras de se percorrer
Como gerar Code Coverage no Visual Studio
Просмотров 5 тыс.2 года назад
Como gerar Code Coverage no Visual Studio
Obrigado pela explicação.
e ae man, e se meu id for um guid por ex. teria como fazer também ?
Opa, grande Alexandre! Sim, teria sim, o que vai guiar a paginação por ponteiro é como você está ordenando para mostrar, se seus Ids são GUIDs/UUID ou algum tipo de id não sequencial, provavelmente sua query vai usar alguma outra informação para ordenar a lista para o usuário, como por exemplo a data de criação de uma publicação, sendo assim seu "cursor" acabaria por ser um objeto um pouco mais espertinho, ele carregaria o o último id e ultima data, e na ordenação você teria algo como: Where PosterAt >= @CursorData and id > @CursorId. Espero que ajude! Abração man!
Opa Wilson, tenho o seu curso de salvar contatos do WhatsApp pelo navegador, porém o WhatsApp web foi atualizado; e não tá dando certo o script, consegue me ajudar ou nos ajudar irmão?
Opa, muito obrigado por avisar gustavo, vi um email sobre ontem, ja estou trabalhando na atualizacao. Ate o final do dia de sabado estara atualizado, o whatsapp acabou alterando algumas configuracoes e quebrou algumas partes do script
@@wilsonneto-dev Top top
@@wilsonneto-dev Atualiza o script de novo pra nós. Parou de funcionar dnv. Salva a gente, fera!
Gostaria de saber como posso entrar em contato com voce sem ser pelo Linkedin.
Bom dia Vinicius, tudo bom? Sendo sincero os melhores canais para entrar em contato sao de fato por aqui ou pelo linkeding :) Chama no linkedin por favor. Abracos!
@@wilsonneto-dev o motivo do meu contato é bem simples. Aquele produto que você vende na hotmart com o intuito de salvar contatos em massa atraves do whatsapp, não está funcionando mais o script. Eu usei aquele seu script por 3 anos e ele não está funcionando mais.
Excelente o vídeo. Parabéns por não editar e, dessa forma, evitar nos enganar, mesmo que sem querer, com a impressão de que tudo sempre dá certo de primeira. Isso também nos ensina sobre os possíveis problemas que podemos encontrar.
Exatamente, isosq ue quero trazer aqui, as vezes temos a falsa sensacao de que a pessoal que esta a gravar sabe tudo e tudo passa de primeira e nos sentimos mal quando o nosso trava em algum ponto, quero trazer isso mesmo, isso vai acontecer com todo mundo :) Muito obrigado pelo feedback :)
Eu não entendi como usa isso em produção
Bom dia Yuri, tudo joia? Isso, user secrets nao deve ser usado em producao de maneira alguma, feature focada em development. Em producao voce deve ter uma integracao com algum servico de Key Vault, e nao usar esta feature. Abracos!
@@wilsonneto-dev vlw
Conteúdo massa demais, parabéns man :)
Muito obrigado 😁
O áudio ficou muito baixo
Verdade, reparei apos o upload :/ Vou me atentar a este ponto nos proximos. Obrigado pelo feedback!
🤙🤙🤙
Show!!! Excelente conteúdo como sempre. Vai rolar o vídeo falando sobre a injeção de dependência com os Background Jobs?
Opa, muito obrigado pelo feedback Cleiton! :) Verdade! Já vou colocar aqui no meu backlog tanto a injeção de dependência em background services quanto as novidades como o KeyedServices. Muito obrigado! Em breve gravo e publico estes
Vídeo muito bom, esses diversos tipos de uso do HttpClient acabam nos confundindo um pouco e este vídeo conseguiu nos explicar muito bem. Parabéns pelo conteúdo!
Muito obrigado pelo feedback :)
Esse lance do Json pra Classe no Visual Studio tbm faz.
Siim sim, acabei não comentando, mas sim, algo comum que ambos fazem. Valeeu pela observacao! Abracos
Já vi esse HttpClient quebrar umas par de aplicação pq estavam usando errado.
Siim, muito comum, quando a app tem um trafego baixo isso fica escondido, mas em alta demanda da muito problema mesmo. Valeeu demais pelo comentário :)
Muito bom
muito fera!
Valeeeu :)
legal ... parabéns !!
Valeu demais! :)
Muito legal, faz um vídeo sobre o messagehadlers, bem interessante !
Fiquei curioso pra ver na prática também
Ótima sugestão! No próximo dessa série vou falar um pouco mais sobre resiliencia, ai no proximo após irei preparar um sobre message handlers sim, muito obg pela sugestao! :)
@@wilsonneto-dev valeu Wilson
Muito top! Eu comecei a usar essa cara em um projeto novo depois que vi seu repo no GitHub. Da para fazer muita coisa, inclusive eu criei alguns Data annotations para fazer validações específicas do projeto, ajuda muito, principalmente quando usamos ferramentas como KeyVault e o pessoal esquece de configurar.
Fala mestre! Siiim sim, po, ajuda demais, as validacoes ali no startup ficam sensacionais né Valeeu demais! :)
Já vou começar os refactors para aplicar o pattern. Obrigado!
Boooa hehe
👏👏👏👏
OBRIGADOOOOOOOOOOOO!
Muito bom. Copiei aqui a solução, a única coisa que fiz diferente foi definir o regex fora do método como um atributo readonly - private readonly Regex regex = new Regex(@"^([\w\.\-]+)@([\w\-]+)((\.(\w){2,3})+)$"); - Pra evitar a redefinição do mesmo objeto em um loop que não é uma boa prática e o Mean diminuiu pra 1/10.
Massa, com certeza, ali foi pelo exemplo, mas bem melhor mesmo
Vejo você nas classes do Elemar kkkk
Excelente vídeo! Era exatamente isso que estava procurando e resolveu meu problema, sem precisar utilizar a versão Enterprise. Muito obrigado :)
👏👏👏
Tem como eu colocar o JSON do corpo da requisição dentro de uma variável e ser usado na requisição?
Até o momento ainda não, mas esta evoluindo rápido, as próximas versões a promessa é que possa
Este vídeo é excelente!! eu carrego ele comigo e indico para todos que encontro! Parabéns!!!
Muito obrigado pelo feedback e indicacoes :) Fico feliz demais que tenha ajudado
Muito bom, excelente, esse video que parece ser pequeno para voce, me ajudou bastante na evolução e ate mesmo procruar mais sobre o Benchmark
Fico feliz demais pelo feedback :) Sucesso ai!
Muito bom o video parabens, porem não sei se outros tiveram esse problema, mas quando tento gerar o xml, ele da isso aqui Data collection : Unable to find a datacollector with friendly name 'Coverage'. Ja fucei em tudo e não estou achando, poderia me dar uma ajuda?
na real e esse aqui esse outro era um teste Data collection : Unable to find a datacollector with friendly name 'XPlat Code Coverage'. Data collection : Could not find data collector 'XPlat Code Coverage', se eu colocar so code coverage ele gera o arquivo mas no html ele fala que tem que pagar
@@rafaelmanfrin3256 Se puder compartilhar um repositorio no github de exemplo e com os passos para simular o problema consigo tentar ajudar sim, aqui ate verifiquei e fiz os passos do video novamente e esta funcionando, ha um botao de ajudar ali o porjeto com donations, mas nao necessariamente fala em ter de pagar. Se puder compartilhar um projeto exemplo
Vídeo excelente! Eu estava precisando avaliar algumas opções e seu vídeo me ajudou. Sucesso e vida longa!
Que bom que ajudou! Fico feliz, sucesso ai nos projetos!
Sabe o seu vídeo Como gerar Code Coverage , no sonarqube server gera um valor diferente que consigo localmente, tem como pegar o mesmo valor gerado no sonarqube server local, sem mandar para o servidor? motivação, caso o sonarqube esteja muito baixo, temos que commitar mais vezes para aumentar.
Acaba acontecendo na empresa, usando as tools ou o próprio VS acaba ficando diferente pois o Sonar analisa ligeiramente diferente, por exemplo se tem um ternario em uma linha e passamos apenas em uma branch daquela linha, o qeu mostro no video e o proprio VS mostramq ue a linha nao foi totalmente testada, ja o sonar sinaliza que passou ali. Tem estas pequenas diferencas, mas que teriam de ser sincronizadas, sei que ha algumas configuracoes possiveis de colocar para mudar a maneira do coverage. Vou fazer alguns testes nos proximos dias e em caso de sucesso gravo um video mostrrando melhor como fazer a sync entre como o sonar validar e como ali as tools validam
@@wilsonneto-dev o sync que consegui fazer é pegar as rules do sonarqube e colocar no VScode, durante a digitalização, os warning aparecem, não tem um processo de passar o código interior ou obter coverage que vai aparecer no sonarqube server. Estou seguindo seu conteúdo, assim vou acompanhando seus vídeo
Excelente vídeo, obrigado Wilson!
Eu quem agradeço o feedback! Fico feliz em ter ajudado :) Abração e sucesso ai!
Eu queria entender, no caso se eu precisar ter varios testes, não ficaria complexo tudo no program? como é feito em projeto real isso ?
Bom dia Paulo! Perdão o delay na resposta, estava off estes dias... Bom, ótima pergunta, antes porém apenas uma ressalva, benchmark não é como testes unitários que precisamos por toda parte, podemos e devemos e4scolher o que fazer benchmark, o que realmente afeta performance e está no hot path do software. Dito isto, se ficar inviável ali na program de usar separados, uma outra abordagem seria usar o switcher: BenchmarkSwitcher.FromAssembly(typeof(Program).Assembly).Run(args); Ele já reconhecerá todos daquele assembly ou dos assemblies que passar, e também abrirá para receber parametros pela cli. Mas confesso que aqui acabamos por usar um a um mesmo, visto que temos cerca de uns 10 testes de benchmark apenas. Forte abraço!
@@wilsonneto-dev obrigado pela resposta, uma outra dúvida eu posso usar o teste de benchmark em conjunto com teste unitário? Exemplo crio um decorator da class que irei testar, pego e coloco benchmark nos métodos dela e em outra classe crio os testes unitarios chamando o decorator, assim teste de forma como se fosse um teste unitário, cuspindo resultado de benchmark? O projeto ficaria como projeto de teste e não console applcation.
Muito top a explicação, deu pra entender bem o funcionamento do Record, ainda mais que estou começando, ajudou muito, vlw Wilson
Fico feliz demais pelo feedback =)
eu mesmo nao sabia disso kkkk. Vlw mesmo irmao
Opa, fico feliz de ajudar! Tmj!
Wilson, posso instalar os pack em qualquer projeto na solução?
A tool para gerar você instala globalmente na máquina. Qualquer dúvida, só mandar!
Perfeito o Video, de verdade, parabéns, gostei muito e me ajudou demais, até criei um bat para executar todos os comando de forma automatica, tendo que so informar o nome do arquivo que quero executar. Ficou perfeito.
Que massa, muito obrigado pelo feedback! Fico feliz demais que tenha ajudado e que tenha gostado =)
Parabéns pelo conteúdo !!
Muito obrigado 😊
ótimo conteúdo
Parabéns !!
Parabéns !!
Parabéns !!
Parabéns !!
Que dica foda !
Muito obrigado pelo feedback =)
Massa não conhecia, utilizo o thunderclient no VS Code...
Legal , mas nao vejo sentido e nem produtividade nessa função, postman é o que há, ou as vezes testar direto no proprio swagger
Sim, há questões de casos e preferências, é uma maneira a mais. Ter ali e conseguir fazer as request sem precisar nem mesmo sair do VS pode fazer sentido em alguns momentos.
Caraca irmão! Que confusão da phorra!!!
Fala na questão da UI? Ou do vídeo? rs Se puder explicar melhor, apenas para eu entender... Se for quanto a UI da tool, bom, ela é nova e a Microsoft está trabalhando para melhor, de pouco a pouco vai melhorando até ficar bem legal... Se for quanto ao vídeo, gostaria de entender melhor, ir melhorando para os próximos =) (Ainda aprendendo a me virar por aqui no youtube rsrs) Abração, sucesso ai!
Pra q?
Uma opção a mais, não sei se já usou o Rest Client em outras IDEs, ter ali na mesma ferramenta já tudo o que precisamos ajuda muito as vezes. Mas claro, vai de cenário, de caso...
@@wilsonneto-dev é só um alt tab
muito bom, não conhecia essa ferramenta!
Muita coisa massa chegando no VS né 🚀🚀
Muito massa! Obrigado por compartilhar
Eu quem agradeço por assistir =)