.NET Flashcards

1
Q

Lenguajes que soporta .NET

A
  • c#
  • f#
  • vb.net
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Qué es es el CLR

A

Es como la JRE de java

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Estructura de plataforma .NET

A
  • Framework Class Library –> Clases del framework estandards.
  • WinForms –> libreria para apps de escritorio
  • ASP.NET –> libreria para apps web
  • ADO.NET –> Accesos y manejo de bbdd (como un jdbc)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Qué es la FCL (Framework Class Library)

A

Es la colección de librerías básicas en .net algo así como la JSE de java

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Paquetes, ficheros compilados y codigo fuente

A
  • Espacio de nombres (name space) –> como paquetes en java
  • Ensambaldo (assembly) –> Ficheros compilados CIL en formato .dll (como bytecode y .class)
  • Codigo fuente –> ficheros .cs (como los .java)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

¿Qué significado tienen las versiones de .NET?

A
  • Cada versión se van añadiendo librerias nuevas
  • OJO!!! el CLR no cambia con cada versión. vamos de la 2 a la 4, en la que estamos actualmente.
  • En un principio .NET Framework era un producto propietario. 1.0 –> 4.8.1
  • Despues Ximian (Miguel Icaza) –> Xamarin. Se va por la tanjente al margen de Microsoft.
    • MONO (motor de .NET en Linux opensource y multiplataforma)
  • .NET Core (motor de ejecución .NET opensource multiplataforma). Para hacerle sombra a MONO
  • .NET (a secas, es una convergencia entre la versión propietaria y la versión opensource)
    • .NET 5 –> .NET 8 (.NET 9/10 están en beta)
  • Y al final .NET Standard –> 1.0 - 2.1 Intento de estandarizar el API, las clases base
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

.NET Framework / .Net Core / Xamarin

A
  • Clases base
    • .NET BCL –> (Basic Class Library)
    • CoreFX –>
    • Xamarin BCL –> (Basic Class Library)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

.Net Standad

A

Despues de tener tres versiones vamos al Standard y unificamos el BCL en .NET Standard BCL

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

¿Qué es Dotnet?

A

Herramienta de línea de comandos .NET (CLI - Common Language Interface)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

¿Qué es CLS y CTS?

A

Son un conjunto de requisitos que tienen que cumplir los lenguajes de programación en los que se quiera programar para .NET.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

¿Qué es GAC en .NET?

A

GAC- Global Assembly Cache (ruta global con ensamblados registrados)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

¿Qué es Especificación de la plataforma ECMA 335 / ISO 23271?

A

Es una especificación de Microsoft para que cualquiera pueda crear su Maquina Virtual

  • Virtual Execution System (VES) –> En realidad es la especificación para los CLR
  • CLS/CTS
  • MSIL –> CIL (Cómo bytecode de java) –> El código CIL se empaqueta en “Assemblies” (.dll/.exe)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Visual Basic .net

A
  • Este concepto de “property” también existe en c#
  • Nos ofrece una forma de tratar con los atributos directa (sin setters)
    • Se podrían declarar “ReadOnly” o “WriteOnly
      Ej. de uso
      Dim obj As New Class1()
      Obj.Prop1 = “Cadena”
  • El código se organiza en namespaces (similar al concepto de package en Java)
  • La sentencia para usar elementos de otro namespace es Imports. Ej. Imports System.Data (ado.net)
  • Los métodos son Sub (procedimientos) o Function (devuelven un valor)
  • Existe el concepto de “Delegate” (similar al concepto de puntero a función). Existen también en c#
  • Tenemos constructor (New) y destructor (Finalize)
  • Existe la sentencia de control de errores Try Catch Finally
  • Es buena practica usar la sentencia Using para definir un bloque en el que se liberen automáticamente recursos (ej. Ficheros abiertos, conexiones, …).
    Estos objetos/recursos deberían de tener implementado IDisposable para que using funcione. También existe en c#
  • La palabra reservada Me sirve para referenciar a la instancia actual (similar al this de Java)
  • La palabra reservada MyBase sirve para referencia a la clase base de la que estamos heredando (similar al super de Java)
  • Shared, como static de java
  • Inherited, extends en java
  • NotInheritable, clase final en Java
  • MustInherit, abratract class en Java
  • Overridable / Overrides / NotOverridable / MustOverride –> Es sobrescribible / metodo sobrescrito / No es posible sobrescribir / Debe ser sobrescrito.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

C# .net

A
  • Con ”virtual” declaramos que un método puede ser sobreescrito usando “override”
  • Con “sealed” declaramos que un método NO PUEDE ser sobreescrito o que una clase NO PERMITE que nadie herede de ella
  • Para declarar miembros de clase (no de instancia) se usa “static”
  • Tenemos otras estructuras de programación como son: Record, Interface, Enum
  • Para heredar usamos ‘:’ –> public lass B : A
  • Para sobrescribir un método –> public override void Method1() (si el metodo es virtual en el padre)
  • “using” –> bloque de código que usa lo que dicte using.
