Glosario de .NET

El objetivo principal de este glosario es aclarar los significados de algunos de los términos y acrónimos que aparecen frecuentemente en la documentación de .NET.

AOT

Compilador Ahead Of Time.

Similar a JIT, este compilador también convierte IL en código de máquina. A diferencia de la compilación JIT, la compilación AOT ocurre antes de que la aplicación se ejecute y, normalmente, se realiza en un equipo diferente. Dado que las cadenas de la herramienta de AOT no se compilan en tiempo de ejecución, no tienen que minimizar el tiempo dedicado a compilar. Esto significa que pueden dedicar más tiempo a la optimización. Puesto que el contexto de AOT es toda la aplicación, el compilador AOT también realiza vinculación entre módulos y el análisis de todo el programa, lo que significa que se siguen todas las referencias y se genera un archivo ejecutable único.

Vea CoreRT y .NET Native.

Modelo de aplicación

Una API específica de la carga de trabajo. A continuación se muestran algunos ejemplos:

  • ASP.NET
  • ASP.NET Web API
  • Entity Framework (EF)
  • Windows Presentation Foundation (WPF)
  • Windows Communication Foundation (WCF)
  • Windows Workflow Foundation (WF)
  • Windows Forms (WinForms)

ASP.NET

La implementación de ASP.NET original que se incluye con .NET Framework, también conocida como ASP.NET 4.x y ASP.NET Framework.

A veces, ASP.NET es un término genérico que hace referencia tanto a la implementación original de ASP.NET como a ASP.NET Core. El significado de que el término lleva en cualquier instancia determinada viene determinado por el contexto. Haga referencia a ASP.NET 4.x cuando desee dejar claro que no usa ASP.NET para indicar ambas implementaciones.

Vea la documentación de ASP.NET.

ASP.NET Core

Implementación multiplataforma, de alto rendimiento y de código abierto de ASP.NET.

Vea la documentación de ASP.NET Core.

ensamblado

Un archivo .dll o .exe que puede contener una colección de API a la que puede llamarse mediante aplicaciones u otros ensamblados.

Un ensamblado contiene tipos como interfaces, clases, estructuras, enumeraciones y delegados. A veces, se hace referencia a los ensamblados de la carpeta bin de un proyecto como archivos binarios. Vea también biblioteca.

BCL

Biblioteca de clases base.

Un conjunto de bibliotecas que conforman los espacios de nombres de System.* (y hasta cierto punto los de Microsoft.*). BCL es un marco de nivel inferior de uso general donde se compilan marcos de trabajo de la aplicación de nivel superior, como ASP.NET Core.

El código fuente de la BCL para .NET se encuentra en el repositorio en tiempo de ejecución de .NET. La mayoría de estas API de BCL también están disponibles en .NET Framework, por lo que puede considerar este código fuente como una bifurcación del de la BCL de .NET Framework.

Los siguientes términos a menudo hacen referencia a la misma colección de API a las que se refiere BCL:

CLR

Common Language Runtime.

El significado exacto depende del contexto. Common Language Runtime suele hacer referencia al entorno de ejecución de .NET Framework o al entorno de ejecución de .NET.

CLR controla la asignación y administración de memoria. CLR es también una máquina virtual que no solo ejecuta aplicaciones, sino que también genera y compila código sobre la marcha mediante un compilador JIT.

La implementación de CLR para .NET Framework es solo para Windows.

La implementación de CLR para .NET (también conocida como CORE CLR) se compila a partir de la misma base de código que clR de .NET Framework. Originalmente, CoreCLR era el entorno de ejecución de Silverlight y estaba diseñado para ejecutarse en varias plataformas, concretamente Windows y OS X. Sigue siendo un entorno de ejecución multiplataforma y ahora incluye compatibilidad con muchas distribuciones de Linux.

Vea también entorno de ejecución.

CoreCLR

Common Language Runtime para .NET.

Vea CLR.

CoreRT

