Tema_6_.NET Flashcards
¿Cuantas vertientes hay del Net Framework de .NET?
Dos:
Windows ( Microsoft )
Linux ( Mono→Opensource / .NET CORE / DotGNU Portable.NET
¿Qué dos componentes son los más importantes en .NET FRAMEWORK?
- CLR ( Common Language Runtime ) Motor de ejecución que controla las aplicaciones.
- Framework Class Library ( Similar a rt.jar de JAVA ) Biblioteca de clases.
¿Qué componentes nos encontramos en Net Framework 2.0, aparte de CLR y Framework Class Library?
- ADO.NET
- ASP.NET
- WinForms
Componentes de NET Framework 3.0
Son paquetes de clases.
- WPF - WINDOWS PRESENTATION FOUNDATION
- WCF - WINDOWS COMMUNICATION FOUNDATION
- WWF - WINDOWS WORKFLOW FOUNDATION
- CARD SPACE
Componentes de NET Framework 3.5
- LINQ→Language Integrated Query. Agrega capacidades de consulta
- ENTITY FRAMEWORK→Es un ORM.
Componentes de Net Framework 4.0
- Parallel LINQ→Implementación en paralelo de LINQ
- Task Parallel Library→
2 Componentes de Net Framework 4.5
- .NET API’S FOR STORE/UWP (Universal Windows Platform) APPS
- Task-Based Async Model
¿Que versiones hay del CLR?
Las versiones 1. 0 / 1.1 / 2.0 hasta FW 3.5
La versión 4. 0 de FW 4.0 a FW 4.8.1
¿Que es CLR?
- Entorno de ejecución de Net FrameWork.
- Es la máquina virtual de .NET
- Es igual que JRE.
- Common Language Runtime.
- Ejecuta los Assemblies, que son los paquetes en .dll o .exe con código CIL.
¿Dí 6 gestiones que realiza CLR?
- Hilos
- Excepciones
- Basura
- Compilador
- Clases
- Seguridad
¿Que reglas hay que cumplir para ser .NET compatible?
CLS ( Common Language System )
CTS ( Common Type System )
¿Que es CIL?
Common Intermediate Language. Anteriormente llamado Microsoft Intermediate Language o MSIL.
Es el código intermedio que resulta de compilar con espécificación .NET
¿Que es ADO.NET?
- Persistencia
- Es el API de bajo nivel de .NET, es equivalente a JDBC.
- Es un conjunto de clases que se usa para acceder a datos de SGBD.
¿Qué es GAC?
Global Assembly Cache.
Es para tener un directorio de Assemblies, que son las aplicaciones de .net
¿Qué es .NET Core?
- Sucesor de .NET Framework.
- Para desarrollo de aplicaciones.
- Multiplataforma. Windows, Linux y MACoS.
- Su CLR se llama CORECLR.
- Bajo licencia MIT.
- De código fuente abierto.
- Sistema de paquetes NUGET
Versiones de .NET
Versiones principales:
.NET 5 2020
.NET 6 2021
.NET 7 2022
.NET 8 en proyecto.
¿Qué es UWP?
- Universal Windows Platform
- Implementación de .NET, para compilar aplicaciones de Windows compatibles con todos los dispositivos Windows, incluidos, PC’s, Tabletas, Teléfonos, Xbox One, Microsoft HoloLens y el internet de las cosas.
¿Qué es MONO?
- Proyecto de código abierto, respaldado por Microsoft. Basado en GNU/Linux y compatible con .NET, según ECMA.
- MULTIPLATAFORMA
- Contiene un CLR, un CLI, un JIT
- Activa Xamarin en Android, macOS, IOS, tvOS y watchOS.
- Basado en GNU/Linux y compatible con .NET según lo especificado por el ECMA.
¿Qué es XAMARIN?
Plataforma de código abierto, para compilar aplicaciones móviles nativas, para Android, IOS y Windows.
Proviene del mundo .NET.
Es una capa de abstracción entre el código reutilizado y el nativo del dispositivo.
Se puede compilar en paquetes .apk, para Android o .ipa, para IOS.
¿Qué lenguajes de programación admite .NET?
- C #
- F #
- Visual Basic .NET
- Delphi
- Perl
- Python
¿Para qué sistemas operativos se puede programar .NET?
- Windows
- macOS
- Linux
- Android
- iOS
- tvOS
- watchOS
¿Qué es un ASSEMBLY?
Es el paquete compilado en formato .dll o .exe, que contiene código CIL y que se ejecuta con CLR
Se puede ver con ildasm.exe
¿Qué es CLI?
Common Language INFRASTRUCTURE
Especificación estandarizada que permite que aplicaciones escritas en distintos lenguajes, puedan ser ejecutadas sin tener que ser reescritas e independientes del hardware.
Aquí vemos que se compila un lenguaje .NET compatible, a CLI, que contiene el CIL, que es lo que entiende el CLR.
Es la ECMA 335
.NET Framework, .NET y Mono, son implementaciones de CLI.
¿Cual es la especificación ECMA/ISO de CLI?
ECMA 335 / ISO 23271
Common Language Infrastructure (CLI)
Especifica como hay que ajustarse a CTS, CLS y VES
También el Instruction Set de CIL.
¿De qué trata CTS?
- Para codificar en .net, se pueden usar varios lenguajes.
- CTS, se encarga de poner en común las primitivas y las reglas a seguir.
¿De qué trata CLS?
CLS, es un subconjunto de CTS.
CLS, establece las similitudes que deben tener los objetos creados en el código.
¿Qué es Entity Framework?
- Es un Framework ORM para .NET
- Es el competidor de JPA
- ORM significa, object-relational mapper.
- Entity Framework, nos permite consultar datos, abstrayéndonos de las columnas y filas.
¿Qué es LINQ?
Language Integrated Query
Hace consultas independientes de la fuente.
Es una sintaxis de consulta uniforme en C# y VB.NET, usada en .NET.
Diferencia entre DataReader y DataAdapter :
DataReader, mejora el rendimiento, porque lee los datos según están disponibles y solo rellena una línea en memoria.
DataAdapter, recopila todos los datos y rellena una Dataset.
¿Qué es ASP.NET?
Plataforma de Microsoft, para crear aplicaciones, servicios WEB y sitios WEB dinámicos.
Framework. Lanzado en enero de 2002 con .NET FRAMEWORK 1.0
¿Qué categorías de tipos tiene CTS?
- Clases
- Estructuras
- Enumeraciones
- Interfaces
- Delegados
¿Qué es .NET?
Es un FRAMEWORK, MARCO DE TRABAJO o ENTORNO DE TRABAJO, que es independiente del hardware y software y que se usa para el desarrollo de aplicaciones.
Soporta más de 20 lenguajes de programación.
¿Como funciona .NET?
Primero, tenemos un software, escrito en cualquier lenguaje que soporta .NET.
Después, este código, se traduce a CIL (Common Intermediate Language) o MSIL (Microsoft Intermediate Language), por medio de la CLI (Common Language Infrastructure).
CIL es orientado a objetos.
Después, mediante CLR (Common Language Runtime), se compila CIL a CÓDIGO MÁQUINA, para ejecutar el programa.
¿Como es el formato de un Assembly?
Es binario.
¿Como es la estructura interna de un Assembly?
- MANIFIESTO→ Descripción del ensamblaje
- METADATOS→Descripción de los tipos incluidos.
- MSIL/CIL
- RECURSOS→Audio, video, etc
¿Que son los PE?
- Portable Executable
- Es un formato de archivo para ejecutables, Asemblies, DLL’s y otros, para Windows 32 y 64.
- Encapsula.
- Para Linux es ELF.
¿Como es un paquete Nuget?
- Es un archivo con la extensión .nupkg.
- Contiene código compilado, como .dll o .exe.
- También contiene un manifiesto con la versión del paquete.
¿Qué es GraalVM?
Es un software “políglota”, que intenta usar muchos lenguajes, que no soporta .NET
¿Qué estandariza ECMA 334?
- El lenguaje C#
- No es de Microsoft
Características de VB.net
Tiene:
1. Clases, que son para crear objetos, igual que en Java
2. Estructuras, que no permiten herencias, todos sus métodos son públicos y no permiten inicializar datos. Pasa por valor, es decir, que se pasa el contenido de esa variable.
3. Módulos (Modules), que es como un saco de funciones.
Palabras reservadas de VB.NET:
- MustInherit - Tiene que heredar. Entre clases e interfaces.
- NotInheritable - De esta clase, nadie puede heredar. Igual que final de java.
- Interface - Clase con métodos vacíos.
- Implement - Implementar una interface.
- Overridable - Se puede sobreescribir.
- Override - Que estoy sobreescribiendo.
- MustOverride - Debe ser sobreescrito.
- NotOverridable - No sobreescribible.
- Partial - Son trozos de la misma clase.
- Property - Dentro lleva GET y SET. Se usa para meter a mano el valor en el campo.
Más sobre VB.NET
- Tiene Namespaces
- Tiene Imports
- Los Procedimientos se llaman Sub
- Las Function devuelven un valor.
- Existe el concepto Delegate, nos permite crear un puntero a una función.
- Tenemos constructor( NEW) y destructor (FINALIZE)
- Sentencia de control de errores Try Catch Finally
- Using, para definir un bloque en el que se liberen automáticamente recursos, los cuales tendrían que tener implementado IDisposable para que using funcione.
- ME para referenciar la instancia actual. similar a THIS de Java.
- MyBase referencia a la clase de la que estamos heredando. Similar a SUPER de Java.
Cosas de C#
- ENUM, RECORD, INTERFACES Y CLASES. Que son estructuras de programación.
- : equivale a Implements
- Con VIRTUAL, declaramos que un método puede ser sobreescrito con “OVERRIDE”, existiendo código en el hijo. Con ABSTRACT no hay código.
- Con SEALED, declaramos que un método no puede ser sobreescrito o que una clase, no permite que se herede de ella.
- STATIC, para declarar miembros de clase, es decir, métodos o atributos que son solo de la clase.
¿Qué clases/objetos Online usa ADO.net?
SqlConnection - Para conectarnos a una BBDD.
SqlCommand - Para poner nuestras sentencias
SqlDataReader - Para ejecutar el comando
¿Que clases/objetos OFFLINE usa ADO.net?
Dataset - Conjunto desconectado de datos. Coge todos los datos, les hace una foto y ya nos podemos desconectar de la BBDD. Se trabaja con XML.
DataAdapter Trae los datos de la DDBB y rellena el Dataset
¿Qué es Entity Framework (ORM)?
API de alto nivel de .NET
Object Relational Mapping para ADO.NET.
¿Que es Web Forms?
- Es aplicación web para .NET
- Usa ASP.net.
- Es para hacer páginas Web dinámicas.
- Con extensión ASPX
- Todas las páginas heredan de System.Web.UI.Page, que tiene un ciclo de vida.
- Si tenemos vistas muy complejas podemos usar Master Page, para tener un modelo de páginas más flexible, con elementos comunes.
¿Qué es MVC?
- Modelo Vista Controlador
- Es otra de las aplicaciones WEB de .net.
- Hace que una página, en vez de ir primero a la interfaz gráfica de la propia web, para ejecutarse, primero pasa por un controlador y luego ya lo pasa a la ventana del usuario.
¿En C#, como se llama a las anotaciones?
ATRIBUTOS
¿Qué son ASMX?
Servicios Web SOAP.
¿Para qué se usa .NET?
.NET es una plataforma de código abierto, para crear aplicaciones de ESCRITORIO, WEB y MÓVILES, que se pueden ejecutar de forma nativa en cualquier SO.
COMPONENTES DE .NET
- CORAZÓN DE LA PLATAFORMA: .NET FRAMEWORK
- SOPORTA VARIOS LENGUAJES (C#, F#, VB.NET…)
- ESPECIFICACIÓN: ECMA 335 / ISO 23271, COMMON LANGUAGE INFRAESTRUCTURE: VES, CLS, CTS, CIL
- RESULTADO DEL PROCESO DE DESARROLLO, UN BYTECODE LLAMADO CIL
- ASSEMBLY EMPAQUETADO DE CIL EN FORMATO .dll o .exe, que se puede ver con ildasm.exe
- GAC ruta global con ensamblados registrados.
¿Qué es GraalVM?
Es una plataforma que soporta múltiples lenguajes.
¿Qué es JIT?
JUST-IN-TIME COMPILER, QUE TRANSFORMA EL CÓDIGO CIL A CÓDIGO MÁQUINA.
ÚLTIMA VERSIÓN DE .NET FRAMEWORK
LA 4.8.1
¿Qué es VES?
- Aparece descrito en ECMA 335 y es la especificación de como tiene que ser un CLR de un producto .NET compatible.
CONVIVENCIA DE LAS VERSIONES DE .NET
- PRIMERO APARECE .NET FRAMEWORK
- AL MISMO TIEMPO APARECE .NET CORE
- AL FINAL LAS DOS SE FUSIONAN EN .NET
DOS COMPONENTES FUNDAMENTALES DE .NET
- CoreCLR
- CoreFX
¿Cual es la ruta de GAC en .NET Framework 4 en Windows?
%windir%\Microsoft.NET\assembly
¿Qué es Gacutil.exe?
- Es una herramienta para desarrolladores, que viene en el SDK.
- Para instalar GAC’s, que no están por defecto.
¿Qué es .NET Standard Base Class Library?
Establece las clases base que tienen que tener todas las implementaciones de .NET
¿En VB, como se pueden pasar los datos?
- Value Types- Que reciben el contenido del objeto y son:
1. * Todos los tipos NUMÉRICOS
2. * BOOLEANOS, CHAR Y FECHAS
3. * ESTRUCTURAS
4. * ENUMERADORES, tales como, SByte, Short, Integer, Long, Byte, UShort, UInteger y ULong. - REFERENCE TYPES- Se pasa la referencia al valor del objeto y son:
1. * STRING
2. * ARRAYS, aunque sean Value Types
3. * CLASES
4. * DELEGATES
¿Qué dos partes forman la página ASPX?
- HTML + Etiquetas de servidor
- Code-Behind, que son métodos que responden a eventos del usuario sobre la página.
¿Que dos tipos de aplicaciones web tenemos en .NET?
- WEB FORMS
- MVC
¿Qué son servicios web y cuales tenemos?
- Son para que los usen otras aplicaciones.
- Facilitan la integración de aplicaciones.
- SOAP
- REST
Cosas necesarias para crear un servicio web SOAP
- Basado internamente en XML
- Heredar de la clase System.Web.Services.WebService
- “Anotar” con el atributo [WebMethod] aquellas operaciones que queramos publicar en el servicio.
- Con WCF, de Microsoft, se podría implementar algunas funcionalidades extra, eje: WS-Security
Cosas de REST
- Basado en HTTP y Json
- ASP.NET WEB API, PARA IMPLEMENTAR SERVICIOS REST.
- ASP.NET, HEREDA DEL ApiController.
- Usa los verbos HTTP
Entornos de ejecución Web
- Internet Information Server - IIS + runtime asp.net (SOLO EN WINDOWS)
- Kestrel, (equivalente a IIS + asp.net), para Linux
Herramienta dotnet (.net CORE)
Se pueden generar aplicaciones y compilar proyectos.
Se usa en línea de comandos
Herramientas de automatización de desarrollo para .NET
- MSBuild, equivalente a los plugins de Maven–> Compilación, empaquetado, etc
- NuGet, gestión de dependencias.
SMX vs ASPX
ASMX vs ASPX
- ASPX es la extensión de las páginas WEB con WEB FORMS
- ASMX, pertenece a la parte de Servicios WEB SOAP