Plataforma .NET: programación, servicios y persistencia — Test de Cuerpo de Gestión de Sistemas e Informática de la Administración del Estado
Test gratuito de 30 preguntas de Cuerpo de Gestión de Sistemas e Informática de la Administración del Estado, con la explicación justificada de cada respuesta. Responde las preguntas y envía el test para ver tu resultado: no necesitas registrarte.
¿Qué componente de la plataforma .NET es responsable de la compilación Just-In-Time (JIT) del código intermedio (IL) a código nativo?
- ACommon Type System (CTS)
- BCommon Language Runtime (CLR)
- CFramework Class Library (FCL)
- DGlobal Assembly Cache (GAC)
¿Cuál de los siguientes es un tipo de valor definido en el Common Type System (CTS) de .NET?
- AString
- BArray
- CInteger
- DDelegate
En el modelo de gestión de memoria de .NET, ¿qué generación (Generation) se asigna inicialmente a los objetos recién creados?
- AGeneración 0
- BGeneración 1
- CGeneración 2
- DGeneración 3
¿Qué construcción de C# permite encapsular una referencia a un método con una firma específica, facilitando la implementación de callbacks y eventos?
- AInterface
- BDelegate
- CLambda expression
- DEvent handler
Al utilizar las palabras clave async y await en C#, ¿qué ocurre con el hilo de ejecución mientras se espera la finalización de una operación asíncrona?
- AEl hilo se bloquea hasta que la operación termine.
- BSe crea un nuevo hilo para continuar la ejecución.
- CLa operación asíncrona se ejecuta de forma síncrona en el mismo hilo.
- DEl hilo se libera y la ejecución retorna al llamador, permitiendo que el hilo realice otro trabajo.
¿Qué atributo de .NET se utiliza para marcar un método como obsoleto, permitiendo mostrar un mensaje de advertencia en tiempo de compilación?
- A[Obsolete]
- B[Serializable]
- C[Deprecated]
- D[NonSerialized]
¿Cuál es la principal ventaja de utilizar tipos genéricos (Generics) en .NET frente a utilizar tipos Object para implementar contenedores?
- APermiten herencia múltiple.
- BMejoran el rendimiento de la recolección de basura.
- CProporcionan seguridad de tipos (type safety) y evitan conversiones boxing/unboxing.
- DSimplifican la sintaxis del código.
¿Qué interfaz de .NET debe implementar una colección para permitir la enumeración de sus elementos mediante un bucle foreach?
- AIEnumerable
- BICollection
- CIList
- DIDisposable
En Windows Communication Foundation (WCF), ¿qué elemento define las operaciones que un servicio expone?
- ABinding
- BEndpoint
- CBehavior
- DContract
En ASP.NET Web API, ¿qué atributo se utiliza para especificar que un método de un controlador responde a solicitudes HTTP GET?
- A[HttpPost]
- B[HttpGet]
- C[HttpPut]
- D[HttpDelete]
¿Qué formato de serialización utiliza por defecto gRPC en .NET para la transmisión de mensajes?
- AXML
- BJSON
- CProtocol Buffers
- DBinaryFormatter
¿Qué clase de .NET Framework se utiliza como base para crear un servicio de Windows?
- AServiceBase
- BServiceProcess
- CServiceInstaller
- DServiceController
En ASP.NET Core, ¿qué interfaz se utiliza para inyectar dependencias en un controlador?
- AIContainer
- BIServiceProvider
- CIApplicationBuilder
- DNo se especifica una interfaz; se inyectan directamente a través del constructor.
¿Qué objeto de ADO.NET se utiliza para ejecutar una consulta SQL parametrizada contra una base de datos?
- ASqlConnection
- BSqlDataAdapter
- CSqlDataReader
- DSqlCommand
En Entity Framework Core, ¿qué enfoque (approach) permite generar un modelo de entidades a partir de una base de datos existente?
- ACode First
- BDatabase First
- CModel First
- DEntity First
¿Qué tipo de operación de LINQ se utiliza para filtrar elementos de una secuencia basándose en una condición?
- AWhere
- BSelect
- COrderBy
- DGroupBy
En .NET, ¿qué espacio de nombres contiene las clases para manejar transacciones distribuidas?
- ASystem.Data
- BSystem.Transactions
- CSystem.EnterpriseServices
- DSystem.Runtime.Transactions
En el contexto de inyección de dependencias, ¿qué patrón de diseño se utiliza para permitir que una clase reciba sus dependencias desde el exterior en lugar de crearlas internamente?
- ASingleton
- BFactory
- CDependency Injection
- DInversion of Control (IoC)
¿Qué patrón de diseño se implementa en .NET mediante la clase SqlConnection para gestionar conexiones a bases de datos, permitiendo reutilizar conexiones existentes?
- ASingleton
- BFactory Method
- CConnection Pool
- DRepository
¿Qué espacio de nombres de .NET proporciona clases para implementar criptografía simétrica y asimétrica?
- ASystem.Security
- BSystem.Security.Principal
- CSystem.Security.AccessControl
- DSystem.Security.Cryptography
En C#, ¿qué bloque de código se ejecuta siempre, independientemente de que se lance o no una excepción?
- Atry
- Bcatch
- Cfinally
- Dthrow
¿Qué atributo de .NET se utiliza para marcar una clase como serializable en formato binario?
- A[Serializable]
- B[DataContract]
- C[XmlSerializable]
- D[BinarySerializable]
¿Qué espacio de nombres de .NET contiene tipos que permiten inspeccionar metadatos de ensamblados y tipos en tiempo de ejecución?
- ASystem.Type
- BSystem.Reflection
- CSystem.Metadata
- DSystem.Runtime
¿Qué método de la clase Thread en .NET se utiliza para iniciar la ejecución de un hilo?
- ARun()
- BExecute()
- CStart()
- DBegin()
¿Qué espacio de nombres de .NET contiene las clases para programación paralela, como Parallel y Task?
- ASystem.Threading.Tasks
- BSystem.Threading
- CSystem.Parallel
- DSystem.Concurrent
En ASP.NET Core, ¿qué servicio se utiliza para almacenar datos en caché en la memoria del servidor?
- AIDistributedCache
- BIMemoryCache
- CICacheService
- DIResponseCache
En una aplicación .NET Core, ¿qué archivo se utiliza comúnmente para almacenar configuración en formato JSON?
- AWeb.config
- BApp.config
- Cappsettings.json
- Dconfiguration.json
¿Qué interfaz de .NET Core se utiliza para registrar mensajes de log en una aplicación?
- AILogger
- BILogging
- CILogWriter
- DILogProvider
¿Qué atributo de NUnit se utiliza para marcar un método como prueba unitaria?
- A[TestMethod]
- B[Test]
- C[Fact]
- D[TestCase]
¿Qué comando de la CLI de .NET Core se utiliza para publicar una aplicación como autocontenida (self-contained)?
- Adotnet build
- Bdotnet deploy
- Cdotnet run
- Ddotnet publish --self-contained
Soluciones y explicaciones
Ver las 30 respuestas correctas y su explicación
Esta sección revela las respuestas correctas. Te recomendamos hacer el test antes de consultarla.
-
¿Qué componente de la plataforma .NET es responsable de la compilación Just-In-Time (JIT) del código intermedio (IL) a código nativo?
Respuesta correcta: Common Language Runtime (CLR)
El Common Language Runtime (CLR) es el entorno de ejecución de .NET que gestiona la memoria, seguridad y, entre otras funciones, la compilación JIT del código IL a código nativo específico de la plataforma.
-
¿Cuál de los siguientes es un tipo de valor definido en el Common Type System (CTS) de .NET?
Respuesta correcta: Integer
El Common Type System (CTS) define dos categorías principales de tipos: tipos de valor (value types) y tipos de referencia (reference types). Entre los tipos de valor se encuentran los tipos primitivos como Int32, estructuras y enumeraciones.
-
En el modelo de gestión de memoria de .NET, ¿qué generación (Generation) se asigna inicialmente a los objetos recién creados?
Respuesta correcta: Generación 0
El recolector de basura (Garbage Collector) de .NET organiza los objetos en tres generaciones: 0, 1 y 2. Los objetos nuevos se asignan en la Generación 0, y si sobreviven a una recolección, son promovidos a la Generación 1.
-
¿Qué construcción de C# permite encapsular una referencia a un método con una firma específica, facilitando la implementación de callbacks y eventos?
Respuesta correcta: Delegate
Un delegado (delegate) en C# es un tipo que representa referencias a métodos con una firma particular. Los delegados son la base para los eventos y las expresiones lambda, pero la construcción fundamental es el delegado.
-
Al utilizar las palabras clave async y await en C#, ¿qué ocurre con el hilo de ejecución mientras se espera la finalización de una operación asíncrona?
Respuesta correcta: El hilo se libera y la ejecución retorna al llamador, permitiendo que el hilo realice otro trabajo.
El patrón async/await en C# está diseñado para operaciones asíncronas no bloqueantes. Cuando se encuentra await, el control vuelve al llamador y el hilo se libera para otras tareas, continuando la ejecución cuando la operación asíncrona finaliza.
-
¿Qué atributo de .NET se utiliza para marcar un método como obsoleto, permitiendo mostrar un mensaje de advertencia en tiempo de compilación?
Respuesta correcta: [Obsolete]
El atributo [Obsolete] se utiliza para indicar que un elemento del código está obsoleto. Puede incluir un mensaje y un parámetro para indicar si debe generarse un error o advertencia.
-
¿Cuál es la principal ventaja de utilizar tipos genéricos (Generics) en .NET frente a utilizar tipos Object para implementar contenedores?
Respuesta correcta: Proporcionan seguridad de tipos (type safety) y evitan conversiones boxing/unboxing.
Los genéricos introducidos en .NET 2.0 permiten definir tipos y métodos que trabajan con cualquier tipo, manteniendo la seguridad de tipos en tiempo de compilación y evitando operaciones de boxing y unboxing para tipos de valor.
-
¿Qué interfaz de .NET debe implementar una colección para permitir la enumeración de sus elementos mediante un bucle foreach?
Respuesta correcta: IEnumerable
La interfaz IEnumerable define el método GetEnumerator(), que permite recorrer una colección con un enumerador. El bucle foreach en C# utiliza esta interfaz para iterar sobre los elementos.
-
En Windows Communication Foundation (WCF), ¿qué elemento define las operaciones que un servicio expone?
Respuesta correcta: Contract
En WCF, el contrato (Contract) define las operaciones del servicio. Existen contratos de servicio (ServiceContract), operación (OperationContract), datos (DataContract) y mensaje (MessageContract).
-
En ASP.NET Web API, ¿qué atributo se utiliza para especificar que un método de un controlador responde a solicitudes HTTP GET?
Respuesta correcta: [HttpGet]
En ASP.NET Web API, los atributos de verbo HTTP como [HttpGet], [HttpPost], [HttpPut], etc., se utilizan para decorar métodos de controladores y asociarlos a los métodos HTTP correspondientes.
-
¿Qué formato de serialización utiliza por defecto gRPC en .NET para la transmisión de mensajes?
Respuesta correcta: Protocol Buffers
gRPC es un framework RPC de alto rendimiento que utiliza Protocol Buffers (protobuf) como formato de serialización de mensajes por defecto, proporcionando una serialización binaria eficiente.
-
¿Qué clase de .NET Framework se utiliza como base para crear un servicio de Windows?
Respuesta correcta: ServiceBase
La clase ServiceBase del espacio de nombres System.ServiceProcess proporciona la base para crear un servicio de Windows. Se hereda de ella y se sobrescriben métodos como OnStart y OnStop.
-
En ASP.NET Core, ¿qué interfaz se utiliza para inyectar dependencias en un controlador?
Respuesta correcta: No se especifica una interfaz; se inyectan directamente a través del constructor.
ASP.NET Core incluye un contenedor de dependencias integrado que permite inyectar servicios en controladores, vistas, etc., a través de sus constructores, sin requerir una interfaz específica para la inyección.
-
¿Qué objeto de ADO.NET se utiliza para ejecutar una consulta SQL parametrizada contra una base de datos?
Respuesta correcta: SqlCommand
En ADO.NET, la clase SqlCommand representa una consulta o comando SQL que se ejecuta en una base de datos. Permite agregar parámetros mediante la colección Parameters para evitar inyecciones SQL.
-
En Entity Framework Core, ¿qué enfoque (approach) permite generar un modelo de entidades a partir de una base de datos existente?
Respuesta correcta: Database First
Entity Framework Core soporta el enfoque Database First, donde se genera el modelo de entidades (clases) a partir de una base de datos existente, utilizando herramientas como Scaffold-DbContext.
-
¿Qué tipo de operación de LINQ se utiliza para filtrar elementos de una secuencia basándose en una condición?
Respuesta correcta: Where
El método de extensión Where en LINQ permite filtrar una secuencia de elementos en base a un predicado (condición lógica).
-
En .NET, ¿qué espacio de nombres contiene las clases para manejar transacciones distribuidas?
Respuesta correcta: System.Transactions
El espacio de nombres System.Transactions proporciona clases para realizar transacciones, incluyendo transacciones distribuidas mediante el Coordinador de Transacciones Distribuidas (DTC).
-
En el contexto de inyección de dependencias, ¿qué patrón de diseño se utiliza para permitir que una clase reciba sus dependencias desde el exterior en lugar de crearlas internamente?
Respuesta correcta: Inversion of Control (IoC)
La Inversión de Control (IoC) es un patrón de diseño en el que el control de las dependencias se invierte, delegando su creación y gestión a un contenedor. La inyección de dependencias es una técnica para implementar IoC.
-
¿Qué patrón de diseño se implementa en .NET mediante la clase SqlConnection para gestionar conexiones a bases de datos, permitiendo reutilizar conexiones existentes?
Respuesta correcta: Connection Pool
El patrón Connection Pool (agrupación de conexiones) es implementado por proveedores de datos de ADO.NET como SqlClient, para reutilizar conexiones a base de datos y mejorar el rendimiento.
-
¿Qué espacio de nombres de .NET proporciona clases para implementar criptografía simétrica y asimétrica?
Respuesta correcta: System.Security.Cryptography
El espacio de nombres System.Security.Cryptography contiene implementaciones de algoritmos criptográficos como AES, RSA, SHA, etc., para cifrado simétrico y asimétrico.
-
En C#, ¿qué bloque de código se ejecuta siempre, independientemente de que se lance o no una excepción?
Respuesta correcta: finally
El bloque finally en el manejo de excepciones de C# se ejecuta siempre, tanto si se produce una excepción como si no, y se utiliza para liberar recursos.
-
¿Qué atributo de .NET se utiliza para marcar una clase como serializable en formato binario?
Respuesta correcta: [Serializable]
El atributo [Serializable] se aplica a una clase para indicar que sus instancias pueden ser serializadas en formato binario mediante la clase BinaryFormatter.
-
¿Qué espacio de nombres de .NET contiene tipos que permiten inspeccionar metadatos de ensamblados y tipos en tiempo de ejecución?
Respuesta correcta: System.Reflection
El espacio de nombres System.Reflection proporciona clases como Assembly, Type, MethodInfo, etc., para realizar reflexión (reflection) y examinar metadatos de tipos y ensamblados.
-
¿Qué método de la clase Thread en .NET se utiliza para iniciar la ejecución de un hilo?
Respuesta correcta: Start()
En .NET, la clase Thread tiene un método Start() que inicia la ejecución del hilo, llamando al método que se haya asignado al delegado ThreadStart.
-
¿Qué espacio de nombres de .NET contiene las clases para programación paralela, como Parallel y Task?
Respuesta correcta: System.Threading.Tasks
El espacio de nombres System.Threading.Tasks incluye las clases Task, Parallel y otras para la programación paralela y asíncrona en .NET.
-
En ASP.NET Core, ¿qué servicio se utiliza para almacenar datos en caché en la memoria del servidor?
Respuesta correcta: IMemoryCache
En ASP.NET Core, el servicio IMemoryCache permite almacenar datos en caché en la memoria del servidor web, utilizando un diccionario en memoria.
-
En una aplicación .NET Core, ¿qué archivo se utiliza comúnmente para almacenar configuración en formato JSON?
Respuesta correcta: appsettings.json
En .NET Core y .NET 5+, el archivo appsettings.json es el archivo predeterminado para la configuración de la aplicación en formato JSON, cargado mediante el sistema de configuración.
-
¿Qué interfaz de .NET Core se utiliza para registrar mensajes de log en una aplicación?
Respuesta correcta: ILogger
La interfaz ILogger del espacio de nombres Microsoft.Extensions.Logging es la abstracción principal para realizar logging en aplicaciones .NET Core.
-
¿Qué atributo de NUnit se utiliza para marcar un método como prueba unitaria?
Respuesta correcta: [Test]
En el framework de pruebas NUnit, el atributo [Test] se utiliza para indicar que un método es una prueba unitaria.
-
¿Qué comando de la CLI de .NET Core se utiliza para publicar una aplicación como autocontenida (self-contained)?
Respuesta correcta: dotnet publish --self-contained
El comando dotnet publish con la opción --self-contained genera una aplicación autocontenida que incluye el runtime de .NET, evitando la necesidad de tenerlo instalado en el sistema destino.