A diferencia de CLR, CoreRT no es una máquina virtual, lo que significa que no incluye las funciones para generar y ejecutar código sobre la marcha porque no incluye un compilador JIT. En cambio, incluye GC, reflexión y capacidad de identificación del tipo en tiempo de ejecución (RTTI). Con todo, su sistema de tipos está diseñado para que no sean necesarios los metadatos para la reflexión. No requerir los metadatos permite tener una cadena de herramientas de AOT que puede vincular metadatos superfluos y (más importante) identificar código que no usa la aplicación. CoreRT está en desarrollo.

Vea Introducción a CoreRT y Laboratorio del entorno de ejecución de .NET.

multiplataforma

La capacidad para desarrollar y ejecutar una aplicación que se puede usar en varios sistemas operativos diferentes, como Linux, Windows e iOS, sin tener que volver a escribir específicamente para cada uno de ellos. Esto permite reutilizar el código y posibilita la coherencia entre aplicaciones en distintas plataformas.

Vea la plataforma.

ecosistema

Todo el software en tiempo de ejecución, las herramientas de desarrollo y los recursos de la comunidad que se usan para compilar y ejecutar aplicaciones de una tecnología determinada.

El término "ecosistema de .NET" se diferencia de términos parecidos como "pila de .NET" en que incluye bibliotecas y aplicaciones de terceros. Aquí se muestra un ejemplo en una frase:

  • "La finalidad de .NET Standard ha sido establecer una mayor uniformidad en el ecosistema de .NET".

marco de trabajo

En general, una colección completa de API que facilita el desarrollo y la implementación de aplicaciones que se basan en una tecnología concreta. En este sentido general, ASP.NET Core y Windows Forms son ejemplos de marcos de trabajo de la aplicación. Las palabras marco y biblioteca se usan a menudo como sinónimos.

Los siguientes términos tienen un significado diferente:

En ocasiones, "marco" hace referencia a una implementación de .NET.

Bibliotecas de marco

El significado depende del contexto. Puede hacer referencia a las bibliotecas de marcos de .NET, en cuyo caso hace referencia a las mismas bibliotecas a las que hace referencia BCL . También puede hacer referencia a las bibliotecas de ASP.NET Core Framework , que se basan en la BCL y proporcionan API adicionales para aplicaciones web.

GC

Recolector de elementos no utilizados.

El recolector de elementos no utilizados es una implementación de administración de memoria automática. GC libera la memoria ocupada por objetos que ya no se usan.

Vea Recolección de elementos no utilizados.

IL

Lenguaje intermedio.

Los lenguajes .NET de nivel alto, como C#, compilan en un conjunto de instrucciones independiente del hardware, lo que se denomina lenguaje intermedio (IL). A veces, se hace referencia al IL como MSIL (IL de Microsoft) o CIL (Common IL).

JIT

Compilador Just-In-Time.

Similar a AOT, este compilador convierte el IL en código de máquina que entienda el procesador. A diferencia de AOT, la compilación JIT se produce a petición y se lleva a cabo en el mismo equipo en que debe ejecutarse el código. Puesto que la compilación JIT tiene lugar durante la ejecución de la aplicación, el tiempo de compilación es parte del tiempo de ejecución. Por tanto, los compiladores JIT tienen que compensar el tiempo invertido en optimizar el código con el ahorro que puede generar el código resultante. Pero un JIT conoce el hardware real y puede liberar a los desarrolladores de tener que enviar diferentes implementaciones.

implementación de .NET

Una implementación de .NET incluye lo siguiente:

  • Uno o varios entornos de ejecución. Ejemplos: CLR y CoreRT.
  • Una biblioteca de clases que implementa una versión de .NET Standard y puede incluir API adicionales. Ejemplos: las ACL para .NET Framework y .NET.
  • Opcionalmente, uno o varios marcos de trabajo de la aplicación. Ejemplos: ASP.NET, Windows Forms y WPF se incluyen en .NET Framework y .NET.
  • Opcionalmente, herramientas de desarrollo. Algunas herramientas de desarrollo se comparten entre varias implementaciones.

Ejemplos de implementaciones de .NET:

Para más información, consulte Implementaciones de .NET.

biblioteca

Una colección de API que pueden llamarse mediante aplicaciones u otras bibliotecas. Una biblioteca de .NET se compone de uno o varios ensamblados.

Las palabras biblioteca y marco de trabajo se usan a menudo como sinónimos.

