33 votes

WinRT et WPF dans Windows 8

Si je comprends bien, WinRT est une version différente de WPF écrite sans utiliser les API Win32 sous-jacentes.

Quelle est la relation entre WinRT et WPF? WPF fonctionnera-t-il sous Metro dans Windows 7 ou lancera-t-il le bureau classique?

Ce n'est pas si clair dans le discours principal. Si quelqu'un a installé Windows 8, il peut confirmer son comportement.

Merci

37voto

Hans Passant Points 475940

WinRT est un remplacement pour la Winapi. L'api est originaire, très à la différence de WPF qui fonctionne comme une couche sur le dessus de la CLR. Certainement, cela ressemble à WPF, partie des causes de la confusion. Il a adopté le format de métadonnées de code managé, en remplacement de bibliothèques de types de vieux. Et utilise le code XAML pour les dessins de l'INTERFACE utilisateur, un peu comme WPF, Silverlight et Windows Phone. Vous pouvez toujours écrire des applications WPF pour Windows 8 mais votre application ne peut pas être publié dans le magasin, ne pas s'intégrer avec le Métro de bureau, ni peut-il fonctionner sur des tablettes qui sont basés sur le cœur ARM. Si c'est un réel problème dépend en grande partie sur la façon dont bien de Métro vais le faire dans la place du marché.

10voto

Akash Kava Points 18026

Il n'y a aucun rapport entre WPF et WinRT, tout comme il n'existe pas de relation entre Silverlight et WPF. Maintenant, nous avons trois technologies, WPF, Silverlight et WinRT.

Si vous essayez d'exécuter l'application WPF, il n'exécutera pas sur de Métro, il s'exécutera dans le classique de bureau seulement.

Dans Visual Studio 2011, vous avez WPF et le Métro comme deux différents types d'applications, et Xaml, WPF et WinRT n'est pas la même, Xaml pour WinRT est à peu près la même que celle de Silverlight comme beaucoup de classes qui existent pour WPF sont manquants dans WinRT bibliothèque. Mais la plupart des classes qui existent pour Silverlight sont disponibles dans WinRT.

10voto

spgennard Points 1354

Windows Runtime (WinRT) est une alternative API permettant de créer des Applications Metro (et, plus tard, serveur d'application).

Les Api sont de classe/méthode/struct base et de surface pour .Net applications metro, html5/css3/javascript, des applications et C/C++ métro applications.

La mise en œuvre est originaire.

Les api sont visibles via .winmd des fichiers qui contiennent des métadonnées très similaire pour les métadonnées que vous avez dans .Net assemblées.

Les Api sont conçues pour sécuriser et asynchrone d'amitié avec de nombreux Api nécessitant l'utilisation de async/await dû prendre potentiellement plus de 50msec à exécuter.

Il comprend un sous-ensemble de l'Api Win32 et des api COM.

De toute façon... les suivantes liens d'aide... channel 9 a aussi quelques //Build/ vidéos sur le sujet..

Application de style Metro de développement - http://msdn.microsoft.com/en-us/windows/apps/

Win32 et COM pour Metro style apps - http://msdn.microsoft.com/en-us/library/windows/apps/br205757(v=VS.85).aspx

Api pour Metro style apps - http://msdn.microsoft.com/en-us/library/windows/apps/br211369(v=VS.85).aspx

5voto

Daniel A. White Points 91889

WinRT est une nouvelle bibliothèque que vous pouvez utiliser XAML, mais pas WPF.

WPF utilise principalement DirectX pour le visuel.

Vous pouvez utiliser WinRT avec:

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

2voto

Stephane Halimi Points 249

WinRT est une API non gérée basée sur des interfaces COM. Vous l'utilisez en appelant des objets dans des fichiers de métadonnées .winmd (répertoire Windows \ System32 \ WinMedataData).

Tous les espaces de noms commencent par "Windows".

Vous pouvez écrire votre application Windows 8 en utilisant des fichiers XAML, mais c'est le seul point commun avec WPF.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X