.NET Flashcards
Lenguajes que soporta .NET
- c#
- f#
- vb.net
Qué es es el CLR
Es como la JRE de java
Estructura de plataforma .NET
- 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)
Qué es la FCL (Framework Class Library)
Es la colección de librerías básicas en .net algo así como la JSE de java
Paquetes, ficheros compilados y codigo fuente
- 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)
¿Qué significado tienen las versiones de .NET?
- 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
.NET Framework / .Net Core / Xamarin
- Clases base
- .NET BCL –> (Basic Class Library)
- CoreFX –>
- Xamarin BCL –> (Basic Class Library)
.Net Standad
Despues de tener tres versiones vamos al Standard y unificamos el BCL en .NET Standard BCL
¿Qué es Dotnet?
Herramienta de línea de comandos .NET (CLI - Common Language Interface)
¿Qué es CLS y CTS?
Son un conjunto de requisitos que tienen que cumplir los lenguajes de programación en los que se quiera programar para .NET.
¿Qué es GAC en .NET?
GAC- Global Assembly Cache (ruta global con ensamblados registrados)
¿Qué es Especificación de la plataforma ECMA 335 / ISO 23271?
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)
Visual Basic .net
- 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”
- Se podrían declarar “ReadOnly” o “WriteOnly
- 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.
C# .net
- 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(); }
Herramienta en .NET para gestión de dependencias
NUGET
Herramienta en .NET para automatizar la construcción (build)
MSBuild
ADO.Net
- Dataset es un conjunto desconectado de datos
- Dataset se tiene que rellenar usando un DataAdapter
- Dataset puede tener datos de 1 o varias tablas
¿Qué es Entity Framework?
Es el ORM para .NET (como jpa Java)
Que es LINQ
Consultas independientes de la fuente (memoria, bbdd, xml …)
Infraestructura .NET (Aplicaciones Web)
- 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
Aplicaciones Web .NET -WebForms
- 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.
Aplicaciones Web .NET -MVC
- 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
Aplicaciones Web .NET -Servicios Web SOAP - ASMX
- 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]
Aplicaciones Web .NET -Servicios Web REST