Visitó Encydia-Wikilingue.com

Microsoft .LIMPIO

microsoft limpio - Wikilingue - Encydia

Page d'aide sur l'homonymie Para los artículos homonymes, ver .Limpio.
Microsoft .LIMPIO
Logo microsoft net.png
Desarrollador Microsoft

Última versión [Microsoft 4.0.30319.1 (4.0)] (12 de Abril 2010) [+/-]

Medio ambiente Windows NT 4.0, Windows 98 y superiores.

Tipo Plataforma
Licencia MS-EULA, BCL Bajo Microsoft Reference License

Sitio Web Www.microsoft.com/net

Microsoft .LIMPIO[1] es el nombre dado en un conjunto de productos y de tecnologías informáticas de la empresa Microsoft para devolver aplicaciones fácilmente portátiles sobre Internet. El objetivo es de proporcionar un servidor web local que permite gestionar servicios y evitando de externaliser de los datos privados sobre un servicio web de almacenaje o un alojamiento web tercio.

.LIMPIO se basa en varias tecnologías :

El Framework .LIMPIO ha sido concebido por Anders Hejlsberg, el padre de Delphi . Éste ha desarrollado entre demás el lenguaje C#[2].

Sumario

Principales característicos de .LIMPIO

Interoperabilidad 
A causa de la necesidad de poder interagir con las antiguas aplicaciones, el framework proporciona medios para acceder en las funcionalidades fuera del medio ambiente .LIMPIO. La posibilidad de acceder en las componentes COM es proporcionada por los espacios de nombres System.Runtime.InteropServices Y System.EnterpriseServices . El acceso en las otras funcionalidades es proporcionado gracias a P/Invoke .
Common Runtime Engine 
Los lenguajes de programación del framework son compilés en un lenguaje intermediario llamado Common Intermediate Language, o PESTAÑA (antiguamente conocido bajo el nombre de Microsoft Intermediate Language, o MSIL). Este lenguaje no es interpretado, pero padece una compilación a la volada y una compilación en el nivel de la Common Language Runtime (CLR). La CLR es la implementación de la CLI.
Independencia del lenguaje 
La especificación del Common Tipo System (o CTS) define el conjunto de los tipos de datos y estructuras de programación dada soporte por la CLR así como sus interacciones. Por consiguiente, lo .LIMPIO Framework da soporte el intercambio de las instancias de los tipos entre los programas escritos en un de los lenguajes .LIMPIO.

Arquitectura

Visualización del funcionamiento de la Common Language Infraestructura (CLI)

CLI, PESTAÑA y CLR

El framework .Limpio descansa sobre la Common Lenguaje Infraestructura (o CLI). Su objetivo es de proporcionar un lenguaje independiente de la plataforma, también bien para el desarrollo que para el fusilamiento. Ella inclut de las funciones para gestionar los errores, lo recoge-miettes, la seguridad y la interoperabilidad con los objetos COM. La implementación de la CLI por Microsoft es llamada Common Language Runtime (o CLR).

Ver también : Dynamic Language Runtime y Máquina virtual applicative.

CLR Y Seguridad

La seguridad es gestionada por el CASO (Código Access Security). CASO es basado en un sistema de pruebas asociadas a una assembly particular. La  prueba » es el origen del assembly (Instalación local, descarga a marchar de Internet o de una Intranet, …). CASO utiliza esta prueba para determinar los permisos datos en el código. Un código puede pedir una autorización para el código que llama. La demanda de autorización sabe cuando el CLR recorre la pile de llamada : cada assembly de cada método en la pile es verificada. Si al menos una de estas assembly no es autorizada a tener el permiso pedido una excepción es levantada.

Cuando una assembly es cargada, el CLR efectúa varios tests cuya validación y la comprobación. Durante la validación, el CLR verifica que el assembly contiene un código y de los métadonnées validas. Después, verifica que las mesas internas son correctas. La comprobación verifica que el código no hace nada de dangeureux. El código no-seguro será ejecutado únicamente si el assembly tiene el permiso ‘skip verification’.

L .LIMPIO Framework utiliza de los appdomains (propiedad de aplicación) como mecanismo para aislar el código de un proceso. Uno appdomain puede ser creado y del código cargado o descargado de un appdomain independientemente de los otros appdomain. Los appdomains pueden también ser configurados independientemente con diferentes privilegios de seguridad. Esto puede ayudar a mejorar la seguridad de una aplicación separando el código potencialmente dangeureux del resto. No obstante, el desarrollador tiene que separar la aplicación en varias bajo-propiedades, lo que no es a la carga del CLR.

CLR Y Gestión de la memoria

El CLR toma carga la gestión de la memoria (allocation y liberación). El allocation de la memoria para las instancias de los tipos .LIMPIO (objetos) es efectuada de modo continuo a marchar del montón. Tanto tiempo como hay una referencia hacia un objeto (directa o indirecta vía un graphe), el objeto es considerado como que es utilizado por el CLR. En cuanto ya no hay de referencia sobre un objeto (ie, ya no puede estar ni alcanzado ni utilizado), lo recoge-miettes ( inglés : Garbage Collector), que se ejecuta periódicamente sobre un proceso ligero diferente de aquel de la aplicación, pasa liberar el objeto de la memoria.

Lo recoge-miettes del .LIMPIO es no-déterministe : se ejecuta sólo después de que una cierta cantidad de memoria ha sido concedida o se hay un defecto de memoria. No hay mediano de determinar cuando las condiciones de déclenchement del recoge-miettes son satisfechas. Cada aplicación .LIMPIO posee un conjunto de elementos raíces que están de los pointeurs mantenidos por el CLR y que pointent sobre los objetos de los montones gestionados. Esto inclut de las referencias en los objetos statiques, a aquellos defino como variables locales, a los parámetros definidos en el alcance corriente del código y finalmente a los registros processeurs[3]. Cuando lo recoge-miettes se ejecuta, suspende la aplicación y, para cada objeto référencé en la raíz, enumera récursivement, gracias a los métadonnées .LIMPIO y a la reflexión, todos los objetos que puede alcanzar y la marca. Enumera luego todos los objetos sobre el montón (que eran concedidos inicialmente de modo continuo) que utiliza la reflexión ; todos los objetos que no han sido marcados son considerados entonces como de los residuos. Es la fase de marquage. No obstante, este procedido deja trozos de memoria libre entre los objetos todavía référencés ; estos objetos son luego compactés utilizando memcpy para devolver el espacio memoria utilizada nuevamente continuo. Las direcciones de las pointeurs son actualizadas consecuentemente. Después de estas operaciones, la aplicación retoma su fusilamiento.

En realidad, lo recoge-miettes es basado en un sistema de generación. Cada objeto se ve afectado a una generación ; los objetos nouvellement creas pertenecen en la generación 0. Los objetos que quedan después de la primera pasa del recoge-miettes se ven promovidos a la generación 1 y los objetos que quedan después de una segunda pasa son promovidos en la generación 2 (nivel máximo). Los objetos que tienen un nivel de generación elevada son menos a menudo analizado por lo recoge-miettes que los objetos que tienen un flojo nivel de generación. Este algorithme espera mejorar la eficacia del recoge-miettes, porque los viejos objetos tienen tendencia a tener una duración de vida más larga que los nuevos objetos[4].

Ventajas e inconvenientes

Notas y referencias

Ver también

Artículos connexes

Vínculos externos

Your Ad Here