Fundamentos de .NET y C# Flashcards
¿Cuál es la diferencia entre una clase abstracta y una interfaz en C#?
Una clase abstracta puede tener implementación, mientras que una interfaz solo define la firma de los métodos. Las clases pueden heredar solo una clase abstracta pero múltiples interfaces.
¿Qué es el CLR y cuál es su función en .NET?
El CLR (Common Language Runtime) es el motor de ejecución de .NET que gestiona la ejecución de programas .NET, manejo de memoria, seguridad, etc.
¿Qué significa que C# sea un lenguaje “managed”?
Significa que el entorno de ejecución (CLR) gestiona la memoria, seguridad y otros aspectos del ciclo de vida del objeto.
¿Qué es un delegate y para qué se usa?
Es un tipo que representa referencias a métodos con una firma específica, comúnmente usado en eventos y callbacks
¿Qué es el Garbage Collector (GC) y cómo ayuda en .NET?
Es el recolector de basura de .NET, que libera memoria automáticamente eliminando objetos que ya no se usan.
¿Cuál es la diferencia entre SqlDataReader y DataSet?
SqlDataReader es más rápido y se usa para lecturas hacia adelante solamente. DataSet es más pesado, pero permite trabajar con múltiples tablas y relaciones en memoria.
¿Qué es una conexión con using y por qué se recomienda?
using asegura que la conexión se cierre automáticamente al salir del bloque, lo cual previene fugas de recursos.
¿Cómo manejas las inyecciones SQL en ADO.NET?
Usando parámetros (SqlParameter) para evitar concatenar cadenas con los valores directamente.
¿Qué es un procedimiento almacenado y cómo se ejecuta desde ADO.NET?
Un procedimiento almacenado es un script SQL almacenado en la base de datos; se ejecuta desde ADO.NET usando SqlCommand.CommandType = CommandType.StoredProcedure.
¿Cuál es la utilidad del objeto SqlParameter?
Para pasar parámetros a los procedimientos almacenados o consultas parametrizadas de forma segura.
¿Qué patrón de diseño usas para separar lógica de negocios y acceso a datos?
Se recomienda el patrón Repository junto con Unit of Work, para separar lógica de negocios del acceso a datos.
¿Qué es el patrón Repository?
Un patrón que abstrae el acceso a la base de datos, permitiendo trabajar con entidades sin exponer directamente la lógica de acceso a datos.
¿Qué es una excepción no controlada? ¿Cómo la manejarías?
Una excepción no controlada es aquella que no se maneja en el código. Se debe capturar con try-catch o manejadores globales.
¿Qué significa tener una arquitectura en capas?
Significa separar responsabilidades en capas como presentación, lógica de negocios y acceso a datos.
¿Cuál es la diferencia entre ASP.NET Web Forms y ASP.NET MVC?
Web Forms usa eventos tipo WinForms; MVC separa vista, controlador y modelo. MVC tiene más control sobre el HTML.
¿Qué es el ciclo de vida de una página en ASP.NET?
Son las etapas por las que pasa una página web ASP.NET, como Init, Load, PreRender y Unload.
¿Qué métodos HTTP conoces y cómo los usarías en una API?
GET (obtener), POST (crear), PUT (actualizar), DELETE (eliminar). Se usan en APIs para operaciones CRUD
¿Qué es el ViewState?
Es una técnica para preservar el estado de los controles entre peticiones (postbacks) en Web Forms
¿Cómo protegerías una aplicación web en .NET contra ataques XSS?
Validando y codificando la entrada del usuario antes de mostrarla en el HTML.