b3t6 - .NET Flashcards

1
Q

Cuál es la versión del último framework de .net que publicó Microsoft y en qué año?

A

4.8 en 2019

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

Qué es el CLR de .NET?

A

Common Language Runtime → Es equivalente al JRE de java, o a la máquina virtual

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

Qué tiene el CLR?

A

<ul><li>Librerías de clases base</li><li>Soporte de hilos</li><li>Garbage collector</li><li>JIT Compiler (Just In Time Compiler) → Compilación en tiempo de ejecución. Optimiza porque traduce el código bytecode al código máquina nativo</li><li>Exception Manager</li><li>…</li></ul>

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

Qué es el bytecode

A

<span>El </span><strong>bytecode</strong><span> es un </span><a>código intermedio</a><span> más abstracto que el </span><a>código máquina</a><span>. Habitualmente, es tratado como un archivo </span><a>binario</a><span> que contiene un programa </span><a>ejecutable</a><span> similar a un módulo objeto, que es un archivo binario producido por el </span><a>compilador</a><span> cuyo contenido es el </span><a>código objeto</a><span> o código máquina .</span>

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

Qué es el JIT que hay en algunas máquinas virtuales

A

Just In Time Compiler: Es la herramienta que compila en tiempo de ejecución el código bytecode intermedio al código máquina nativo de la máquina virtual antes de interpretarlo, de forma que se optimizan tiempos

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

Qué tiene el .NET Framework, por ejemplo a partir de la versión 2.0 de 2005?

A

CLR (Common Language Runtime)
Framework Class Library: Clases principales como String, las de Utils, etc…
WinForms → Clases interfaces de usuarios basadas en ventanas (botones, …)
ASP.NET → Entorno para hacer aplicaciones web
ADO.NET → Para conectividad con BBDD

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

Qué paquetes de clases se añadieron en .NET Framework 3.0 y que prácticamente no se usan?

A

<ul><li>WPF → Windows Presentation Fundation</li><li>WCF → Windows communication fundation → Poder crear servicios web. Integración</li><li>WWF → Windows Workflow fundation → Para crear flujos, con una herramienta visual</li></ul>

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

Qué leguajes soporta .NET Framwork

A

c#f#vb.net

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

Qué dos importantes funcionalidades se incluyen en .NET Framework 3.5 relacionadas con la bbdd?

A

LINQ (Language Integrated Query) → Te abstrae del tipo de BBDD
EntityFramework → Herramienta ORM como NHibernate de .NET también o las JPA de java (Hibernate, TopLink, OpenJPA)

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

Qué es el paquete de clases WPF de .NET Fw incluido en el 3.0?

A

<ul><li>WPF → Windows Presentation Fundation</li></ul>

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

Qué es el paquete de clases WCFde .NET Fw incluido en el 3.0?

A

<ul><li>WCF → Windows communication fundation → Poder crear servicios web. Integración</li></ul>

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

Qué tres tipos de lenguajes se usan desde que se desarrolla el un programa hasta que se ejecuta?

A

<ol><li>Código <strong>fuente</strong>.</li><li>Un compilador lo compila a <strong>bytecode</strong></li><li>El JIT compiler del CLR lo traduce a código <strong>máquina nativo</strong></li></ol>

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

Qué es el CIL de .NET Framework

A

Common Intermediate Language. El nombre que le puso Microsoft al código “bytecode”

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

Cómo se llamaba el CIL antes de llamarse así?

A

<ul><li>MSIL → Microsoft Intermediate Language</li></ul>

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

Cómo se llama el proceso de empaquetado<strong> ficheros de código CIL </strong>en formato de .dll y .exe que se despliega en la máquina virtual en .NET Framework? sería similar al JAR de java

A

Assembly

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

Qué sería el equivalente .NET Framework de un JAR? y qué contiene

A

Son los ensamblados .dll y .exe, que contiene archivos CIL

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

Qué concepto .NET sería el equivalente al ClassPath de Java?

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
18
Q

Tres implementaciones de frameworks de .NET hay en Linux?

A

MONO → Es opensource
.NET Core
DotGNU Portable.NET

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

Cómo se llama la implementación de Microsoft de un framework de .NET?

A

.NET Framework

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

Las versiones del CLR se corresponden con las del Framework?

A

No siempre. Por ejemplo la v3.0 del framework tiene versión 2 de CLR

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

Qué dos reglas debe cumplir cualquier lenguaje que quiera ser compatible con lenguaje .net (CIL), definidas en la ECMA 335?

A

CLS (Common Language System)CTS (Common Type System)

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

Dónde estaba y dónde está ahora situado el GAC en Windows?

A

Antes → c:\windows\assemblyAhora → c:\windows\Microsoft.Net\assembly

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

Qué código ECMA es la especificación de la plataforma .NET?

