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..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..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 .NET Standard, it can run on any .NET implementation that supports that version of .NET Standard.

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

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 y .NET Core.Examples: ASP.NET, Windows Forms, and Windows Presentation Foundation (WPF) are included in the .NET Framework and .NET Core.
  • 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.

.NET Core.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, Windows Forms y Windows Presentation Foundation (WPF) se ejecutan todos en .NET Core.ASP.NET Core, Windows Forms, and Windows Presentation Foundation (WPF) all run 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..NET Framework is the original .NET implementation that has existed since 2002. 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 .NET Standard, so code that targets .NET Standard can run on those versions of .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..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 .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 Xamarin en Android, macOS, iOS, tvOS y watchOS, y se centra principalmente en una superficie pequeña.It is the runtime that powers Xamarin applications on Android, macOS, 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, 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, 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). Pueden escribirse aplicaciones en C++, C#, Visual Basic y JavaScript.Apps can be written in C++, C#, Visual Basic, and JavaScript. Al usar C# y Visual Basic, .NET Core proporciona las API de .NET.When using C# and Visual Basic, 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. Estas herramientas y componentes incluyen:These tools and components include:

  • 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

Estándares aplicablesApplicable standards

El lenguaje C# y las especificaciones de Common Language Infrastructure (CLI) se normalizan a través de Ecma International®.The C# Language and the Common Language Infrastructure (CLI) specifications are standardized through Ecma International®. Las primeras ediciones de estos estándares las publicó ECMA en diciembre de 2001.The first editions of these standards were published by Ecma in December 2001.

Las revisiones posteriores de los estándares las han desarrollado los grupos de tareas TC49-TG2 (C#) y TC49-TG3 (CLI) en el Comité Técnico de Lenguajes de Programación (TC49) y adoptadas por la Asamblea general de ECMA y, posteriormente, por ISO/IEC JTC 1 a través del proceso Fast-Track de ISO.Subsequent revisions to the standards have been developed by the TC49-TG2 (C#) and TC49-TG3 (CLI) task groups within the Programming Languages Technical Committee (TC49), and adopted by the Ecma General Assembly and subsequently by ISO/IEC JTC 1 via the ISO Fast-Track process.

Estándares más recientesLatest standards

Los siguientes documentos oficiales de ECMA están disponibles para C# y la CLI (TR-84):The following official Ecma documents are available for C# and the CLI (TR-84):

  • El estándar del lenguaje C# (versión 5.0) : ECMA-334.pdfThe C# Language Standard (version 5.0): ECMA-334.pdf
  • Common Language Infrastructure: disponible en los formatos pdf y zip.The Common Language Infrastructure: Available in pdf form and zip form.
  • Información derivada del archivo XML de la parte IV: disponible en los formatos pdf y zip.Information Derived from the Partition IV XML File: Available in pdf and zip formats.

Los documentos ISO/IEC oficiales están disponibles en la página ISO/IEC Estándares disponibles públicamente.The official ISO/IEC documents are available from the ISO/IEC Publicly Available Standards page. Estos vínculos son directos de esa página:These links are direct from that page:

  • Tecnología de la información: lenguajes de programación, C# : ISO/IEC 23270:2018Information technology - Programming languages - C#: ISO/IEC 23270:2018
  • Tecnologías de la información: Common Language Infrastructure (CLI), partes I a VI: ISO/IEC 23271:2012Information technology — Common Language Infrastructure (CLI) Partitions I to VI: ISO/IEC 23271:2012
  • Tecnología de la información: Common Language Infrastructure (CLI); informe técnico sobre la información derivada del archivo XML de la parte IV: ISO/IEC TR 23272:2011Information technology — Common Language Infrastructure (CLI) — Technical Report on Information Derived from Partition IV XML File: ISO/IEC TR 23272:2011

Vea tambiénSee also