Clr

  • Uploaded by: Consuelo
  • 0
  • 0
  • November 2019
  • PDF

This document was uploaded by user and they confirmed that they have the permission to share it. If you are author or own the copyright of this book, please report to us by using this DMCA report form. Report DMCA


Overview

Download & View Clr as PDF for free.

More details

  • Words: 1,840
  • Pages: 5
CLR

1

Common Language Runtime (CLR) Es el componente que administra la ejecución en .NET Framework. Provee servicios tales como código seguro y resuelve el problema de versiones de las librerías de enlace dinámico (DDL). Maneja los hilos de una aplicación y el aislamiento de memoria para las aplicaciones, lo que permite que las fallas de una aplicación no comprometan la normal ejecución de otras aplicaciones sobre el mismo entorno. Cuando los objetos no están siendo utilizados por una aplicación .NET, este componente provee el “recolector de basura” (Garbage Collector) que libera la memoria que ha sido utilizada por estos objetos. El CLR asegura además que una aplicación .NET se ejecute de la manera apropiada, provee seguridad de tipos y controla conversiones inseguras, variables no inicializadas, indexación de arreglos fuera de los límites, entre otros. El CLR también administra el control de excepciones para las aplicaciones de manera mucho más eficiente.

Versionamiento de las DLL Antes del .NET Framework, las aplicaciones compartían archivos DLL. Si una aplicación necesitaba una nueva versión de una DLL, ésta se actualizaba durante la instalación de la aplicación o de manera manual utilizando el comando regsvr32. Como resultado de esta actualización, otros programas que hacían uso de esa DLL ya no funcionaban apropiadamente. Este “versionamiento” de las DLL se conocía como “Infierno de las DLLs” Con el advenimiento del CLR, la versión es parte de la identidad de la DLL. Si una aplicación requiere una versión particular de una DLL, es posible especificar la versión a utilizar en la aplicación. El CLR garantiza que la versión correcta de la DLL está disponible para la aplicación. Así, el CLR permite que múltiples versiones de una DLL coexistan y se ejecuten simultáneamente.

Componentes del CLR



Soporte de librería de clases: integra el código con el motor de ejecución que soporta las librerías de clase del .NET Framework.



Soporte de hilos: provee clases e interfases para hacer posible la programación multi-hilos (varios procesos ejecutándose simultáneamente).



Empaquetador COM: provee marshaling (conversión de datos y mensajes) desde y hacia objetos COM (Component Object Model)



Chequeador de tipos: no permite conversiones inseguras o variables no inicializadas. El MSIL (Microsoft Intermediate Language) puede ser verificado para garantizar tipos seguros.



Administrador de excepciones: provee un manejo estructurado de errores, el cual está integrado al manejo estructurado de errores de Microsoft Windows (SEH)



Motor de seguridad: provee seguridad basada en evidencias que está a su vez basada en el origen del código y el usuario. Una evidencia es la información que el CLR utiliza para tomar una decisión basada en políticas de seguridad. La evidencia indica al CLR que el código tiene características particulares.



Motor de Depuración: permite depurar aplicaciones y rastrear la ejecución del código.

Ing. Consuelo Del Castillo Castro

CLR

2



Compilador MSIL a Nativo: convierte MSIL a lenguaje nativo a través de una compilación “Justo en el momento” (JIT: Just In Time)



Administrador de Código: Maneja la ejecución del código. El código manejado es aquel que es ejecutado por el CLR en lugar de ser manejado por el sistema operativo. Este servicio da la ventaja de proveer una plataforma uniforme y comportamiento independiente del lenguaje.



Recolector de Basura: Provee una manejo automático del tiempo de vida de todos los objetos. Es multiproceso y escalable.



Cargador de clases: maneja la metadata, así como el cargado de las clases en memoria.

