b3t6 - .NET Flashcards
Cuál es la versión del último framework de .net que publicó Microsoft y en qué año?
4.8 en 2019
Qué es el CLR de .NET?
Common Language Runtime → Es equivalente al JRE de java, o a la máquina virtual
Qué tiene el CLR?
<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>
Qué es el bytecode
<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>
Qué es el JIT que hay en algunas máquinas virtuales
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
Qué tiene el .NET Framework, por ejemplo a partir de la versión 2.0 de 2005?
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
Qué paquetes de clases se añadieron en .NET Framework 3.0 y que prácticamente no se usan?
<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>
Qué leguajes soporta .NET Framwork
c#f#vb.net
Qué dos importantes funcionalidades se incluyen en .NET Framework 3.5 relacionadas con la bbdd?
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)
Qué es el paquete de clases WPF de .NET Fw incluido en el 3.0?
<ul><li>WPF → Windows Presentation Fundation</li></ul>
Qué es el paquete de clases WCFde .NET Fw incluido en el 3.0?
<ul><li>WCF → Windows communication fundation → Poder crear servicios web. Integración</li></ul>
Qué tres tipos de lenguajes se usan desde que se desarrolla el un programa hasta que se ejecuta?
<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>
Qué es el CIL de .NET Framework
Common Intermediate Language. El nombre que le puso Microsoft al código “bytecode”
Cómo se llamaba el CIL antes de llamarse así?
<ul><li>MSIL → Microsoft Intermediate Language</li></ul>
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
Assembly
Qué sería el equivalente .NET Framework de un JAR? y qué contiene
Son los ensamblados .dll y .exe, que contiene archivos CIL
Qué concepto .NET sería el equivalente al ClassPath de Java?
GAC: Global Assembly Cache → Ruta global con ensamblados registrados
Tres implementaciones de frameworks de .NET hay en Linux?
MONO → Es opensource
.NET Core
DotGNU Portable.NET
Cómo se llama la implementación de Microsoft de un framework de .NET?
.NET Framework
Las versiones del CLR se corresponden con las del Framework?
No siempre. Por ejemplo la v3.0 del framework tiene versión 2 de CLR
Qué dos reglas debe cumplir cualquier lenguaje que quiera ser compatible con lenguaje .net (CIL), definidas en la ECMA 335?
CLS (Common Language System)CTS (Common Type System)
Dónde estaba y dónde está ahora situado el GAC en Windows?
Antes → c:\windows\assemblyAhora → c:\windows\Microsoft.Net\assembly
Qué código ECMA es la especificación de la plataforma .NET?
ECMA 335
Qué es el estándar ECMA 334?
Es la especificación que estandariza el lenguaje C#
Qué es el ECMA 335 (llamado Common Language Infrastrcture - CLI)
Es la estandarización de toda la plataforma .NET (CIL,
Qué es el CLI?
Common Language Infrastructure → Especificación ECMA 335 que estandariza toda la plataforma .NET
Qué es .NET Core y en qué año surge?
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
Qué es el producto .NET, a secas? Qué año surge y con qué versión inicia? Por qué versión va?
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
Qué versión de .NET está proyectada para 2023?
.NET 8
Qué diferencia hay entre los siguientes frameworks?.NET FrameworkMONO.NET Core.NET.NET STANDARD 2.0
.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
Qué es el framework Xamarin?
Framework .NET basado en MONO, que sirve para móviles
Qué es .NET STANDARD 2.0?
Estandarización de las clases base entre los distintos frameworks de .NET
Qué es la herramienta dotnet?
Herramienta de línea de comandos, incluida en .NET Core que sirve para desarrollar, equivalente a un IDE de desarrollo
Qué dos herramientas están incluidas en dotnet para la construcción de proyecto y gestión de dependencias?
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
nuget y msbuild se pueden usar fuera de dotnet?
Sí
Qué hace la herramienta new de dotnet?
Crear un proyecto dotnet
Qué hace la herramienta add de dotnet?
Para añadir o actualizar un paquete en un proyecto dotnet
En vb.net, para qué son estas palabras reservadas?
Class
Inherit
Implements
EndClass
NotInheritable
Module
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 …
En qué consiste el concepto y palabra reservada Property en vb.net?
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.
Qué representan estas palabras reservadas en vb.net?namespaces
Imports
Sub
Function
Delegate
New
Finalize
Using
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, …)
Para qué sirven las siguientes clases de ADO .NET?SqlConnectionSqlCommandSqlDataReaderDataSet
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
A qué se semeja en java el ADO.NET?
Con JDBC. Gestiona conexiones de bbdd a bajo nivel
A qué se semeja en java el EntityFramework?
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
Qué elemento de ADO.NET rellena los Dataset desconectados?
El DataAdapter
En qué espacio de nombres de .NET está el DataEntity?
System.Data.Entity
Para qué sirve WEB FORMS de .NET?
Es modelo de aplicaciones web que siempre empieza por páginas .aspx
Qué contiene una “página” de WEB FORMS .net?
HTML + etiquetas de servidor “asp” ( …)Code-Behind (métodos que responden a eventos del usuario sobre la página)
La “página” de WEB FORMS de .NET, de qué clase hereda? Concretamente el fichero de Code-Behind
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…
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?
MVC
Cuál es en .NET el equivalente al web.xml donde se configuran los servlets en JEE?
El web.config
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?
WebForms
Otras extensiones son
aspx -> página webforms
asmx -> servicios web soap
ashx -> Manejadores http
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.
Razor
Los dos componentes principales de ADO.NET para el acceso a los datos y su manipulación son
.NET Framework Data Providers y ADO.NET DataSet
De qué clase hereda en ASP.NET MVC un controlador?
System.Web.MVC.Controller
A qué es equivalente de JEE el ASP.NET WebApi?
A jax.rs para servicios REST
Como se llaman en C# o vb a lo que son las anotaciones o notations de Java?
Atributos
Cómo se expresan los atributos (las anotaciones) en C#? y en VB?
C# → Con corchetesVB → Con < >
Qué es ASMX en .NET?
Es para trabajar con servicios web SOAP
En WebAPI de .net, cómo se convierte una clase en un servicio REST?
Heredando de ApiController
En WebAPI de .net, cómo se convierte una clase en un servicio SOAP?
Heredando de WebService
Cuál es la versión mayor del CLR de .NET?
<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)
En .NET, ¿como se denomina al bytecode generado por el csc.exe por ej? ¿Que es un ensamblado y que tipos hay?
1.- Codigo CIL2.- Es el empaquetado fisico del CIL junto con Metadatos,recusos,etc (forma de .exe o .dll)
Qué es el VES en .NET?
Virtual Execution System: Es la especificación de la máquina virtual. El CLR sería una implementación concreta de VES
Qué hace la instrucción gacutil -i gac_lib.dll?
Instala en la gac esa librería
Qué tres elementos de programación tiene vb.net?
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
Palabras reservadas de vb.net
Inherit
MustInherit
NotInheritable
Overridable
Partial
Properties
Atribute
Field (no es palabra reservada, sino un concepto)
New
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
Qué son las siguientes estructuras de programación o palabras reservadas en C#?
Enum
virtual
sealed
Record
Interface
:
Shared (en vb.net)
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
¿Con que palabra se define un metodo abstracto en C#? ¿y en VB.NET?
En c# usamos abstract y en VB.Net MustOverride/MustInherit
¿Para que nos sirve el modificador new en c#?
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)
Cuál es el equivalente de JUnit en .Net?
NUnit
xUnit.net
csUnit
En dotnet, qué fichero equivale a pom.xml de maven?
proyecto.csproj
En dotnet, cuáles son las etiquetas equivalente a dependencies del pom.xml donde se especifica la dependencia?
PagckageReferece
De qué tres formas podríamos añadir en un proyecto .NET una dependencia de un ensamblado externo?
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” />
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?
APSNet runtime
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?
Web.config
Global.asax
Básico VB
- 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
Básico C#
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
Repasar los laboratorios de Java, c# y VB y hacer un tríptico comparativo de cada parte
En .NET, en las hashtables qué hacen estas tres properties?
keys
count
values
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
Importante para el segundo ejercicio: ver como se manejan cadenas, fechas y colecciones en java, c# y vb (fechas más en java)
Cómo es la jerarquía de colecciones en C#?
// 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, ...
Qué es Kestrel?
Servidor web opensource para aplicaciones ASP.NET