Información general acerca de .NET FrameworkOverview of the .NET Framework

.NET Framework es una tecnología que admite la compilación y ejecución de la última generación de aplicaciones y Servicios web XML.The .NET Framework is a technology that supports building and running the next generation of apps and XML Web services. El diseño de .NET Framework está enfocado a cumplir los objetivos siguientes:The .NET Framework is designed to fulfill the following objectives:

  • Proporcionar un entorno coherente de programación orientada a objetos, en el que el código de los objetos se pueda almacenar y ejecutar de forma local, ejecutar de forma local pero distribuida en Internet o ejecutar de forma remota.To provide a consistent object-oriented programming environment whether object code is stored and executed locally, executed locally but Internet-distributed, or executed remotely.

  • Proporcionar un entorno de ejecución de código que reduzca lo máximo posible la implementación de software y los conflictos de versiones.To provide a code-execution environment that minimizes software deployment and versioning conflicts.

  • Ofrecer un entorno de ejecución de código que promueva la ejecución segura del mismo, incluso del creado por terceras personas desconocidas o que no son de plena confianza.To provide a code-execution environment that promotes safe execution of code, including code created by an unknown or semi-trusted third party.

  • Proporcionar un entorno de ejecución de código que elimine los problemas de rendimiento de los entornos en los que se utilizan scripts o intérpretes de comandos.To provide a code-execution environment that eliminates the performance problems of scripted or interpreted environments.

  • Ofrecer al programador una experiencia coherente entre tipos de aplicaciones muy diferentes, como las basadas en Windows o en Web.To make the developer experience consistent across widely varying types of apps, such as Windows-based apps and Web-based apps.

  • Basar toda la comunicación en estándares del sector para asegurar que el código de .NET Framework se puede integrar con otros tipos de código.To build all communication on industry standards to ensure that code based on the .NET Framework integrates with any other code.

Nota

Para obtener una introducción general a .NET Framework para usuarios y desarrolladores, vea Introducción.For a general introduction to the .NET Framework for both users and developers, see Getting Started.

.NET Framework consta de dos componentes principales: Common Language Runtime (CLR) y la biblioteca de clases de .NET Framework.The .NET Framework consists of the common language runtime (CLR) and the .NET Framework class library. Common Language Runtime es el fundamento de .NET Framework.The common language runtime is the foundation of the .NET Framework. El tiempo de ejecución se puede considerar como un agente que administra el código en tiempo de ejecución y proporciona servicios centrales, como la administración de memoria, la administración de subprocesos y la comunicación remota, al tiempo que aplica una seguridad de tipos estricta y otras formas de especificación del código que promueven su seguridad y solidez.Think of the runtime as an agent that manages code at execution time, providing core services such as memory management, thread management, and remoting, while also enforcing strict type safety and other forms of code accuracy that promote security and robustness. De hecho, el concepto de administración de código es un principio básico del motor en tiempo de ejecución.In fact, the concept of code management is a fundamental principle of the runtime. El código destinado al tiempo de ejecución se denomina código administrado, a diferencia del resto de código, que se conoce como código no administrado.Code that targets the runtime is known as managed code, while code that doesn't target the runtime is known as unmanaged code. La biblioteca de clases es una colección completa orientada a objetos de tipos reutilizables que se pueden emplear para desarrollar aplicaciones que abarcan desde las tradicionales herramientas de interfaz gráfica de usuario (GUI) o de línea de comandos hasta las aplicaciones basadas en las innovaciones más recientes proporcionadas por ASP.NET, como formularios Web Forms y Servicios web XML.The class library is a comprehensive, object-oriented collection of reusable types that you use to develop apps ranging from traditional command-line or graphical user interface (GUI) apps to apps based on the latest innovations provided by ASP.NET, such as Web Forms and XML Web services.

.NET Framework puede hospedarse en componentes no administrados que cargan Common Language Runtime en sus procesos e inician la ejecución de código administrado, con lo que se crea un entorno de software que usa características administradas y no administradas.The .NET Framework can be hosted by unmanaged components that load the common language runtime into their processes and initiate the execution of managed code, thereby creating a software environment that exploits both managed and unmanaged features. En .NET Framework no solo se ofrecen varios hosts de tiempo de ejecución, sino que también se admite el desarrollo de estos hosts por parte de terceros.The .NET Framework not only provides several runtime hosts but also supports the development of third-party runtime hosts.

Por ejemplo, ASP.NET hospeda el motor en tiempo de ejecución para proporcionar un entorno de servidor escalable para el código administrado.For example, ASP.NET hosts the runtime to provide a scalable, server-side environment for managed code. ASP.NET trabaja directamente con el tiempo de ejecución para habilitar aplicaciones de ASP.NET y Servicios web XML, que se tratan más adelante en este tema.ASP.NET works directly with the runtime to enable ASP.NET apps and XML Web services, both of which are discussed later in this topic.