Mono

Una implementación de código abierto multiplataforma.NET que se usa cuando se requiere un entorno de ejecución pequeño. Es el tiempo de ejecución que impulsa las aplicaciones de Xamarin en Android, Mac, iOS, tvOS y watchOS y se centra principalmente en las aplicaciones que requieren una superficie pequeña.

Admite todas las versiones de .NET Standard publicadas actualmente.

Históricamente, Mono implementaba la API de .NET Framework más grande y emulaba algunas de las funciones más populares en Unix. A veces se usa para ejecutar aplicaciones .NET que dependen de esas funcionalidades en Unix.

Mono se suele usar con un compilador Just-In-Time, pero también incluye un compilador estático completo (compilación Ahead Of Time) que se usa en plataformas como iOS.

Para obtener más información, vea la documentación de Mono.

AOT nativo

Modo de implementación en el que la aplicación está autocontenida y se compila con antelación en código nativo en el momento de la publicación. Las aplicaciones de AOT nativa no usan un compilador JIT en tiempo de ejecución. Se pueden ejecutar en máquinas que no tengan instalado el entorno de ejecución de .NET.

Para más información, consulte Implementación con AOT nativa.

.NET

.NET tiene dos significados y el que está previsto depende del contexto:

  • .NET se puede usar como término paraguas para .NET Standard y todas las implementaciones y cargas de trabajo de .NET.
  • .NET se refiere con más frecuencia a la implementación de código abierto multiplataforma y de alto rendimiento de .NET que solía llamarse .NET Core. También se puede denominar .NET 5 (y .NET Core) y versiones posteriores o simplemente .NET 5+.

Por ejemplo, el primer significado está pensado en frases como "implementaciones de .NET". El segundo significado está pensado en nombres como el SDK de .NET y la CLI de .NET. En ausencia de contexto que indica el primer significado está previsto, supongamos que se pretende el segundo significado.

Las versiones anteriores de .NET se conocen como .NET Core 1 a 3.1. Los números de versión omiten 4 y la versión que siguió a la versión 3.1 se conoce como .NET 5, quitando "Core" del nombre. Se ha hecho quitar "Core" para resaltar que esta implementación de .NET es la que se recomienda para todo el desarrollo nuevo. La omisión de la versión 4 se ha realizado para ayudar a evitar confundir esta implementación más reciente de .NET con la implementación anterior que se conoce como .NET Framework. La versión actual de .NET Framework es 4.8.1.

.NET siempre se escribe todo en mayúsculas, nunca ".Net".

Vea Documentación de .NET.

CLI de .NET

Cadena de herramientas multiplataforma para desarrollar aplicaciones y bibliotecas para .NET. También conocido como la CLI de .NET Core.

Vea CLI de .NET.

.NET Core

Vea .NET.

.NET Framework

Una implementación de .NET que se ejecuta solo en Windows. Incluye Common Language Runtime (CLR), la biblioteca de clases base (BCL) y las bibliotecas de marco de trabajo de la aplicación, como ASP.NET, Windows Forms y WPF.

Vea Guía de .NET Framework.

.NET Native

Cadena de herramientas del compilador que genera código nativo Ahead Of Time (AOT), en lugar de Just-In-Time (JIT).

La compilación se produce en el equipo del desarrollador, de forma similar a cómo funcionan el compilador y el enlazador de C++. Quita el código que no se usa y emplea más tiempo en optimizarlo. Extrae código de bibliotecas y lo combina en el archivo ejecutable. El resultado es un módulo único que representa toda la aplicación.

UWP es el marco de trabajo de la aplicación compatible con .NET Native.

Vea Documentación de .NET Native.

.NET SDK

Conjunto de bibliotecas y herramientas que permiten a los desarrolladores crear aplicaciones y bibliotecas para .NET. También conocido como SDK de .NET Core.

Incluye la CLI de .NET para compilar aplicaciones, el entorno de ejecución, y las bibliotecas de .NET para compilar y ejecutar aplicaciones, y el ejecutable dotnet (dotnet.exe) que ejecuta comandos de la CLI y ejecuta aplicaciones.

Vea Información general sobre el SDK de .NET.

