Este artículo se centra en preguntas prácticas de .NET y Azure API que evalúan tu capacidad para diseñar, integrar y optimizar sistemas empresariales.
1. ¿Cómo usar LINQ para agrupar una lista de números y obtener cada número con su frecuencia? Aplica GroupBy para agrupar y Select para proyectar la frecuencia. Ejemplo conceptual: numbers.GroupBy(n => n).Select(g => new { Numero = g.Key, Frecuencia = g.Count() }).ToList(). Es un caso clásico de agregación con LINQ, conciso y potente.
2. ¿En qué se parecen o difieren inyección de dependencias y principio de inversión de dependencias? ¿Cómo se implementan? DIP establece que los módulos de alto nivel deben depender de abstracciones; DI es el patrón que materializa DIP inyectando dependencias en las clases. En ASP.NET Core se registra, por ejemplo, un servicio con services.AddTransient<IMyService, MyService>() para lograr bajo acoplamiento y testabilidad.
3. ¿Cómo gestionar múltiples implementaciones de una interfaz en Program.cs? Registra varias implementaciones y resuélvelas por contexto, configuración o factoría. Registro típico: services.AddTransient<IMyService, MyService1>() y services.AddTransient<IMyService, MyService2>(). Puedes inyectar IEnumerable<IMyService> o utilizar un patrón factory para decidir en tiempo de ejecución.
4. ¿Cómo establecer conectividad a base de datos en Entity Framework? Configura el DbContext en el contenedor con UseSqlServer y una cadena de conexión desde la configuración. En aplicaciones pequeñas, OnConfiguring en el DbContext es suficiente.
5. Diferencias entre DB First y Code First en EF DB First: partes de una base existente y generas modelos. Code First: partes de clases C# y EF crea el esquema. DB First es útil con sistemas legados; Code First es ideal para proyectos greenfield con control total de versiones mediante migraciones.
6. ¿Cómo crear una nueva tabla con Code First en EF? Define la entidad y agrega su DbSet en el DbContext. Luego crea una migración y actualiza la base con comandos del estilo dotnet ef migrations add AddMyNewTable y dotnet ef database update.
7. Tipos de retorno en controladores API y diferencias IActionResult en ASP.NET Core es flexible y admite múltiples tipos de respuesta e integración con filtros y middleware. IHttpActionResult pertenece a ASP.NET Web API clásico. En APIs modernas utiliza IActionResult o ActionResult<T> para mejores contratos y soporte de serialización.
8. ¿Es lo mismo concurrencia que programación asíncrona? No. La concurrencia trata de múltiples tareas avanzando al mismo tiempo; lo asíncrono busca no bloquear hilos durante operaciones de E/S. Async mejora la escalabilidad; la concurrencia aumenta el rendimiento efectivo y el aprovechamiento de recursos.
9. ¿Qué mecanismos de caché has usado? Memoria en proceso para acceso ultrarrápido por instancia; caché distribuida como Redis para escenarios escalables; y output caching para respuestas estáticas o muy repetitivas. En ASP.NET Core se añade con AddMemoryCache y se gestiona con Set y TryGetValue.
10. ¿Cómo implementar expiración deslizante en caché? Configura MemoryCacheEntryOptions con SlidingExpiration y guarda el elemento con esas opciones. El temporizador de expiración se reinicia en cada acceso, ideal para datos consultados con frecuencia.
11. Diferencias entre expiración deslizante y absoluta Deslizante se reinicia con cada lectura; absoluta vence tras un tiempo fijo sin importar los accesos. Usa deslizante para datos calientes y absoluta para ciclos de vida predecibles y limpieza determinista.
12. ¿Cómo pasar un arreglo de registros desde EF a la base? Utiliza AddRange en el DbSet y luego SaveChanges. Es eficiente para inserciones en bloque y reduce viajes a la base.
13. ¿Qué son las tablas definidas en relación con los procedimientos almacenados? Son tablas creadas explícitamente en el esquema que los procedimientos consumen para entradas o salidas. Junto a parámetros con valores de tabla permiten pasar conjuntos de filas a procedimientos de manera eficiente.
14. ¿Qué es clean architecture? Una separación por capas: Dominio con la lógica de negocio, Aplicación con casos de uso y orquestación, e Infraestructura con persistencia, APIs y servicios externos. Favorece testabilidad, escalabilidad y mantenibilidad.
15. ¿Qué son Eager, Lazy y Explicit Loading en EF Core? Eager carga relaciones inmediatamente con Include, por ejemplo Include(o => o.Customer). Lazy carga al acceder a la navegación, útil si el contexto sigue vivo y la propiedad es virtual. Explicit carga a demanda con context.Entry(entidad).Reference o Collection y luego Load. Elige según tus patrones de acceso y rendimiento.
En Q2BSTUDIO impulsamos soluciones .NET y Azure de nivel empresarial, combinando software a medida, aplicaciones a medida, inteligencia artificial y ciberseguridad con arquitecturas limpias, CI CD y observabilidad. Integramos microservicios, mensajería y API Management, y desplegamos en entornos híbridos con servicios cloud aws y azure. Si quieres modernizar tus APIs o migrar a la nube, conoce nuestros servicios cloud en AWS y Azure y cómo optimizamos rendimiento, seguridad y costes.
Nuestro equipo domina servicios inteligencia de negocio y power bi, además de ia para empresas con agentes IA que automatizan flujos complejos y extraen valor de los datos. Si necesitas un partner para aplicaciones a medida y software a medida integradas con tus APIs y data lake, visita nuestra propuesta de desarrollo multiplataforma. Potenciamos la innovación con inteligencia artificial y prácticas de ciberseguridad avanzadas para proteger cada capa de tu solución.