Работают ли приложения Windows 8 на совместимых со стандартами JavaScript, HTML5 и CSS3? - PullRequest
5 голосов
/ 16 сентября 2011

Как и большинство разработчиков .NET, я наблюдал за основным событием для Build Event в Анахайме, Калифорния, и у меня были вопросы о новой поддержке создания приложений для Windows 8 с использованием JavaScript, HTML5 и CSS3.

Они показалинемало примеров и даже сказано, что новый рынок Windows 8 был написан с использованием этих технологий.Единственное, о чем я догадываюсь, это когда они помещают JavaScript в одну и ту же категорию C #, в том смысле, что вы можете программировать свои приложения Windows (иметь прямой доступ к .NET), используя JavaScript.

Очевидно, чтовеб-разработчик - это была потрясающая новость, учитывая некоторые приложения, которые я создал с использованием JavaScript, HTML5 и CSS3.

У меня вопрос: действительно ли приложения, которые мы создаем для Windows 8, действительно совместимы с веб-интерфейсом?Можем ли мы создать приложения для Windows 8, развернуть и запустить их в Интернете?Могут ли веб-приложения, которые в данный момент подключены к Интернету, получить доступ к некоторым функциям, которые они продемонстрировали?

Как я уже говорил, это будет потрясающим достижением.Не говоря о Silverlight, для которого я написал немало приложений, и о том, как он работает в смешанных породах.И мысль о замене JavaScript на некоторые из моих приложений, написанных на C #, даже не вариант.

Это просто для того, чтобы заставить разработчиков на основе «сети» разрабатывать для Windows или это кроссплатформенное решение длясоздание приложений?

Ответы [ 3 ]

7 голосов
/ 16 сентября 2011

Небольшое пояснение: программы для окон Javascript / HTML5 / CSS3 работают на новом слое под названием WinRT (среда выполнения Windows), а не .Net. Все новые приложения в стиле Windows Metro будут создаваться поверх этого слоя, а не из более старых .Net. Если ваше приложение использует функции WinRT, очевидно, вам потребуется Windows для запуска приложения. Это ваш выбор, если вы хотите интегрировать эти функции. (Очевидно, это зависит от того, что вы пытаетесь сделать со своим приложением) Я полагаю, что вы можете создать приложение, соответствующее всем стандартам, и запустить его в системе просто отлично - вы просто не будете использовать какие-либо специфические функции MS. В этом смысле это будет похоже на веб-страницу, которую вы запускаете как приложение.

Другие примечания:

  • В настоящее время MSIE использует некоторые -ms специальные префиксы, пока эти функции не будут приняты W3C и не будут иметь официальных кросс-браузерных имен. Не отличается от -webkit-border-radius, -moz-border-radius и border-radius.

  • HTML5 использует некоторые функции, такие как сетки, которые еще не реализованы в большинстве браузеров.

  • Microsoft включает в себя множество библиотек Javascript, чтобы упростить создание приложений. Многие из них основаны на jQuery. Некоторые из них специфичны для Windows. Не уверен, что такое лицензирование, чтобы использовать их в другом месте. Я предполагаю, что jQuery разрешено переносить, тогда как Windows не имеет смысла использовать вне WinRT.

5 голосов
/ 16 сентября 2011

@ Matt

Чтобы уточнить "обратное", стандартное веб-приложение, написанное на HTML5, работающее как приложение Metro:

Если ваше приложение не делает "плохих вещей", тогда да. Среда приложения Metro по умолчанию ограничена. Чтобы получить доступ к нелокальным ресурсам (например, веб-сайту) из приложения в HTML5 / JS, необходимо создать так называемый «веб-контекст».

Веб-контекст предоставляет приложению доступ к Интернету и небезопасным ресурсам, в то же время предотвращая доступ к тому же контексту привилегированных ресурсов, таких как API среды выполнения Windows.

В конечном итоге это означает, что если вам нужно разместить виджет Bing Maps и получить информацию GPS от системы, вам потребуется следующее:

  1. iframe внутри страницы (по умолчанию локальный контекст) с веб-контекстом, содержащим ваш виджет Bing Maps
  2. использовать window.postMessage для отправки данных между локальным контекстом и веб-контекстом (содержится в iframe)
  3. Вызовите API среды выполнения Windows для доступа к местоположению GPS устройства из локального контекста, упомянутого выше

Эта модель приложения обеспечивает вам безопасность, так как ни один веб-сайт, открытый внутри приложения JS, не будет иметь мошеннического JS, выполняющего API среды выполнения Windows для очистки ваших данных. Вероятно, это самая большая область, которую вам придется реструктурировать в существующем веб-приложении, чтобы оно работало, поскольку вы должны передавать данные между контекстами, если они получены из небезопасного ресурса.

1 голос
/ 16 сентября 2011

Короткий ответ - нет - приложения, созданные с использованием стека WinRT, не смогут работать в «обычном» браузере.Хотя я не уверен в обратном - если стандартное веб-приложение, написанное на HTML5, можно запустить как приложение Metro.

...