.NET Standard

Una especificación formal de las API de .NET que están disponibles en cada implementación de .NET.

La especificación de .NET Standard a veces se denomina biblioteca. Dado que una biblioteca incluye implementaciones de API, no solo especificaciones (interfaces), es confuso denominar "biblioteca" a .NET Standard.

Vea .NET Standard.

NGen

Generación (de imágenes) nativas.

Esta tecnología se puede considerar como un compilador JIT persistente. Normalmente, compila código en el equipo en que se ejecuta el código, pero la compilación se suele producir durante la instalación.

paquete

Un paquete de NuGet, o un paquete sin más, es un archivo .zip con uno o varios ensamblados del mismo nombre junto con metadatos adicionales, como el nombre del autor.

El archivo .zip tiene una extensión .nupkg y puede contener recursos, como archivos .dll y archivos de .xml , para su uso con varias plataformas de destino y versiones. Cuando se instala en una aplicación o biblioteca, se seleccionan los recursos adecuados en función de la plataforma de destino especificada por la aplicación o biblioteca. Los recursos que definen la interfaz se encuentran en la carpeta ref y los recursos que definen la implementación se encuentran en la carpeta lib.

platform

Un sistema operativo y el hardware en que se ejecuta, como Windows, macOS, Linux, iOS y Android.

Aquí tiene ejemplos de uso en frases:

  • ".NET Core es una implementación multiplataforma de .NET".
  • "Los perfiles de PCL representan plataformas de Microsoft, mientras que .NET Standard es independiente de la plataforma".

La documentación heredada de .NET a veces usa el término "plataforma de .NET" para referirse a una implementación de .NET o a la pila de .NET que incluyen todas las implementaciones. Estos dos usos tienden a confundirse con el significado principal (sistema operativo o hardware), por tanto, tratamos de evitar estos usos.

"Plataforma" tiene un significado diferente en "plataforma del desarrollador", ya que hace referencia al software que proporciona herramientas y bibliotecas para compilar y ejecutar aplicaciones. .NET es una plataforma para el desarrollo de contenido de código abierto multiplataforma que permite compilar una gran variedad de tipos de aplicaciones.

POCO

Un objeto POCO, o un clásico objeto CLR o de clase, es una estructura de datos de .NET que solo contiene propiedades o campos públicos. Un POCO no debe contener ningún otro miembro, como:

  • methods
  • events
  • delegados

Estos objetos se usan principalmente como objetos de transferencia de datos (DTO). Un POCO puro no heredará otro objeto ni implementará una interfaz. Es habitual que los POCO se usen con la serialización.

motor en tiempo de ejecución

En términos generales, el entorno de ejecución de un programa administrado. El sistema operativo forma parte del entorno de ejecución, pero no del entorno de ejecución .NET. Estos son algunos ejemplos de los entornos de ejecución de .NET en este sentido de la palabra:

  • Common Language Runtime (CLR)
  • .NET Native (para UWP)
  • Entorno de ejecución Mono

El término "entorno de ejecución" tiene un significado diferente en algunos contextos:

  • Entorno de ejecución de .NET en la página de descarga de .NET 5.

    Puede descargar el entorno de ejecución de .NET u otros, como el entorno de ejecución de ASP.NET Core. En este caso, un entorno de ejecución es el conjunto de componentes que se deben instalar en un equipo para ejecutar una aplicación dependiente del marco en el equipo. El entorno de ejecución de .NET incluye el CLR y el marco compartido de .NET, que proporciona la BCL.

  • Bibliotecas en tiempo de ejecución de .NET

    Hace referencia a las mismas bibliotecas a las que hace referencia BCL. Pero otros entornos de ejecución, como el de ASP.NET Core, tienen otros marcos compartidos, con bibliotecas adicionales que se basan en la BCL.

  • Identificador en tiempo de ejecución (RID).

    Aquí, tiempo de ejecución hace referencia a la plataforma del sistema operativo y a la arquitectura de la CPU en la que se ejecuta una aplicación de .NET, por ejemplo, linux-x64.

  • En ocasiones, se usa "entorno de ejecución" para indicar una implementación de .NET, como en los ejemplos siguientes:

    • "Los diversos entornos de ejecución .NET implementan versiones concretas de .NET Standard. ... Cada versión del entorno de ejecución de .NET anuncia la última versión de .NET Standard que admite...".
    • "Las bibliotecas diseñadas para ejecutarse en varios entornos de ejecución deben tener como destino este marco de trabajo" (en referencia a .NET Standard)