Modelo de Compilación y Ejecución Cada lenguaje compatible con .NET provee su propio compilador a MSIL. Luego de que el código es compilado a MSIL, el CLR compila el MSIL a código nativo y ejecuta la aplicación. El MSIL es manejado por el CLR. El CLR usa un Compilador JIT para compilar el MSIL a código nativo. Luego de que la aplicación es compilada “justo en el momento”, ésta es conservada para evitar posteriores compilaciones cuando vuelva a requerirse su uso. Luego de que la aplicación es compilada, el CLR ejecuta la aplicación y genera el resultado respectivo hacia el cliente. Cuando se compila a código manejado, el compilador transfiere el código original a MSIL, el cual es un conjunto de instrucciones independiente del CPU y que puede ser convertido con mayor eficiencia a código nativo. El MSIL incluye instrucciones para cargar, almacenar, inicializar e invocar a métodos y objetos, así como instrucciones para operaciones aritméticas y lógicas, control de flujo, acceso directo a memoria, manejo de errores y otras operaciones. Antes de que el código sea ejecutado, el MSIL es convertido al código específico para el CPU sobre el cual se va a ejecutar. Esta conversión la lleva a cabo un Compilador “Just In Time” (Justo en el momento). Dado que el CLR provee uno o más JIT Compilers para cada arquitectura de CPU, el mismo conjunto de MSIL puede ser compilado y ejecutado sobre cualquier equipo. Cuando un compilador produce MSIL, también produce metadata. La metadata describe los tipos en el código, incluyendo la definición de cada tipo, la firma de cada miembro del tipo, los miembros que son referenciados por el código, y otra información que el CLR utilizará para ejecutar la aplicación. El MSIL y la metadata son contenidos en un archivo “EXE Portable” (PE). La presencia de la metadata en el archivo permite que el MSIL se describa a sí mismo, esto significa que no es necesario utilizar interfases de definición de lenguaje. El CLR localiza y extrae la metadata desde el archivo cuando sea necesario durante la ejecución.

Soporte Multilenguaje Common Type System (Sistema de tipos común) El CTS define como los tipos son declarados, usados y manejados por el CLR. Es una parte fundamental de la integración de lenguajes. El CTS ejecuta las siguientes funciones:

Ing. Consuelo Del Castillo Castro

CLR

3



Establece un marco de trabajo que permite la integración de lenguajes, tipos seguros y un amplio desempeño en la ejecución del código.



Provee un modelo orientado a objetos que soporta una completa implementación para muchos lenguajes de programación.



Define las reglas que el lenguaje debe seguir, el cual ayuda a asegurar que los objetos escritos en diferentes lenguajes puedan interactuar entre sí.

El CTS establece dos categorías generales de tipos: •

Tipos de Valor: contienen directamente sus datos. Sus instancias son colocadas en la pila o en estructuras (enumeraciones, tipos definidos por el usuario, implementaciones del CLR).



Tipos de Referencia: almacenan una referencia hacia la dirección en memoria del valor, y localizada en el Heap (montón). Pueden ser tipos que se auto describen, punteros o interfaces (clases definidas por el usuario, tipos encapsulados y delegados (punteros a función))

Common Language Specification (Especificación de Lenguaje Común) Conjunto básico de características de lenguaje necesaria para muchas aplicaciones. Las reglas del CLS define un subconjunto del CTS; esto es, todas las reglas que se aplican al CTS también se aplican al CLS, excepto aquellas reglas que son definidas en el CLS. El CLS hace posible la interoperabilidad entre lenguajes por definir un conjunto de características que los desarrolladores encuentran en una amplia variedad de lenguajes. Entre las características incluidas por el CLS tenemos: visibilidad, miembros globales, palabras claves, sobrecarga, eventos, punteros, etc.

Beneficios del Soporte de Múltiples Lenguajes Debido a que el .NET Framework soporta desarrollos con múltiples lenguajes, se obtienen los siguientes beneficios: •

Los módulos son reutilizables. Un módulo escrito en un lenguaje puede ser utilizado en una aplicación escrita en un lenguaje diferente.



Las bibliotecas de clases son las mismas para todos lo lenguajes. Todos los lenguajes utilizan el mismo modelo de objetos, el cual es provisto por las bibliotecas de clase del .NET Framework.



