Que es el .NET Framework
.NET Framework es una tecnología que admite la compilación y ejecución
de la siguiente generación de aplicaciones y servicios Web XML. El diseño
de .NET Framework está enfocado a cumplir los siguientes objetivos:
- 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.
- Proporcionar
un entorno de ejecución de código que minimiza los conflictos en el
despliegue y versionado de software.
- Ofrecer
un entorno de ejecución de código que promueva la ejecución segura del
mismo, incluso del creado por terceros desconocidos o que no son de plena
confianza.
- 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.
- Ofrecer
al programador una experiencia coherente entre tipos de aplicaciones muy
diferentes, como las basadas en Windows o en el Web.
- 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.
.NET Framework consta de dos componentes principales:
Common Language Runtime y la biblioteca de clases de .NET
Framework. Common Language Runtime es el fundamento de .NET
Framework. El motor en 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 estricta a los
tipos y otras formas de especificación del código que promueven su seguridad y
solidez. De hecho, el concepto de administración de código es un principio
fundamental del motor en tiempo de ejecución. El código destinado al motor
en tiempo de ejecución se denomina código administrado, a diferencia del resto
de código, que se conoce como código no administrado. La biblioteca de
clases es una completa colección 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 Web Forms y Servicios Web XML.
.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 en el que se pueden
utilizar características administradas y no administradas. En .NET Framework
no sólo se ofrecen varios hosts de motor en tiempo de ejecución, sino que
también se admite el desarrollo de estos hosts por parte de terceros.
Por ejemplo, ASP.NET hospeda el motor en tiempo de ejecución para
proporcionar un entorno de servidor escalable para el código
administrado. ASP.NET trabaja directamente con el motor en tiempo de
ejecución para habilitar aplicaciones de ASP.NET y servicios Web XML, que se
tratan más adelante en este tema.
Internet Explorer es un ejemplo de aplicación no administrada que
hospeda el motor en tiempo de ejecución (en forma de una extensión de tipo
MIME). 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. Al hospedar el runtime 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.
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. En la ilustración se representa igualmente cómo funciona el
código administrado dentro de una arquitectura mayor.
.NET Framework en contexto

Características del 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. Estas características son intrínsecas del
código administrado que se ejecuta en 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). 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 está utilizando en la misma
aplicación activa.
El motor en tiempo de ejecución impone la seguridad de acceso del
código. Por ejemplo, los usuarios pueden confiar en que un archivo
ejecutable incrustado en una página Web puede reproducir una animación en la
pantalla o entonar una canción, pero no puede tener acceso a sus datos
personales, sistema de archivos o red. Por ello, las características de
seguridad del motor en tiempo de ejecución permiten que el software legítimo
implementado en Internet sea excepcionalmente variado.
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). CTS garantiza que todo el código administrado es
autodescriptivo. Los diversos compiladores de lenguaje de Microsoft y de
otros fabricantes generan código administrado que se atiene al 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.
Además, el entorno administrado del motor en tiempo de ejecución elimina
muchos problemas de software comunes. 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. Esta
administración automática de la memoria soluciona los dos errores más comunes
de las aplicaciones: la pérdida de memoria y las referencias no válidas a la
memoria.
Además, el motor en tiempo de ejecución aumenta la productividad del
programador. Por ejemplo, los desarrolladores pueden crear aplicaciones en
el lenguaje que prefieran y seguir sacando todo el provecho del motor en tiempo
de ejecución, la biblioteca de clases y los componentes escritos en otros
lenguajes por otros colegas. El proveedor de un compilador puede elegir
destinarlo al motor en tiempo de ejecución. 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.
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.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.
El motor en tiempo de ejecución está diseñado para mejorar el
rendimiento. Aunque Common Language Runtime proporciona muchos servicios
estándar de motor en tiempo de ejecución, el código administrado nunca se
interpreta. Una característica denominada compilación JIT (Just-In-Time)
permite ejecutar todo el código administrado en el lenguaje máquina nativo del
sistema en el que se ejecuta. 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.
Por último, el runtime se puede hospedar en aplicaciones de servidor de
gran rendimiento, como Microsoft SQL Server e 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.
Biblioteca de clases de .NET Framework
La biblioteca de clases de .NET Framework es una colección de tipos
reutilizables que se integran estrechamente con Common Language
Runtime. La biblioteca de clases está orientada a objetos, lo que
proporciona tipos de los que su propio código administrado puede derivar
funciones. Esto ocasiona que los tipos de .NET Framework sean sencillos de
utilizar y reduce el tiempo asociado con el aprendizaje de las nuevas
características de .NET Framework. Además, los componentes de terceros se
pueden integrar sin dificultades con las clases de .NET Framework.
Por ejemplo, las clases de colección de .NET Framework implementan un
conjunto de interfaces que puede usar para desarrollar sus propias clases de
colección. Éstas se combinarán fácilmente con las clases de .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. Además de estas tareas habituales, la
biblioteca de clases incluye tipos adecuados para diversos escenarios de
desarrollo especializados. Por ejemplo, puede utilizar .NET Framework para
desarrollar los siguientes tipos de aplicaciones y servicios:
- Aplicaciones
de consola.
- Aplicaciones
GUI de Windows (Windows Forms).
- Aplicaciones
de Windows Presentation Foundation (WPF).
- Aplicaciones
de ASP.NET.
- Servicios
de Windows.
- Aplicaciones
orientadas a servicios utilizando Windows Communication Foundation (WCF).
- Aplicaciones
habilitadas para el flujo de trabajo utilizando Windows Workflow
Foundation (WF).
No hay comentarios:
Publicar un comentario