P
prepair.app
Começar entrevista →
EnglishУкраїнськаРусскийDeutsch
🟣

Middle .NET Backend DeveloperPerguntas de entrevista .NET

Middle · 2–4 anos de experiência

As entrevistas de .NET transitam entre C# como linguagem e o runtime por trás dele — o CLR, o GC, como o async/await realmente funciona — antes de chegar ao ASP.NET Core e ao Entity Framework Core, onde vivem a maioria das perguntas práticas. Aqui estão as perguntas mais frequentes, cada uma com uma resposta modelo. Middle: compreensão mais profunda, otimização e situações reais de trabalho.

Experimente — sem necessidade de conta
Preparando sua pergunta…

Temas para se preparar

Tipos do C#, LINQ e nullable reference types
Async/await e o modelo Task
CLR, JIT e garbage collection
ASP.NET Core: middleware e dependency injection
Entity Framework Core e performance de consultas
Testes com xUnit/Moq, Docker e deploy em nuvem

5 perguntas de nível Middle com respostas

1

O que acontece de fato quando você faz `await` num `Task`?

Resposta

O compilador reescreve o método como uma máquina de estados: o código antes do await roda de forma síncrona, e se a tarefa ainda não terminou, o método devolve o controle para quem chamou imediatamente e libera a thread em vez de bloqueá-la. A continuação é retomada quando a tarefa termina, por padrão no SynchronizationContext capturado, por isso código de biblioteca chama ConfigureAwait(false) para evitar deadlocks e trocas de contexto desnecessárias.

2

Como as gerações do GC se relacionam com o padrão `IDisposable`?

Resposta

O CLR promove objetos sobreviventes da geração 0 para 1, depois para 2, coletando a gen 0 de forma barata e frequente, e a gen 2 raramente, mas de forma cara. O GC só libera memória gerenciada — recursos não gerenciados como handles de arquivo ou conexões de banco precisam de limpeza explícita, para o que existem IDisposable e um finalizador como rede de segurança: Dispose() os libera de forma determinística, e o finalizador cobre o caso em que quem chamou esqueceu de invocá-lo.

3

Como o change tracking do EF Core causa problemas de performance, e como evitá-los?

Resposta

Por padrão, toda entidade carregada por um DbContext é rastreada — o EF Core mantém um snapshot para detectar o que mudou quando SaveChanges() roda. Para uma lista somente leitura isso é puro overhead, então caminhos de leitura devem usar .AsNoTracking(). O outro custo clássico é o problema N+1 — acessar uma propriedade de navegação dentro de um loop sem Include() dispara uma consulta por linha.

4

Quando você escolheria Minimal APIs em vez de controllers MVC no ASP.NET Core?

Resposta

Minimal APIs pulam a cerimônia dos controllers — uma única lambda app.MapGet(...) com parâmetros vinculados da rota, query ou body —, o que basta para um serviço pequeno e inicia mais rápido com menos overhead de reflection. Os controllers valem a pena quando você precisa de convenções de model binding, validação com [ApiController], filtros, ou uma superfície grande onde agrupar ações por recurso mantém o código navegável.

5

Como você faz teste unitário de uma classe que depende de outros serviços em .NET?

Resposta

O xUnit é o framework padrão — [Fact] para um caso único, [Theory] com [InlineData] para casos parametrizados. As dependências são substituídas por mocks do Moq: Mock<IRepository> permite configurar valores de retorno com .Setup() e verificar chamadas com .Verify(), para que o teste exercite a classe isoladamente em vez de um banco real. A armadilha é o excesso de mocks — um teste que só verifica se cinco colaboradores foram chamados em ordem está testando a configuração dos mocks, não o comportamento.

🦎

Só ler as respostas não basta

Numa entrevista de verdade você fala sob pressão. O Cam faz essas mesmas perguntas, avalia cada resposta e mostra exatamente o que melhorar.

Praticar entrevista de Middle .NET Backend Developer →
Grátis · 3 entrevistas por mês

Outros níveis — .NET Backend Developer

Junior .NET Backend DeveloperSenior .NET Backend DeveloperTodas as perguntas de .NET Backend Developer

Outras especializações

🔍Middle QA Manual🤖Middle QA AutomationMiddle Java Backend🐍Middle Python Backend🐘Middle PHP Backend🦫Middle Go Backend🟢Middle Node.js Backend💎Middle Ruby on Rails🔷Middle C++🟨Middle JavaScript