marco compartido

El significado depende del contexto. El marco compartido de .NET hace referencia a las bibliotecas incluidas en el entorno de ejecución de .NET. En este caso, el marco compartido para .NET hace referencia a las mismas bibliotecas a las que hace referencia BCL .

Hay otros marcos compartidos. El marco compartido de ASP.NET Core hace referencia a las bibliotecas incluidas en el entorno de ejecución de ASP.NET Core, que incluye la BCL y API adicionales para su uso por parte de aplicaciones web.

En el caso de las aplicaciones dependientes del marco, el marco compartido consta de bibliotecas que se encuentran en los ensamblados instalados en una carpeta en el equipo que ejecuta la aplicación. En el caso de las aplicaciones independientes, los ensamblados de marco compartido se incluyen con la aplicación.

Para obtener más información, vea Profundización en los primitivos de .NET Core, parte 2: el marco compartido.

pila

Un conjunto de tecnologías de programación que se usan para compilar y ejecutar aplicaciones.

La "pila de .NET" hace referencia a .NET Standard y a todas las implementaciones de .NET. La frase "una pila de .NET" puede hacer referencia a una implementación de .NET.

versión de .NET Framework de destino

La colección de API de las que depende una aplicación o biblioteca de .NET.

Una aplicación o biblioteca puede tener como destino una versión de .NET Standard (por ejemplo, .NET Standard 2.0), que es la especificación de un conjunto estándar de API de todas las implementaciones de .NET. Una aplicación o biblioteca también puede tener como destino una versión de una implementación específica de .NET; en este caso, obtiene acceso a las API específicas de la implementación. Por ejemplo, una aplicación que tenga como destino Xamarin.iOS obtiene acceso a contenedores de la API de iOS proporcionados por Xamarin.

Para algunas plataformas de destino (por ejemplo, .NET Framework), las API disponibles se definen mediante los ensamblados que instala una implementación de .NET en un sistema, que puede incluir API de marco de aplicación (por ejemplo, ASP.NET, WinForms). En el caso de las plataformas de destino basadas en paquetes, las API las definen los paquetes instalados en la aplicación o biblioteca.

Vea Plataformas de destino.

TFM

Moniker de la plataforma de destino.

Un formato de token normalizado para especificar la plataforma de destino de una aplicación o biblioteca de .NET. Se suele hacer referencia a las plataformas de destino mediante un nombre corto, como net462. Existen TFM de formato largo (como .NETFramework,Version=4.6.2), pero no se usan normalmente para especificar una plataforma de destino.

Vea Plataformas de destino.

UWP

Plataforma universal de Windows.

Una implementación de .NET que se usa para compilar aplicaciones Windows táctiles y software para Internet de las cosas (IoT). Está diseñado para unificar los diferentes tipos de dispositivos a los que podrías querer dirigirse, incluidos equipos, tabletas, teléfonos e incluso xbox. UWP proporciona muchos servicios, como una tienda de aplicaciones centralizada, un entorno de ejecución (AppContainer) y un conjunto de API de Windows para usar en lugar de Win32 (WinRT). Pueden escribirse aplicaciones en C++, C#, Visual Basic y JavaScript. Cuando se usa C# y Visual Basic, .NET proporciona las API de .NET.

carga de trabajo

Un tipo de aplicación que alguien compila. Más genérico que modelo de aplicación. Por ejemplo, en la parte superior de todas las páginas de documentación de .NET, incluida esta, hay una lista desplegable para Cargas de trabajo, que permite cambiar a la documentación de Web, Dispositivos móviles, Nube, Escritorio y Machine Learning y datos.

En algunos contextos, carga de trabajo hace referencia a una colección de características de Visual Studio que puede elegir instalar para admitir un tipo determinado de aplicación. Para obtener un ejemplo, vea Selección de una carga de trabajo.

Vea también