Internet Explorer es un ejemplo de aplicación no administrada que hospeda el tiempo de ejecución (en forma de una extensión de tipo MIME).Internet Explorer is an example of an unmanaged app that hosts the runtime (in the form of a MIME type extension). Al usar Internet Explorer para hospedar el motor en tiempo de ejecución, puede incrustar componentes administrados o controles de Windows Forms en documentos HTML.Using Internet Explorer to host the runtime enables you to embed managed components or Windows Forms controls in HTML documents. Al hospedar el tiempo de ejecución de esta manera se hace posible el uso de código móvil administrado, pero con mejoras significativas que solo el código administrado puede ofrecer, como la ejecución con confianza parcial y el almacenamiento aislado de archivos.Hosting the runtime in this way makes managed mobile code possible, but with significant improvements that only managed code offers, such as semi-trusted execution and isolated file storage.

En la ilustración siguiente se muestra la relación de Common Language Runtime y la biblioteca de clases con las aplicaciones y el sistema en su conjunto.The following illustration shows the relationship of the common language runtime and the class library to your apps and to the overall system. En la ilustración se representa igualmente cómo funciona el código administrado dentro de una arquitectura mayor.The illustration also shows how managed code operates within a larger architecture.

Código administrado dentro de una arquitectura mayor .NET Framework en contextoManaged code within a larger architecture .NET Framework in context

En las secciones siguientes se describen con más detalle las características principales de .NET Framework.The following sections describe the main features of the .NET Framework in greater detail.

Características de Common Language RuntimeFeatures of the common language runtime

Common Language Runtime administra la memoria, ejecución de subprocesos, ejecución de código, comprobación de la seguridad del código, compilación y demás servicios del sistema.The common language runtime manages memory, thread execution, code execution, code safety verification, compilation, and other system services. Estas características son intrínsecas del código administrado que se ejecuta en Common Language Runtime.These features are intrinsic to the managed code that runs on the common language runtime.

Con respecto a la seguridad, los componentes administrados reciben grados de confianza diferentes en función de una serie de factores, entre los que se incluye su origen (como Internet, red empresarial o equipo local).Regarding security, managed components are awarded varying degrees of trust, depending on a number of factors that include their origin (such as the Internet, enterprise network, or local computer). Esto significa que un componente administrado puede ser capaz o no de realizar operaciones de acceso a archivos, operaciones de acceso al Registro y otras funciones delicadas, incluso si se usa en la misma aplicación activa.This means that a managed component might or might not be able to perform file-access operations, registry-access operations, or other sensitive functions, even if it's used in the same active app.

Además, el motor en tiempo de ejecución impone la solidez del código mediante la implementación de una infraestructura estricta de comprobación de tipos y código denominada CTS (Common Type System, Sistema de tipos común).The runtime also enforces code robustness by implementing a strict type-and-code-verification infrastructure called the common type system (CTS). CTS garantiza que todo el código administrado es autodescriptivo.The CTS ensures that all managed code is self-describing. Los diversos compiladores de lenguaje de Microsoft y de otros fabricantes generan código administrado que se atiene al CTS.The various Microsoft and third-party language compilers generate managed code that conforms to the CTS. Esto significa que el código administrado puede consumir otros tipos e instancias administrados, al tiempo que se exige fidelidad de tipos y seguridad de tipos estrictamente.This means that managed code can consume other managed types and instances, while strictly enforcing type fidelity and type safety.

Además, el entorno administrado del motor en tiempo de ejecución elimina muchos problemas de software comunes.In addition, the managed environment of the runtime eliminates many common software issues. Por ejemplo, el motor en tiempo de ejecución controla automáticamente la disposición de los objetos, administra las referencias a éstos y los libera cuando ya no se utilizan.For example, the runtime automatically handles object layout and manages references to objects, releasing them when they are no longer being used. Esta administración automática de la memoria soluciona los dos errores más comunes de las aplicaciones: la fuga de memoria y las referencias no válidas a la memoria.This automatic memory management resolves the two most common app errors, memory leaks and invalid memory references.

Además, el motor en tiempo de ejecución aumenta la productividad del programador.The runtime also accelerates developer productivity. Por ejemplo, los desarrolladores pueden crear aplicaciones en el lenguaje que prefieran y seguir sacando todo el provecho del tiempo de ejecución, la biblioteca de clases y los componentes escritos en otros lenguajes por otros colegas.For example, programmers write apps in their development language of choice yet take full advantage of the runtime, the class library, and components written in other languages by other developers. El proveedor de un compilador puede elegir destinarlo al motor en tiempo de ejecución.Any compiler vendor who chooses to target the runtime can do so. Los compiladores de lenguajes que se destinan a .NET Framework hacen que las características de .NET Framework estén disponibles para el código existente escrito en dicho lenguaje, lo que facilita enormemente el proceso de migración de las aplicaciones existentes.Language compilers that target the .NET Framework make the features of the .NET Framework available to existing code written in that language, greatly easing the migration process for existing apps.

