Разница между приложениями Metro, написанными на HTML/CSS/JS, и XAML/C#

В чем разница между приложениями Metro, написанными с использованием технологий веб-разработки, и приложениями, написанными на XAML/C# и т. д.? Предоставляет ли Microsoft Metro API перехватчики для Javascript, в то время как все они нативные для C#? Должны ли они работать рука об руку, или выбор пути остается за разработчиками?

Существуют ли определенные функции, которые нельзя реализовать при использовании JS (кроме аппаратных возможностей OpenGL)?

Причина, по которой мне интересно, заключается в том, чтобы узнать, какие технологии необходимы для создания обширных приложений Metro, чтобы, когда я дойду до определенного момента, меня не остановила кирпичная стена, сообщив мне, что я использовал неправильную технологию.


person knownasilya    schedule 28.09.2012    source источник
comment
Надеюсь, следующее поможет вам принять решение [Windows 8: 10 основных причин, по которым я предпочитаю XAML HTML5](blog.jerrynixon.com/2012/05/) Возможности и различия HTML, CSS и JavaScript (приложения для Магазина Windows) [Metro App: XAML/C# против HTML/Javascript] (social.msdn. microsoft.com/Forums/en-US/winappsuidesign/thread/)   -  person Amal Dev    schedule 28.09.2012
comment
И контраргумент вашей первой ссылке на codefoster.com/post/2012/05/23/   -  person Jeremy Foster    schedule 30.09.2012


Ответы (1)


Microsoft проделала большую работу, чтобы сделать Javascript языком первого порядка наравне с C# для разработки WinRT. И Javascript, и C# имеют прямой доступ к WinRT API через языковые проекции. То есть существует уникальная привязка, специфичная для языка, к базовому API. Таким образом, ни один из языков не является более «родным», чем другой.

Вы должны быть в состоянии написать эквивалентное приложение Metro на любом языке. На высоком уровне все действительно сводится к тому, какой язык/среда вам удобнее.

Однако есть несколько отличий, которые должны учитываться при принятии решения. Во-первых, компоненты WinRT можно писать только на C# или C++. Javascript может использовать только эти компоненты. Если есть намерение создать повторно используемые/общие компоненты, следует помнить об этом.

Во-вторых, хотя Windows Phone 8 SDK еще не выпущен, есть признаки того, что приложения для Windows Phone 8 можно писать только на C#. Если есть намерение создать аналогичные приложения как для планшета, так и для телефона, это, вероятно, серьезное соображение.

Было не так много исследований, основанных на сравнении производительности в приложении Metro, поэтому трудно сказать, станет ли это фактором или нет.

Кроме того, следует учитывать поддержку сторонних производителей. C#/XAML хорошо зарекомендовал себя и имеет широкую стороннюю поддержку. Но аналогичным образом в Javascript доступно множество сторонних библиотек (например, jQuery), которые по большей части можно использовать и в приложении Metro. Я бы дал небольшое преимущество C#/XAML, но похоже, что поддержка хороша для обоих.

person Gambit    schedule 28.09.2012
comment
Спасибо за полный ответ :). Считаете ли вы, что поддержка JS останется, или это просто приманка, чтобы заинтересовать новых разработчиков? - person knownasilya; 29.09.2012
comment
ИМО, разработка HTML/Javascript для WinRT будет только развиваться и укрепляться с течением времени. Об этом позаботится приверженность разработчиков по мере написания большего количества приложений. Что касается Microsoft, я также не могу себе представить, чтобы от них исходила какая-то приманка и подмена. Им предстоит долгий путь, чтобы завоевать долю мобильного рынка. Это означает, что им нужно привлекать разработчиков в свою экосистему, а также удерживать их. - person Gambit; 29.09.2012
comment
Хороший вопрос Гамбит. Им обязательно нужно наверстать упущенное, если они хотят, чтобы их планшет Surface и ОС добились успеха. Кажется, что у них есть хорошие идеи, но они не реализуются. - person knownasilya; 29.09.2012
comment
Единственная причина, по которой я опасаюсь идти по маршруту XAML/C#, связана с его зависимостью от платформы. Это так сильно зависит от Windows, что почти невозможно написать программное обеспечение, используя ту же кодовую базу для других платформ. - person knownasilya; 29.09.2012
comment
Что бы это ни стоило, Microsoft сделала много публичных заявлений о том, как сильно она любит JavaScript и веб-стек, и их бизнес-решения (помимо JS в Win8) отражают это. Сила архитектуры Win8 заключается в том, что можно использовать несколько языковых стеков. На самом деле, нет ничего такого, что нельзя было бы добавить еще одну проекцию позже, чтобы расширить ее еще больше. - person Jeremy Foster; 30.09.2012