Componentes de la arquitectura .NET.NET architectural components

Una aplicación de .NET se desarrolla y se ejecuta en una o varias implementaciones de .NET.A .NET app is developed for and runs in one or more implementations of .NET. Las implementaciones de .NET incluyen .NET Framework, .NET Core y Mono.Implementations of .NET include the .NET Framework, .NET Core, and Mono. Hay una especificación de API común a todas las implementaciones de .NET que se denomina .NET Standard.There is an API specification common to all implementations of .NET that's called the .NET Standard. En este artículo, se ofrece una breve introducción a cada uno de estos conceptos.This article gives a brief introduction to each of these concepts.

.NET Standard.NET Standard

.NET Standard es un conjunto de API que se implementan mediante la biblioteca de clases base de una implementación de .NET.The .NET Standard is a set of APIs that are implemented by the Base Class Library of a .NET implementation. Más formalmente, es una especificación de API de .NET que constituyen un conjunto uniforme de contratos contra los que se compila el código.More formally, it's a specification of .NET APIs that make up a uniform set of contracts that you compile your code against. Estos contratos se implementan en cada implementación de .NET.These contracts are implemented in each .NET implementation. Esto permite la portabilidad entre diferentes implementaciones de .NET, de forma que el código se puede ejecutar en cualquier parte.This enables portability across different .NET implementations, effectively allowing your code to run everywhere.

.NET Standard es también una plataforma de destino.The .NET Standard is also a target framework. Si el código tiene como destino una versión de .NET Standard, se puede ejecutar en cualquier implementación de .NET que sea compatible con esa versión de .NET Standard.If your code targets a version of the .NET Standard, it can run on any .NET implementation which supports that version of the .NET Standard.

Para obtener más información sobre .NET Standard y cómo tenerlo como destino, vea el tema .NET Standard.To learn more about the .NET Standard and how to target it, see the .NET Standard topic.

Implementaciones de .NET.NET implementations

Cada implementación de .NET incluye los siguientes componentes:Each implementation of .NET includes the following components:

  • Uno o varios entornos de ejecución.One or more runtimes. Ejemplos: CLR para .NET Framework, CoreCLR y CoreRT para .NET Core.Examples: CLR for .NET Framework, CoreCLR and CoreRT for .NET Core.
  • Una biblioteca de clases que implementa .NET Standard y puede implementar API adicionales.A class library that implements the .NET Standard and may implement additional APIs. Ejemplos: biblioteca de clases base de .NET Framework, biblioteca de clases base de .NET Core.Examples: .NET Framework Base Class Library, .NET Core Base Class Library.
  • Opcionalmente, uno o varios marcos de trabajo de la aplicación.Optionally, one or more application frameworks. Ejemplos: ASP.NET, Windows Forms y Windows Presentation Foundation (WPF) se incluyen en .NET Framework.Examples: ASP.NET, Windows Forms, and Windows Presentation Foundation (WPF) are included in the .NET Framework.
  • Opcionalmente, herramientas de desarrollo.Optionally, development tools. Algunas herramientas de desarrollo se comparten entre varias implementaciones.Some development tools are shared among multiple implementations.

Hay cuatro implementaciones principales de .NET que Microsoft desarrolla y mantiene activamente: .NET Core, .NET Framework, Mono y UWP.There are four primary .NET implementations that Microsoft actively develops and maintains: .NET Core, .NET Framework, Mono, and UWP.

Núcleo de .NET.NET Core

.NET Core es una implementación multiplataforma de .NET diseñada para controlar cargas de trabajo de servidor y en la nube a escala..NET Core is a cross-platform implementation of .NET and designed to handle server and cloud workloads at scale. Se ejecuta en Windows, macOS y Linux.It runs on Windows, macOS and Linux. Implementa .NET Standard, de forma que cualquier código que tenga como destino .NET Standard se puede ejecutar en .NET Core.It implements the .NET Standard, so code that targets the .NET Standard can run on .NET Core. ASP.NET Core se ejecuta en .NET Core.ASP.NET Core runs on .NET Core.

Para obtener más información sobre .NET Core, consulte Guía de .NET Core y Selección entre .NET Core y .NET Framework para aplicaciones de servidor.To learn more about .NET Core, see the .NET Core Guide and Choosing between .NET Core and .NET Framework for server apps.

.NET Framework.NET Framework

.NET Framework es la implementación de .NET original que existe desde 2002.The.NET Framework is the original .NET implementation that has existed since 2002. Es el mismo .NET Framework que los desarrolladores existentes de .NET han usado siempre.It's the same .NET Framework that existing .NET developers have always used. Las versiones 4.5 y posteriores implementan .NET Standard, de forma que el código que tiene como destino .NET Standard se puede ejecutar en esas versiones de .NET Framework.Versions 4.5 and later implement the .NET Standard, so code that targets the .NET Standard can run on those versions of the .NET Framework. Contiene API específicas de Windows adicionales, como API para el desarrollo de escritorio de Windows con Windows Forms y WPF.It contains additional Windows-specific APIs, such as APIs for Windows desktop development with Windows Forms and WPF. .NET Framework está optimizado para crear aplicaciones de escritorio de Windows.The .NET Framework is optimized for building Windows desktop applications.