Aunque el motor en tiempo de ejecución está diseñado para el software del futuro, también es compatible con el software actual y el software antiguo.While the runtime is designed for the software of the future, it also supports software of today and yesterday. La interoperabilidad entre el código administrado y no administrado permite que los desarrolladores continúen utilizando los componentes COM y las DLL que necesiten.Interoperability between managed and unmanaged code enables developers to continue to use necessary COM components and DLLs.

El motor en tiempo de ejecución está diseñado para mejorar el rendimiento.The runtime is designed to enhance performance. Aunque Common Language Runtime proporciona muchos servicios estándar de motor en tiempo de ejecución, el código administrado nunca se interpreta.Although the common language runtime provides many standard runtime services, managed code is never interpreted. Una característica denominada compilación JIT (Just-In-Time) permite ejecutar todo el código administrado en el lenguaje de máquina nativo del sistema en el que se ejecuta.A feature called just-in-time (JIT) compiling enables all managed code to run in the native machine language of the system on which it's executing. Mientras tanto, el administrador de memoria evita que la memoria se pueda fragmentar y aumenta la zona de referencia de la memoria para mejorar aún más el rendimiento.Meanwhile, the memory manager removes the possibilities of fragmented memory and increases memory locality-of-reference to further increase performance.

Por último, el tiempo de ejecución se puede hospedar en aplicaciones de servidor de gran rendimiento, como Microsoft SQL Server e Internet Information Services (IIS).Finally, the runtime can be hosted by high-performance, server-side apps, such as Microsoft SQL Server and Internet Information Services (IIS). Esta infraestructura permite utilizar código administrado para escribir lógica empresarial, al tiempo que se disfruta del superior rendimiento de los mejores servidores empresariales del sector que puedan hospedar el motor en tiempo de ejecución.This infrastructure enables you to use managed code to write your business logic, while still enjoying the superior performance of the industry's best enterprise servers that support runtime hosting.

Biblioteca de clases de .NET Framework.NET Framework class library

La biblioteca de clases de .NET Framework es una colección de tipos reutilizables que se integran estrechamente con Common Language Runtime.The .NET Framework class library is a collection of reusable types that tightly integrate with the common language runtime. La biblioteca de clases está orientada a objetos, lo que proporciona tipos de los que su propio código administrado deriva funciones.The class library is object oriented, providing types from which your own managed code derives functionality. Esto hace que los tipos de .NET Framework sean fáciles de usar y reduce el tiempo asociado con el aprendizaje de las nuevas características de .NET Framework.This not only makes the .NET Framework types easy to use but also reduces the time associated with learning new features of the .NET Framework. Además, los componentes de terceros se integran sin dificultades con las clases de .NET Framework.In addition, third-party components integrate seamlessly with classes in the .NET Framework.

Por ejemplo, las clases de colección de .NET Framework implementan un conjunto de interfaces que le permiten desarrollar sus propias clases de colección.For example, the .NET Framework collection classes implement a set of interfaces for developing your own collection classes. Estas se combinan a la perfección con las clases de .NET Framework.Your collection classes blend seamlessly with the classes in the .NET Framework.

Como en cualquier biblioteca de clases orientada a objetos, los tipos de .NET Framework permiten realizar diversas tareas de programación comunes, como son la administración de cadenas, recolección de datos, conectividad de bases de datos y acceso a archivos.As you would expect from an object-oriented class library, the .NET Framework types enable you to accomplish a range of common programming tasks, including tasks such as string management, data collection, database connectivity, and file access. Además de estas tareas habituales, la biblioteca de clases incluye tipos adecuados para diversos escenarios de desarrollo especializados.In addition to these common tasks, the class library includes types that support a variety of specialized development scenarios. Use .NET Framework para desarrollar los siguientes tipos de aplicaciones y servicios:Use the .NET Framework to develop the following types of apps and services:

Las clases de Windows Forms son un conjunto completo de tipos reutilizables que simplifican enormemente el desarrollo de GUI para Windows.The Windows Forms classes are a comprehensive set of reusable types that vastly simplify Windows GUI development. Si escribe una aplicación de formularios Web Forms de ASP.NET, puede usar las clases de formularios Web Forms.If you write an ASP.NET Web Form app, you can use the Web Forms classes.

Vea tambiénSee also