using (SqlConnection conn = new SqlConnection(connString)) {
      conn.Open();
}
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Herramienta en .NET para gestión de dependencias

A

NUGET

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Herramienta en .NET para automatizar la construcción (build)

A

MSBuild

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

ADO.Net

A
  • Dataset es un conjunto desconectado de datos
  • Dataset se tiene que rellenar usando un DataAdapter
  • Dataset puede tener datos de 1 o varias tablas
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
18
Q

¿Qué es Entity Framework?

A

Es el ORM para .NET (como jpa Java)

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
19
Q

Que es LINQ

A

Consultas independientes de la fuente (memoria, bbdd, xml …)

20
Q

Infraestructura .NET (Aplicaciones Web)

A
  • En plataforma Windows
    • Instalar .NET Framework o .Net Core o .NET
    • Intalar Internet Information Server (IIS) + ASP.NET Runtime (porque las páginas son componentes con un ciclo de vida)
      • Servidor de páginas estáticas o ficheros mediante FTP
  • En plataforma Linux / Mac
    • Instalar .NET Framework o .Net Core o .NET
    • Intalar Kestrel + ASP.NET Runtime (porque las páginas son componentes con un ciclo de vida)
      • Servidor de páginas estáticas o ficheros mediante FTP
21
Q

Aplicaciones Web .NET -WebForms

A
  • ASP.NET Web Forms forma parte del marco de aplicaciones web ASP.NET y se incluye con Visual Studio. Es uno de los cuatro modelos de programación que puede usar para crear aplicaciones web ASP.NET, los demás son ASP.NET MVC, ASP.NET Web Pages y ASP.NET Single Page Applications.
  • web.config y global.asax (como web.xml de java)
  • ListadoFacturas.aspx (< html> + < servidor> ) –> Maquetación
  • ListadoFacturas.aspx.cs (class ListadoFacturas : System.Web.UPage) –> Manejador de la página.
22
Q

Aplicaciones Web .NET -MVC

A
  • Modelo de aplicación en el cual el flujo siempre comienza por un “Controlador” que es el coordina tanto la lógica de negocio como la invocación posterior a la Vista. Cada ”Controlador” tendrá una URL asociada (similar a la configuración de los Servlet en el web.xml en apps JEE). Esto se configura en el RouteConfig
  • Un producto típico en esta arquitectura para implementar las Vistas como si fueran plantillas es Razor
23
Q

Aplicaciones Web .NET -Servicios Web SOAP - ASMX

A
  • Antes –> Ficheros/Páginas con extension .asmx (No tenian capacidad para WS-Security)
  • Ahora –> Ficheros/Páginas con extension .wcf (Windows Communication Foundation)

NOTA: Las anotaciones de Java en .NET se llaman ATRIBUTES. Ojo con esto!!! se escriben [atributo]

[webMethod]

24
Q

Aplicaciones Web .NET -Servicios Web REST

25
Q

Seleccione la respuesta correcta sobre .NET:

a) .NET es un marco multiplataforma gratuito de Google para compilar aplicaciones y servicios en la nube.

b) .NET es un proyecto de código abierto.

c) .NET sirve exclusivamente para desarrollar aplicaciones móviles.

d) .NET admite un amplio rango de lenguajes de programación, a excepción de C#

A

b) .NET es un proyecto de código abierto.

26
Q

Señale la respuesta INCORRECTA referente al objeto POCO en .NET:

a) Es una estructura de datos de .NET que solo contiene propiedades o campos públicos.

b) Es el acrónimo de Plain Old CLR Object.

c) No hereda de otra clase o implementa una interfaz.

d) Podrá contener miembros como: métodos. eventos y delegados.

A

d) Podrá contener miembros como: métodos. eventos y delegados.

27
Q

¿Qué framework se puede usar para aplicaciones de escritorio nativas .NET?

a) .NET MAUI

b) Blazor Hybrid

c) JavaFX

d) WebView

A

a) .NET MAUI

28
Q

¿Cuál de los siguientes NO es un ORM (Mapeador Objeto-Relacional)?

a) ADO.NET Entity Framework

b) Ruby Hibernation

c) NHibernate

d) Hibemate

A

b) Ruby Hibernation

29
Q

En el entorno de programación .Net, indique que es un NuGet:

a) Una biblioteca de clases base.

b) Un administrador de paquetes.

c) Una implementacién de .Net.

d) Un entorno de ejecución.

A

b) Un administrador de paquetes.

30
Q

En C# debe crear un objeto de tipo SqlConnection y que se llame al método Dispose, para asi liberar recursos al final del bloque de código que aparece entre llaves. ¿Qué instruccion debemos utilizar?

