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

Middle .NET Backend DeveloperPreguntas de entrevista .NET

Middle · 2–4 años de experiencia

Las entrevistas de .NET se mueven entre C# como lenguaje y el runtime que hay debajo — el CLR, el GC, cómo funciona realmente async/await — antes de llegar a ASP.NET Core y Entity Framework Core, donde viven la mayoría de las preguntas prácticas. Aquí están las preguntas más frecuentes, cada una con una respuesta modelo. Middle: comprensión más profunda, optimización y situaciones reales de trabajo.

Pruébalo — sin cuenta necesaria
Preparando tu pregunta…

Temas para prepararte

Tipos de C#, LINQ y nullable reference types
Async/await y el modelo Task
CLR, JIT y garbage collection
ASP.NET Core: middleware y dependency injection
Entity Framework Core y rendimiento de consultas
Testing con xUnit/Moq, Docker y despliegue en la nube

5 preguntas de nivel Middle con respuestas

1

¿Qué ocurre realmente cuando haces `await` sobre un `Task`?

Respuesta

El compilador reescribe el método como una máquina de estados: el código antes del await se ejecuta de forma síncrona, y si la tarea todavía no terminó, el método devuelve el control a quien lo llamó de inmediato y libera el hilo en lugar de bloquearlo. La continuación se retoma cuando la tarea termina, por defecto en el SynchronizationContext capturado, por eso el código de librería llama a ConfigureAwait(false) para evitar deadlocks y cambios de contexto innecesarios.

2

¿Cómo se relacionan las generaciones del GC con el patrón `IDisposable`?

Respuesta

El CLR promueve los objetos que sobreviven de la generación 0 a la 1, luego a la 2, recolectando gen 0 de forma barata y frecuente, y gen 2 rara vez pero de forma costosa. El GC solo libera memoria administrada — los recursos no administrados como handles de archivo o conexiones a base de datos necesitan limpieza explícita, para lo cual existen IDisposable y un finalizador como red de seguridad: Dispose() los libera de forma determinista, y el finalizador atrapa el caso en que quien llama olvidó invocarlo.

3

¿Cómo causa problemas de rendimiento el change tracking de EF Core, y cómo se evitan?

Respuesta

Por defecto, cada entidad cargada a través de un DbContext se rastrea — EF Core guarda una instantánea para detectar qué cambió cuando se llama a SaveChanges(). Para una lista de solo lectura eso es pura sobrecarga, así que las rutas de lectura deberían usar .AsNoTracking(). El otro costo clásico es el problema N+1 — acceder a una propiedad de navegación dentro de un bucle sin Include() dispara una consulta por fila.

4

¿Cuándo elegirías Minimal APIs en lugar de controladores MVC en ASP.NET Core?

Respuesta

Minimal APIs se saltan la ceremonia de los controladores — una sola lambda app.MapGet(...) con parámetros vinculados desde la ruta, el query o el body —, lo cual basta para un servicio pequeño y arranca más rápido con menos sobrecarga de reflexión. Los controladores se ganan su peso cuando necesitas convenciones de model binding, validación con [ApiController], filtros, o una superficie grande donde agrupar acciones por recurso mantiene el código navegable.

5

¿Cómo haces unit testing de una clase que depende de otros servicios en .NET?

Respuesta

xUnit es el framework por defecto — [Fact] para un caso único, [Theory] con [InlineData] para casos parametrizados. Las dependencias se reemplazan con mocks de Moq: Mock<IRepository> te permite configurar valores de retorno con .Setup() y verificar llamadas con .Verify(), así el test ejercita la clase de forma aislada en lugar de tocar una base de datos real. La trampa es el exceso de mocks — un test que solo verifica que se llamó a cinco colaboradores en orden está probando la configuración de los mocks, no el comportamiento.

🦎

Leer respuestas no es suficiente

En una entrevista real hablas bajo presión. Cam hace estas mismas preguntas, evalúa cada respuesta y muestra exactamente qué mejorar.

Practicar entrevista de Middle .NET Backend Developer →
Gratis · 3 entrevistas al mes

Otros niveles — .NET Backend Developer

Junior .NET Backend DeveloperSenior .NET Backend DeveloperTodas las preguntas de .NET Backend Developer

Otras especializaciones

🔍Middle Manual QA🤖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