2011-09-20 12 views
6

Escuché que el nuevo WinRT es un marco no administrado y está basado en COM, pero de alguna manera descubrieron algo para facilitar el mapeo entre WinRT y el código administrado. Me gustaría saber cómo funciona este mecanismo?¿Cómo funciona el mapeo entre WinRT y los gestionados?

+0

Es posible que desee verificar la respuesta a esta pregunta aquí: http://stackoverflow.com/questions/7416826/how-does-the-new-windows-8-runtime-compare-to-silverlight-and- wpf –

Respuesta

9

El Runtime de Windows representa todas las API en metadatos, que las diferentes proyecciones de lenguaje (C++, JavaScript y C#) leen.

Dado que la forma de la API se describe en los metadatos, los tiempos de ejecución del lenguaje y los compiladores pueden razonar acerca de las API y saber cómo generar código para esas API.

Para CLR, el trabajo es un poco más fácil, ya que el formato de metadatos es ECMA 335, que es el formato de metadatos CLI utilizado por el CLR, por lo que la traducción es un poco más fácil para el CLR.

Pero en general, la traducción es directa dado que tiene una representación legible por máquina de todas las API presentes en la máquina.

+0

gracias por la respuesta. ¿Hay algún recurso o artículo que describa dónde se puede encontrar este metdata? ¿Cómo se crean y se pueden leer estos metadatos? – gyurisc

+0

Encontré una a mi pregunta aquí - http://stackoverflow.com/questions/7416826/how-does-the-new-windows-8-runtime-compare-to-silverlight-and-wpf – gyurisc

+2

Otro cambio importante es que todos los componentes WinRT tienen metadatos disponibles para ellos, al igual que los ensamblados .NET. En COM algo así como que tenías eso con typelibs, pero no todos los componentes COM los tenían. Para WinRT, los metadatos están contenidos en archivos .winmd: busque dentro de "C: \ Archivos de programa (x86) \ Windows Kits \ 8.0 \ Windows Metadata \" en Developer Preview. Si hurga, verá que en realidad son ensamblados de CLI sin código, solo tablas de metadatos. Puede abrirlos con ILDASM, de hecho. Tenga en cuenta que esto no significa que se administre WinRT, simplemente reutiliza el formato de archivo – gyurisc

Cuestiones relacionadas