a) using (SqlConnection conn = new SqlConnection(connString)) {conn.Open();}
b) scope (SqlConnection conn = new SqlConnection(connString)) {conn.Open():}
c) dispose (SalConnection conn = new SqiConnection(connString)) {conn.Open():}
d) intemal (SqiConnection conn = new SqiConnection(connString)) {conn.Open():}

A

a) using (SqlConnection conn = new SqlConnection(connString)) {conn.Open();}

31
Q

¿Cuál de las siguientes opciones sobre ADO.NET y los proveedores de datos del framework .NET es FALSA?

a) ADO.NET permite acceder a datos alojados en XML

b) El objeto Connection es el que proporciona conectividad con las distintas fuentes de datos.

c) El objeto Operation permite invocar peticiones para recuperación y/o modificación de información sobre la fuente de datos.

d) Los objetos de tipo DataSet están formados por una colección de objetos de tipo DataTable.

A

c) El objeto Operation permite invocar peticiones para recuperación y/o modificación de información sobre la fuente de datos.

32
Q

Considerando el siguiente fragmento de código en el lenguaje C# en .Net y, asumiendo que la cadena de conexión (cadena) está declarada y es correcta y que se han importado las clases necesarias, ¿cuál sería la instrucción en el código que le permitirá posteriormente ejecutar la consulta almacenada en la variable query?

MySqlConnection conn = new MySqlConnection(cadena);
string query = “Select * from Inscripcion”;
conn.Open();

a) $resultado = mysqli_query( $conn, $query):

b) MySqlCommand resultado = new MySqlCommand (query, conn);

c) resultado = stm.executeQuery(query);

d) resultado = conn.query(query);

A

b) MySqlCommand resultado = new MySqlCommand (query, conn);

33
Q

Le preguntan que indique la utilidad de los namespaces (espacios de nombres) en .Net:

a) Es un mecanismo para proteger las clases, garantizando el encapsulamiento de las mismas.

b) Es un mecanismo para reflejar las propiedades de acceso de cada clase.

c) No existe tal concepto.

d) Es un mecanismo para organizar clases.

A

d) Es un mecanismo para organizar clases.

34
Q

Si quisiera utilizar un lenguaje multiparadigma en .Net, ¿cuál de los siguientes utilizaría?

a) C#

b) G#

c) Cloos

d) F#

A

Pregunta trampa diríamos C# pero la buena es d) F#

35
Q

Cuando se habla de bloques de creación de las aplicaciones .NET Framework, que constituyen la unidad fundamental de implementación, control de versiones, reutilización, ámbitos de activación : permisos de seguridad de una aplicación .Net Framework, se está hablando de un:

a) Espacio de nombres

b) Paquete,

c) Interfaz.

d) Ensamblado.

A

d) Ensamblado.

36
Q

Uso de la palabra reservada “virtual” y “sealed” en c#

A
  1. virtual –> indica metodos que se pueden sobreescribir
  2. sealed –> que no se pueden sobreescribir/heredar (equivalente a final de Java)
37
Q

En el estandar CLI, ¿a que se hace referencia con el componente VES?

A

Sirve para estandarizar los distintos CLR (equivalente a la JVM)

38
Q

¿Que dos estandares / recomendaciones tiene que cumplir cualquier leguaje que quiera ser “.net compatible”?

39
Q

Concepto de GAC. Concepto de Assembly

A
  1. GAC –> Repositorio Global de enamblados ( a nivel de una maquína)
  2. Assembly –> Empaquetado físico de codigo .NET / CIL (equivalente a jar/module)
40
Q

¿Cómo se crea un proyecto de .NET CORE por linea de comandos?

A

dotnet new < plantilla>

Ej. plantilla: console, webapp….

41
Q

Función principal de la herramienta NuGet

A

Gestor de dependencias / paquetes en nuestros proyectos.

NOTA: La herramienta para automatizar la construcción –> msbuild
NOTA: El equivalente en Java de estas dos herramientas es Maven/Gradle

42
Q

Diferencias entre los productos .NET Core y .NET Framework

A
  1. .NET Core –> Opensource y multiplataforma
  2. .NET Framework –> Propietaria

NOTA: Estas dos ‘lineas’ de producto han dado como lugar –> .NET

43
Q

¿Que es un atributo y para que sirve? ¿Alguna semejanza con Java?

A
  • En c# –> [atributo]
  • En VB.NET –> < atributo>
  • En Java –> Anotaciones @

OBJETIVO –> Configuración en propio código

44
Q

Concepto de SqlDataReader de ADO.Net

A

Permite recorrer una serie de resultados de una query ya ejecutada (SqlCommand) (Funciona como una especie de cursor)

NOTA: Equivalente en Java seria el interfaz ResultSet del API JDBC

45
Q

Concepto de Code-Behind en ASP.Net

A

Fichero/Clase correspondiente a una determinada “pagina” .aspx con el objetivo de poder codificar la respuesta ante ciertos eventos

  1. Ciclo de vida de la propia página (load, start)
  2. De los componentes de la página (ej. button, …)