A

ECMA 335

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

Qué es el estándar ECMA 334?

A

Es la especificación que estandariza el lenguaje C#

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

Qué es el ECMA 335 (llamado Common Language Infrastrcture - CLI)

A

Es la estandarización de toda la plataforma .NET (CIL,

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

Qué es el CLI?

A

Common Language Infrastructure → Especificación ECMA 335 que estandariza toda la plataforma .NET

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

Qué es .NET Core y en qué año surge?

A

Framework multiplataforma y opensource bajo licencia <strong>MIT </strong>que lanza Microsoft, que liberaliza parte del producto propietario y no multiplataforma .NET Framework.Lo lanza en 2016

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

Qué es el producto .NET, a secas? Qué año surge y con qué versión inicia? Por qué versión va?

A

A nivel de producto se funde la línea .NET Framework (propietario Microsoft) y .NET Core (opensource)Empieza por .NET 5 en 2020En 2022 va por la .NET 7En 2023 está proyectada la versión .NET 8

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

Qué versión de .NET está proyectada para 2023?

A

.NET 8

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

Qué diferencia hay entre los siguientes frameworks?.NET FrameworkMONO.NET Core.NET.NET STANDARD 2.0

A

.NET Framework → Propietario de Microsoft, con el que se inicia la plataformaMONO → Versión opensource para Linux.NET Core → Versión opensource lanzada por el mismo Microsoft.NET → Unificación de .NET Framework y .NET Core.NET STANDARD 2.0 → Estandarización de las clases base entre los distintos frameworks

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

Qué es el framework Xamarin?

A

Framework .NET basado en MONO, que sirve para móviles

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

Qué es .NET STANDARD 2.0?

A

Estandarización de las clases base entre los distintos frameworks de .NET

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

Qué es la herramienta dotnet?

A

Herramienta de línea de comandos, incluida en .NET Core que sirve para desarrollar, equivalente a un IDE de desarrollo

34
Q

Qué dos herramientas están incluidas en dotnet para la construcción de proyecto y gestión de dependencias?

A

msbuild: Automatizar la construcción del proyecto.
nuget: Gestión de dependencias.Estas dos cosas combinadas sería similar a maven en java o npm en js

35
Q

nuget y msbuild se pueden usar fuera de dotnet?

A

36
Q

Qué hace la herramienta new de dotnet?

A

Crear un proyecto dotnet

37
Q

Qué hace la herramienta add de dotnet?

A

Para añadir o actualizar un paquete en un proyecto dotnet

38
Q

En vb.net, para qué son estas palabras reservadas?
Class
Inherit
Implements
EndClass
NotInheritable
Module

A

Class → Declarar una clase
Inherit → Definir de qué clase hereda otra. Como Extends en java
Implements → Definir qué interfaz implementa una clase
NotInheritable → La clase no se puede heredar. Como Final en java
End Class → Para finalizar la declaración de una clase
Module → es un conjunto de funciones, es algo fuera del orientado a objetos, no se puede heredar, etc …

39
Q

En qué consiste el concepto y palabra reservada Property en vb.net?

A

Declarar como Property una variable permite que por debajo se haga el getter y el setter sin poner get y set al trabajar con ella.

40
Q

Qué representan estas palabras reservadas en vb.net?namespaces
Imports
Sub
Function
Delegate
New
Finalize
Using

A

namespaces → similar a package en java
Imports → Para importar librerías de otros paquetes
Sub → método que no devuelve valor, un procedimiento
Function → método que sí devuelve valor, una función
Delegate → Puntero a función
new → Para crear objetos
Finalize → destructor
Using → para definir un bloque en el que se liberen automáticamente recursos (ficheros abiertos, conexiones, …)

41
Q

Para qué sirven las siguientes clases de ADO .NET?SqlConnectionSqlCommandSqlDataReaderDataSet

A

SqlConnection → Para definir la conexiónSqlCommand → Para definir la sentencia sqlSqlDataReader → Para leer los registros resultantesDataSet → Estructura que contiene todos los registros resultantes y se puede <strong>usar desconectado</strong> de la bbdd. Puede guardar 1 o varias tablas

42
Q

A qué se semeja en java el ADO.NET?

A

Con JDBC. Gestiona conexiones de bbdd a bajo nivel

43
Q

A qué se semeja en java el EntityFramework?

A

Es un ORM similar a lo que sería Hibernate en Java, una implementación de la especificacionNPersistance de .NET, que a su vez es el equivalente de JPA de java

44
Q

Qué elemento de ADO.NET rellena los Dataset desconectados?

A

El DataAdapter

45
Q

En qué espacio de nombres de .NET está el DataEntity?

A

System.Data.Entity

46
Q

Para qué sirve WEB FORMS de .NET?

A

Es modelo de aplicaciones web que siempre empieza por páginas .aspx

47
Q

Qué contiene una “página” de WEB FORMS .net?

A

HTML + etiquetas de servidor “asp” ( …)Code-Behind (métodos que responden a eventos del usuario sobre la página)

48
Q

La “página” de WEB FORMS de .NET, de qué clase hereda? Concretamente el fichero de Code-Behind

A

De System.Web.UI.Page. Esto hace que herede los métodos del ciclo de vida que se pueden sobreescribir, como…PageRequestStartPage initialization<strong>Load</strong>Validation…

49
Q

Cuál es el modelo de aplicación .NET que se basa en que el flujo comience con un controlador reciba la llamada http y que coordina las llamadas al negocio y la invocación a la vista a mostrar posteriormente?

A

MVC

50
Q

Cuál es en .NET el equivalente al web.xml donde se configuran los servlets en JEE?

A

El web.config

51
Q

Cuál es el modelo de aplicación .NET que se basa en que el flujo en páginas aspx y una equivalente aspx.vb o aspx.cs?

A

WebForms

Otras extensiones son
aspx -> página webforms
asmx -> servicios web soap
ashx -> Manejadores http

52
Q

Un producto típico de MVC .NET, que implementa vistas como si fuesen plantillas…
y que s una sintaxis de programación usada para crear páginas web dinámicas.

A

Razor

53
Q

Los dos componentes principales de ADO.NET para el acceso a los datos y su manipulación son

A

.NET Framework Data Providers y ADO.NET DataSet

54
Q

De qué clase hereda en ASP.NET MVC un controlador?

A

System.Web.MVC.Controller

55
Q

A qué es equivalente de JEE el ASP.NET WebApi?

A

A jax.rs para servicios REST

56
Q

Como se llaman en C# o vb a lo que son las anotaciones o notations de Java?

A

Atributos

57
Q

Cómo se expresan los atributos (las anotaciones) en C#? y en VB?

A

C# → Con corchetesVB → Con < >

58
Q

Qué es ASMX en .NET?

A

Es para trabajar con servicios web SOAP

59
Q

En WebAPI de .net, cómo se convierte una clase en un servicio REST?

A

Heredando de ApiController

60
Q

En WebAPI de .net, cómo se convierte una clase en un servicio SOAP?

A

Heredando de WebService

61
Q

Cuál es la versión mayor del CLR de .NET?

A

<strong>La version del CLR más alta es la 4.0</strong> (las versiones de CLR no va correlativas a las version del FW)

62
Q

En .NET, ¿como se denomina al bytecode generado por el csc.exe por ej? ¿Que es un ensamblado y que tipos hay?

A

1.- Codigo CIL2.- Es el empaquetado fisico del CIL junto con Metadatos,recusos,etc (forma de .exe o .dll)

63
Q

Qué es el VES en .NET?

A

Virtual Execution System: Es la especificación de la máquina virtual. El CLR sería una implementación concreta de VES

64
Q

Qué hace la instrucción gacutil -i gac_lib.dll?

A

Instala en la gac esa librería

65
Q

Qué tres elementos de programación tiene vb.net?

A

Class
Structure -> Parecido a una clase, pero se pasa a los métodos por valor, no por referencia
Module -> Son como clases con funciones, que tienen solo una instancia, que no permiten herencia ni implementan interfaces. Viene de versiones antiguas de vb

66
Q

Palabras reservadas de vb.net
Inherit
MustInherit
NotInheritable
Overridable
Partial
Properties
Atribute
Field (no es palabra reservada, sino un concepto)
New

A

Inherit -> hereda, como el Extends en java
MustInherit -> debe heredar
NotInheritable -> Clase que no se puede heredar -> como el final de java
Overridable -> Método que se puede sobreescribir
MustOverride -> Se debe sobreescribir
NotOverridable -> Método que no se puede sobreescribir -> final en java
Partial -> Una clase en varios archivos
Properties -> Tb existe en c#. Sirve para poder acceder al valor sin usar getter y setter
Atribute -> Es como una anotación en Java
Field -> lo que a Java es un atributo de una clase o un objeto
New -> Constructor, lo que en java se expresa con el nombre de la clase

67
Q

Qué son las siguientes estructuras de programación o palabras reservadas en C#?

Enum
virtual
sealed
Record
Interface
:
Shared (en vb.net)

A

enum -> enumerado
virtual -> declaramos que un método puede ser sobreescrito usando “override”
sealed -> declaramos que un método NO PUEDE ser sobreescrito o que una clase NO PERMITE que nadie herede de ella, como final en java
Record
Interface
: -> en sustitución de la palabra Implements, al decir que se implementa una interfaz o inherits al heredar de una clase
Shared -> atributo static

68
Q

¿Con que palabra se define un metodo abstracto en C#? ¿y en VB.NET?

A

En c# usamos abstract y en VB.Net MustOverride/MustInherit

69
Q

¿Para que nos sirve el modificador new en c#?

A

Para especificar en una clase hija que en lugar de sobreescribir un metodo del padre estamos creando un metodo nuevo (aunque tenga el mismo nombre)

70
Q

Cuál es el equivalente de JUnit en .Net?

A

NUnit
xUnit.net
csUnit

71
Q

En dotnet, qué fichero equivale a pom.xml de maven?

A

proyecto.csproj

72
Q

En dotnet, cuáles son las etiquetas equivalente a dependencies del pom.xml donde se especifica la dependencia?

A

PagckageReferece

73
Q

De qué tres formas podríamos añadir en un proyecto .NET una dependencia de un ensamblado externo?

A

dotnet -> dotnet add package NUnit –version 3.13.3
NuGet -> NuGet\install-Package NUnit -Version 3.13.3
Paket -> paket add NUnit –Version 3.13.3
Añadiendo la referencia manualmente en el .csproj -> < PackageReference Include =”NUnit” Version=”3.13.3” />

74
Q

Cómo se llama el módulo que hay que instalar en el servidor web de Microsoft “Microsoft IIS” para poder interpretar páginas con código .asp?

A

APSNet runtime

75
Q

En una aplicación .net con WebForms, cuál es el fichero equivalente al web.xml de JEE? Y un fichero que sirva para hacer unas tareas iniciales al arrancarla?

A

Web.config
Global.asax

76
Q

Básico VB

A
  • Inherits -> herencia
  • MustInherit -> Para hacer clases abstractas
  • Implements -> interfaces
  • Overridable -> se pone en un método para que los hijos puedan sobreescribirlo, si no no pueden
  • MustOverride -> se pone en un método para hacerlo abstracto y que los hijos tengan que implementarlo
  • Overrides -> Se pone en un método que está implementando un método abstracto del padre
  • NotOverridable -> Se pone en un método para hacerlo final
  • Los constructores de clase -> Public Sub New (…)
  • Equivalente a this. y super. -> Me. y MyBase.

Las clases se declaran en dos líneas: en una línea una parte y las interfaces se implementan en la siguiente ->
Public Class Director
Inherits Empleado

77
Q

Básico C#

A

Importaciones -> con using ..clase o using static ..clase. Si lo haces stático te puedes ahorrar referenciar a la clase más adelante para acceder a un método estático suyo.

namespace -> equivalente al paquete

Clases
- sealed -> clase final
- las interfaces se ponen tras dos puntos : -> public sealed class Cliente : Persona,IRecurso
- El constructor es como en java, es public NombreClase (….) : base (…) . Al ponerle : base estamos llamando al constructor del padre
- virtual: si no se pone virtual a un método, no deja sobreescribir en los hijos-> public virtual void informe(){}. Indica que se puede sobreescribir pero no es obligatorio, similar a Overridable en VB
- abstract: como java, obliga a sobreescribir

modificardor new de c#
public new void cerrar(){…} –> le estás diciendo que aunque se llame igual que un método cerrar() de la clase padre, es OTRO método cerrar, no estás sobreescribiendo.
OJO: si se estuviese haciendo polimorfismo creando un objeto de la clase hija, pero declarándolo como la padre, si se llama al método cerrar() coge el del padre!, porque la clase que se ha puesto es la del padre! -> Proyecto p2 = new ProyectoOpensoruce();
p2.cerrar() ——> no es el de ProyectoOpensource sino el de Proyecto!! Si no se pone new, sí que aplica el polimorfismo y cogería el de ProyectoOpensource

78
Q

Repasar los laboratorios de Java, c# y VB y hacer un tríptico comparativo de cada parte

A
79
Q

En .NET, en las hashtables qué hacen estas tres properties?
keys
count
values

A

count -> nº de pares clave-valor incluídos
keys -> obtiene una interfaz ICollection que contiene las claves
values -> obtiene una interfaz ICollection que contiene los values

80
Q

Importante para el segundo ejercicio: ver como se manejan cadenas, fechas y colecciones en java, c# y vb (fechas más en java)

A
81
Q

Cómo es la jerarquía de colecciones en C#?

A

// La jerarquia de herencia de las clases/interfaces de coleccion es:

    // 1. IEnumerator (metodos MoveNext, Current y Reset)
    // 2. IEnumerable (metodo GetEnumerator)
    // 3. ICollection (metodos Count,Contains,Add,Remove,Clear,CopyTo(array),...)

    // 4.- IList(metodos IndexOf,Insert,RemoveAt y un Indexer), IDictionary, ...
82
Q

Qué es Kestrel?

A

Servidor web opensource multiplataforma para aplicaciones ASP.NET
(se usa en linux y mac, que no hay IIS)