WinRT и WPF в Windows 8 - PullRequest
       68

WinRT и WPF в Windows 8

33 голосов
/ 08 октября 2011

Как я понимаю, WinRT - это другая версия WPF, написанная без использования базовых API-интерфейсов Win32.

Какое отношение имеют WinRT и WPF? Будет ли WPF работать под Metro в Windows 7 или запустит классический рабочий стол?

Это не так ясно из речи. Если у кого-то установлена ​​Windows 8, это может подтвердить его поведение.

Спасибо

Ответы [ 5 ]

37 голосов
/ 08 октября 2011

WinRT является заменой для Winapi.API является нативным, очень отличается от WPF, который работает как слой поверх CLR.Это, безусловно, напоминает WPF, часть того, что вызывает путаницу.Он принял формат метаданных управляемого кода, заменив старые библиотеки типов.И использует XAML для дизайна пользовательского интерфейса, так же, как WPF, Silverlight и Windows Phone.Вы по-прежнему можете писать приложения WPF для Windows 8, но ваше приложение не может быть опубликовано через магазин, не будет интегрировано с рабочим столом Metro и не будет работать на планшетах, основанных на ядре ARM.Является ли это реальной проблемой, во многом зависит от того, насколько хорошо Metro будет работать на рынке.

10 голосов
/ 09 октября 2011

Windows Runtime (WinRT) - это альтернативный API, используемый для создания приложений Metro. (и позже серверное приложение).

API основаны на классе / методе / структуре и представлены в приложениях .Net metro, html5 / css3 / javascript и C / C ++ metro.

Реализация является родной.

API становятся видимыми через файлы .winmd, которые содержат метаданные, очень похожие на метаданные, которые есть в сборках .Net.

API разработаны для обеспечения безопасности и совместимости с асинхронным интерфейсом для многих API, требующих использования async / await, поскольку для их выполнения может потребоваться более 50 мсек.

Включает подмножество Win32 API и COM-интерфейсов.

Во всяком случае ... следующие ссылки помогают ... channel9 также имеет несколько // сборок / видео по теме ..

Разработка приложений в стиле Metro - http://msdn.microsoft.com/en-us/windows/apps/

Win32 и COM для приложений в стиле Metro - http://msdn.microsoft.com/en-us/library/windows/apps/br205757(v=VS.85).aspx

API для приложений в стиле Metro - http://msdn.microsoft.com/en-us/library/windows/apps/br211369(v=VS.85).aspx

10 голосов
/ 08 октября 2011

Нет никакого отношения между WPF и WinRT, как нет никакого отношения между Silverlight и WPF. Теперь у нас есть три технологии: WPF, Silverlight и WinRT.

Если вы попытаетесь запустить приложение WPF, оно не будет выполнено в Metro, оно будет выполняться только на классическом рабочем столе.

В Visual Studio 2011 у вас есть WPF и Metro как два разных типа приложений, и Xaml для WPF и WinRT - это не одно и то же, Xaml для WinRT - это почти то же самое, что и Silverlight, так как существует множество классов, которые существуют для WPF. отсутствует в библиотеке WinRT. Но большинство классов, существующих для Silverlight, доступны в WinRT.

5 голосов
/ 08 октября 2011

WinRT - это новая библиотека, в которой вы можете использовать XAML, но не WPF.

WPF в основном использует DirectX для визуалов.

Вы можете использовать WinRT с:

  • XAML
    • C #
    • C ++
    • VB.NET
  • HTML / JS / CSS
2 голосов
/ 12 января 2013

WinRT - неуправляемый API, основанный на интерфейсах COM.Вы используете его, вызывая объекты в файле метаданных .winmd (каталог Windows \ System32 \ WinMedataData).

Все пространства имен начинаются с "Windows.".

Вы можете написать свое приложение Windows 8с использованием файлов XAML, но это единственная общая черта с WPF.

...