2011-10-08 20 views
33

Según tengo entendido, WinRT es una versión diferente de WPF escrita sin utilizar las API de Win32 subyacentes.WinRT y WPF en Windows 8

¿Cuál es la relación de WinRT y WPF? ¿WPF trabajará en Metro en Windows 7 o lanzará el escritorio clásico?

Eso no está tan claro en el Keynote. Si alguien tiene instalado Windows 8, puede confirmar su comportamiento.

Gracias

+2

Espere lo peor cuando venga de WPF. Se eliminaron muchas cosas. –

Respuesta

5

WinRT es una nueva biblioteca que se puede utilizar XAML, pero no WPF.

WPF es principalmente utiliza DirectX para visual.

Puede utilizar WinRT con:

  • XAML
    • C#
    • C++
    • VB.NET
  • HTML/JS/CSS
+0

¿Cambia WPF al escritorio clásico o funciona bajo Metro? Gracias – bstodos

+0

WPF es para aplicaciones de escritorio, no de metro. Las aplicaciones de Metro deben escribirse AFAIK con WinRT. –

+0

¿Pero deberíamos poder transferir fácilmente nuestros modelos de WPF y modelos de vista a WinRT, y solo tenemos que volver a escribir nuestras vistas? –

10

Hay no hay relación entre WPF y WinRT, al igual que no existe relación entre Silverlight y WPF. Ahora tenemos tres tecnologías, WPF, Silverlight y WinRT.

Si intenta ejecutar la aplicación WPF, no se ejecutará en Metro, se ejecutará solo en el escritorio clásico.

En Visual Studio 2011, tiene WPF y Metro como dos tipos diferentes de aplicaciones, y Xaml para WPF y WinRT no es lo mismo, Xaml para WinRT es más o menos igual al de Silverlight como muchas clases que existen para WPF faltan en la biblioteca WinRT. Pero la mayoría de las clases que existen para Silverlight están disponibles en WinRT.

37

WinRT es un reemplazo para el Winapi. La API es nativa, muy diferente de WPF que se ejecuta como una capa en la parte superior de la CLR. Ciertamente se parece a WPF, parte de lo que causa confusión. Adoptó el formato de metadatos del código administrado, reemplazando las bibliotecas de tipos de antiguas. Y usa XAML para diseños de interfaz de usuario, al igual que WPF, Silverlight y Windows Phone. Aún puede escribir aplicaciones WPF para Windows 8 pero su aplicación no se puede publicar a través de la tienda, no se integrará con el escritorio de Metro ni se ejecutará en tabletas basadas en el núcleo de ARM. Si ese es un problema real depende en gran medida de qué tan bien funcionará Metro en el mercado.

10

Windows Runtime (WinRT) es una API alternativa utilizada para crear las aplicaciones Metro (y posterior aplicación de servidor).

Las API están basadas en class/method/struct y han sido desarrolladas para aplicaciones metropolitanas .Net, aplicaciones html5/css3/javascript y aplicaciones metropolitanas C/C++.

La implementación es nativa.

Las API se hacen visibles a través de archivos .winmd, que contienen metadatos muy similares a los metadatos que tiene en los ensamblados .Net.

Las API están diseñadas para proteger y sincronizar amigablemente con muchas API que requieren el uso de async/await debido a que potencialmente tardan más de 50 ms en ejecutarse.

Incluye un subconjunto de API de Win32 y aplicaciones COM.

En fin ... los siguientes enlaces de ayuda ... Channel9 también tiene algunos // Construir/vídeos sobre el tema ..

Metro de desarrollo de aplicaciones de estilo - http://msdn.microsoft.com/en-us/windows/apps/

Win32 y COM de estilo Metro aplicaciones - http://msdn.microsoft.com/en-us/library/windows/apps/br205757(v=VS.85).aspx

APIs para aplicaciones estilo Metro - http://msdn.microsoft.com/en-us/library/windows/apps/br211369(v=VS.85).aspx

2

WinRT es una API no administrada basada en interfaces COM. Lo usa llamando a objetos buit en archivos de metadatos winwin (directorio Windows \ System32 \ WinMedataData).

Todos los espacios de nombres comienzan con "Windows".

Puede escribir su aplicación de Windows 8 utilizando archivos XAML, pero ese es el único punto común con WPF.

Cuestiones relacionadas