La flexibilidad de los lenguajes permite que pueda escogerse el lenguaje correcto para una determinada tarea. Por ejemplo, Perl es la mejor opción cuando desean manejarse expresiones regulares, mientras que Cobol es el lenguaje preferido para aplicaciones de negocio. Esta flexibilidad no sólo permite escoger el lenguaje para los nuevos proyectos, también permite actualizar las aplicaciones existentes con nuevas tecnologías, sin reescribir toda la aplicación en el nuevo lenguaje.



Todos los lenguajes son soportados por el .NET Framework con casi el mismo desempeño. Además, todos los lenguajes basados en .NET se compilan a MSIL, y todo el código MSIL a código nativo.

CONSTRUCCIÓN EVALUACIÓN Y DISTRIBUCIÓN

Ing. Consuelo Del Castillo Castro

CLR

4

Microsoft Build Engine Microsoft Build Engine (MSBuild) es la nueva plataforma de generación de Microsoft y Visual Studio. MSBuild presenta un nuevo formato de archivo de proyecto basado en código XML que es sencillo de comprender, fácil de ampliar y totalmente compatible con Microsoft. El formato de archivo de proyecto de MSBuild permite a los desarrolladores describir completamente qué elementos se han de generar y cómo han de generarse con distintas plataformas y configuraciones. Además, el formato de archivo de proyecto permite a los desarrolladores crear reglas reutilizables que se pueden factorizar en archivos independientes para que las generaciones se ejecuten de igual forma en los distintos proyectos del producto. El proceso de generación de MSBuild se define mediante unidades atómicas de generación, denominadas tareas. Puede crear sus propias tareas en cualquier lenguaje .NET para ampliar el proceso de generación. Los proyectos de Visual Studio ahora se almacenan en el formato de archivo de proyecto de MSBuild, lo que proporciona la posibilidad de personalizar el proceso de generación de Visual Studio. MSBuild es completamente transparente en el modo de procesar y generar el software, permitiendo a los desarrolladores generar proyectos en equipos sin Visual Studio. Pruebas



Diseñador de clases: el Diseñador de clases permite visualizar sistemas y aplicaciones. Aunque el usuario diseña los tipos de clase, los miembros y los métodos, el Diseñador de clases genera el código fuente correspondiente.



Herramienta de prueba de objetos: cuando codifique, puede utilizar la Herramienta de prueba de objetos para probar rápidamente .NET Framework o las aplicaciones de Visual J#. (Estas características no están disponibles en las ediciones Express)

Distribución



ClickOnce Implementación: la implementación ClickOnce permite implementar aplicaciones de actualización automática para Windows que pueden instalarse y ejecutarse tan fácilmente como las aplicaciones Web. También pueden implementarse aplicaciones de línea de comandos y de cliente de Windows. Hay un nuevo comando Publicar proyecto en los menús Proyecto. Para obtener más información, vea Implementación ClickOnce.



Requisitos previos de las secuencias de inicio: ahora se pueden incluir componentes del sistema necesarios, tales como la versión en tiempo de ejecución de .NET Framework, como parte de un proyecto de implementación o de la implementación ClickOnce. Para obtener más información, vea Requisitos previos de implementación.



Implementación de Windows Installer: las mejoras en los proyectos de instalación e implementación incluyen la posibilidad de elegir entre una instalación por usuario o por equipo, compatibilidad con implementaciones de 64 bits e implementación en servidores Web que alojen varios sitios Web.

Fuente: Developing Microsoft® ASP.NET Web Applications Using Visual Studio® .NET MSDN Training. Microsoft Corp.

Ing. Consuelo Del Castillo Castro

CLR

5

Developing Windows-Based Applications with Microsoft Visual Basic .NET And Microsoft Visual C# .NET MCAD/MCSD Self-Paced Training Kit

Ing. Consuelo Del Castillo Castro

Related Documents

Clr
November 2019 44
Clr Integration
June 2020 14
Clr Clasa I.doc
July 2020 12
Clr Metrics Aging
August 2019 24
Bab I Clr
August 2019 29
Bab I Clr
September 2019 23

More Documents from "Aditya Prajas"

December 2019 37
Lenguaje
November 2019 52
Clr
November 2019 44
Lastradanonpresa.pdf
May 2020 27
April 2020 32