Para más información sobre .NET Framework, consulte la Guía de .NET Framework.To learn more about the .NET Framework, see the .NET Framework Guide.

MonoMono

Mono es una implementación de .NET que se usa principalmente cuando se requiere un entorno de ejecución pequeño.Mono is a .NET implementation that is mainly used when a small runtime is required. Es el entorno de ejecución que activa las aplicaciones de Xamarin en Android, Mac, iOS, tvOS y watchOS, y se centra principalmente en una superficie pequeña.It is the runtime that powers Xamarin applications on Android, Mac, iOS, tvOS and watchOS and is focused primarily on a small footprint. Mono también proporciona juegos creados con el motor de Unity.Mono also powers games built using the Unity engine.

Admite todas las versiones de .NET Standard publicadas actualmente.It supports all of the currently published .NET Standard versions.

Históricamente, Mono implementaba la API de .NET Framework más grande y emulaba algunas de las funciones más populares en Unix.Historically, Mono implemented the larger API of the .NET Framework and emulated some of the most popular capabilities on Unix. A veces, se usa para ejecutar aplicaciones de .NET que se basan en estas capacidades en Unix.It is sometimes used to run .NET applications that rely on those capabilities on 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.Mono is typically used with a just-in-time compiler, but it also features a full static compiler (ahead-of-time compilation) that is used on platforms like iOS.

Para más información sobre Mono, consulte la documentación de Mono.To learn more about Mono, see the Mono documentation.

Plataforma universal de Windows (UWP)Universal Windows Platform (UWP)

UWP es una implementación de .NET que se usa para compilar aplicaciones Windows modernas y táctiles y software para Internet de las cosas (IoT).UWP is an implementation of .NET that is used for building modern, touch-enabled Windows applications and software for the Internet of Things (IoT). Se ha diseñado para unificar los diferentes tipos de dispositivos de destino, incluidos equipos, tabletas, phablets, teléfonos e incluso la consola Xbox.It's designed to unify the different types of devices that you may want to target, including PCs, tablets, phablets, phones, and even the 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).UWP provides many services, such as a centralized app store, an execution environment (AppContainer), and a set of Windows APIs to use instead of Win32 (WinRT). Las aplicaciones pueden escribirse en C++, C#, VB.NET y JavaScript.Apps can be written in C++, C#, VB.NET, and JavaScript. Al usar C# y VB.NET, .NET Core proporciona las API de .NET.When using C# and VB.NET, the .NET APIs are provided by .NET Core.

Para obtener más información sobre UWP, vea Introducción a la Plataforma universal de Windows.To learn more about UWP, see Intro to the Universal Windows Platform.

Entornos de tiempo de ejecución .NET.NET runtimes

Un entorno de ejecución es el entorno de ejecución de un programa administrado.A runtime is the execution environment for a managed program. El sistema operativo forma parte del entorno de ejecución, pero no del entorno de ejecución .NET.The OS is part of the runtime environment but is not part of the .NET runtime. Estos son algunos ejemplos de los entornos de ejecución .NET:Here are some examples of .NET runtimes:

  • Common Language Runtime (CLR) para .NET FrameworkCommon Language Runtime (CLR) for the .NET Framework
  • Core Common Language Runtime (CoreCLR) para .NET CoreCore Common Language Runtime (CoreCLR) for .NET Core
  • .NET Native para la Plataforma universal de Windows.NET Native for Universal Windows Platform
  • El entorno de ejecución Mono para Xamarin.iOS, Xamarin.Android, Xamarin.Mac y el marco de escritorio de MonoThe Mono runtime for Xamarin.iOS, Xamarin.Android, Xamarin.Mac, and the Mono desktop framework

Herramientas de .NET e infraestructura común.NET tooling and common infrastructure

Tiene acceso a un amplio conjunto de herramientas y componentes de infraestructura que funcionan con todas las implementaciones de .NET.You have access to an extensive set of tools and infrastructure components that work with every implementation of .NET. Se incluyen, entre otros:These include, but are not limited to the following:

  • Los lenguajes .NET y sus compiladoresThe .NET languages and their compilers
  • El sistema de proyectos de .NET (basado en archivos .csproj, .vbproj y .fsproj)The .NET project system (based on .csproj, .vbproj, and .fsproj files)
  • MSBuild, el motor de compilación usado para compilar proyectosMSBuild, the build engine used to build projects
  • NuGet, administrador de paquetes de Microsoft para .NETNuGet, Microsoft's package manager for .NET
  • Herramientas de organización de compilación de código abierto, como CAKE y FAKEOpen-source build orchestration tools, such as CAKE and FAKE

Vea tambiénSee also