Преимущества и недостатки использования XAML / C # или HTML5 / JavaScipt для приложений Metro? [закрыто]

19

Мне просто было интересно, есть ли какие-либо существенные преимущества или недостатки в использовании XAML / C # или HTML5 / JavaScript для приложений Metro.

Эйн Дофус
источник

Ответы:

18

В качестве небольшого фона я создал приложение American Airlines для Windows 8 на HTML5. Я должен сказать, что это было фантастически.

Во-первых, отбросьте все свои идеи о HTML5 в отношении мобильных приложений. В Windows 8 JavaScript является родным языком первого класса. У вас есть доступ ко всем аппаратным функциям приложения XAML. Есть также фантастические шаблоны, встроенные в Visual Studio 2012 для приложений WinJs.

WinJs - это не просто полусмысленная реализация webview. Microsoft наконец показывает JS уважение, которого она заслуживает.

Я бы посоветовал освоиться с последним и лучшим в IE10. Честно говоря, это основная структура для всех вещей WinJs. Это мощный и быстрый! Вот пример того, что вы можете сделать с ним: http://www.cuttherope.ie/ .

Кроме того, вот отличное место для начала работы с WinJs: http://msdn.microsoft.com/en-us/library/windows/apps/br211385.aspx

Будущее JS выглядит как родной язык для Windows.

Филип Берч
источник
4
Во-первых, JavaScript - это язык сценариев, а не родной язык. (Если я что-то пропустил, и теперь это напрямую скомпилировано в машинный код). Во-вторых, это не первоклассный язык в Win8, поскольку он предназначен для разработки приложений Metro, а не любых приложений (настольных приложений, игр DirectX 11 и т. Д.).
Ден
3
«Cut the Rope» - тщательно подобранный плакатный ребенок. Обратите внимание, что в то же время происходит относительно небольшое количество вещей. Если бы у него были сотни спрайтов, как это делают современные настольные игры, было бы трудно показать приличный FPS, работающий на JS.
Ден
2
Привет Ден - ваши комментарии, кажется, не добавляют к обсуждению. Вы говорите, что, поскольку он не скомпилирован в машинный код, его не стоит использовать для приложений метро? На ваш второй комментарий о Cut the Rope вы не написали бы «современную настольную игру» с большим количеством FPS в javascript или XAML, так что я думаю, что это не имеет отношения к обсуждению.
Филипп Берч
1
Филипп, вы сказали: «Вы бы не написали« современную настольную игру »с большим количеством FPS в javascript или XAML», возможно ли сделать современную игру для устройств на Windows 8? И если так, будут ли современные игры ограничиваться устройствами Intel, поскольку устройства ARM поддерживают только WinRT?
Эйн Дуфус
1
@PhillipBurch: моя точка зрения такова, что «родной», «первый класс», «мощный и быстрый» - вводящий в заблуждение выбор слов. И я бы наверняка подумал об использовании C # + SharpDX / MonoGame (конечно, не XAML) для разработки высокопроизводительных игр для Metro (ARM - это отдельная история).
Ден
4

И то и другое. Поскольку оба они принимаются разработчиками (хотя не одновременно, я имею в виду то, что некоторые разработчики используют XAML / C #, другие используют HTML / JS). Тем, кто работает в среде разработчиков веб-приложений, проще перейти на HTML / JS. А для тех, кто знаком с XAML через WPF и Silverlight, имеет смысл перенести эти навыки в XAML + C #. Что касается результатов, обе технологии показывают хорошие результаты. Так что я думаю, что оба будут одинаково хороши в ближайшие годы.

Мамта Д
источник
3

Приложения Metro, созданные с использованием API-интерфейсов HTML5 / JS, вероятно, будут классифицированы как «более простые» по сравнению с их аналогами в C # / XAML. Хотя первый, безусловно, будет способен создавать функциональные, хорошо разработанные приложения, несомненно, будет ограничение возможностей приложения, построенного на HTML5. С другой стороны, хотя C # может быть более способным, он также более сложный. Приложение HTML5 будет очень легко разрабатывать и поддерживать, сравнительно.

По крайней мере, это мое предположение. У меня нет опыта разработки приложений для Win8 (пока).

Зак Дзюра
источник
3
Я не думаю, что это так. У них обоих есть доступ к абсолютно одинаковым API в WinRT.
Ян
2

Оба будут работать на WinRT (так называемая урезанная версия Windows 8, которая используется на устройстве MS Surface ).

Это будет полностью зависеть от предпочтений разработчиков . Таким образом, разработчики с опытом работы с HTML5 / JS будут в равной степени способны разрабатывать для Windows 8.

Юсубы
источник
WinRT НЕ «также известен как» Windows 8. Это урезанная версия полноценной ОС Windows 8, которая работает только с интерфейсом / приложениями метро и работает на планшетах на базе ARM.
Treecoder
Да, Windows 8 не является Win RT. Однако, если это было смыслом, который вы получите, прочитав мой ответ, я сделал это утверждение более явным.
Юсубов
1

Не программист MS - с точки зрения программистов, стоит потратить ваше время и усилия на независимость от платформы, открытый стандарт, такой как JS + HTML 5. Полученные знания могут быть использованы в других местах.

Win 8 изначально поддерживает JS , поэтому вы вряд ли сможете добиться того, чтобы ее использовать.

JVXR
источник
0

Да, в большинстве случаев JavaScript является родным языком. В зависимости от того, где он работает, его компилируют (стиль JIT) в машинный код.

Например, если вы используете браузер Chrome, движок V8 делает именно то, что упомянуто выше. Насколько я понимаю, IE 10 делает то же самое, что и в других распространенных браузерах, которые поддерживают стандарт ECMAScript 262.

Entou, в большинстве случаев JavaScript больше не является интерпретируемым языком. Это полноценный, объектно-ориентированный, основанный на прототипах, клиент-серверный, вездесущий язык программирования.

Кевин
источник