Поделиться через


Разработка Bing Maps Trip Optimizer — приложения для Магазина Windows — с помощью JavaScript и C++

В статьях в этом разделе документации описывается создание приложения Магазин Windows под именем Bing Maps Trip Optimizer с использованием JavaScript и Visual C++. В отличие от веб-сайта, приложение Магазин Windows, использующее JavaScript, не развертывается на веб-сервере в виде отдельных страниц. Вместо этого он устанавливается на компьютер пользователем. Как и любое другое приложение Windows, JavaScript-приложение Магазин Windows имеет прямой доступ к соответствующей платформе и может обмениваться информацией с другими приложениями.

Использование C++ в JavaScript-приложении Магазин Windows позволяет в полной мере использовать возможности компьютера. В приложении Bing Maps Trip Optimizer язык JavaScript используется для определения пользовательского интерфейса, а библиотека параллельных шаблонов (PPL) в компоненте Среда выполнения Windows C++ используется для параллельного выполнения требовательных к вычислительным ресурсам алгоритмов на всех доступных процессорах, чтобы повысить общую производительность. Кроме того, для выполнения сложных вычислительных задач на графическом процессоре можно использовать такие библиотеки, как C++ Accelerated Massive Parallelism (C++ AMP).

Примечание

Чтобы загрузить версию исходного кода приложения Магазин Windows Bing Maps Trip Optimizer, перейдите на страницу Пример приложения Bing Maps Trip Optimizer.

Приложение Bing Maps Trip Optimizer основано на существующем коде, в котором для определения пользовательского интерфейса используются языки HTML и JavaScript, а для выполнения вычислений используется элемент управления ActiveX C++. Эта часть документации также описывает, как мы переносили версию ActiveX приложения в приложение Магазин Windows, а также некоторые аспекты, которые нужно учитывать при переносе существующего кода JavaScript и ActiveX в код приложения Магазин Windows. Чтобы загрузить версию исходного кода приложения ActiveX, см. страницу Bing Maps Trip Optimizer.

Совет

При преобразования версии ActiveX приложения Bing Maps Trip Optimizer в приложение Магазин Windows мы поддерживали использование JavaScript и C++.Однако если создавать приложение с нуля, можно использовать и другие языки.Например, можно использовать XAML для определения пользовательского интерфейса и .NET Framework для выполнения вычислений маршрута.Сведения о том, как выбирать язык и технологии для приложения, см. в разделе Начало работы с приложениями для Магазина Windows.

Кроме того, можно создать приложение на нескольких языках с использованием JavaScript и .NET Framework.Дополнительные сведения о приложениях этого типа см. в разделе Создание компонентов среды выполнения Windows в C# и Visual Basic.

Хотя Bing Maps Trip Optimizer демонстрирует принципы разработки, которые мы считаем оптимальными при создании приложений Магазин Windows с помощью JavaScript and C++, вы можете адаптировать большую часть особенностей реализации в соответствии со своими подходами и уникальными требованиями приложения, которое вы разрабатываете. Например, часть C++ приложения использует интерфейс IXMLHTTPRequest2 для обработки HTTP-запросов. Вы можете использовать этот подход и в своем приложении. Если мы полагаем, что определенная реализация в Bing Maps Trip Optimizer важна для успешной разработки приложений, мы обращаем на это внимание в данной документации.

Содержание этой статьи

  • Знакомство с приложением Bing Maps Trip Optimizer

  • Предварительные требования

  • Кому необходимо ознакомиться с этой документацией

  • Что входит в эту документацию

  • Что не входит в эту документацию

  • Следующие шаги

  • Связанные статьи

Знакомство с приложением Bing Maps Trip Optimizer

Bing Maps Trip Optimizer вычисляет кратчайший маршрут между набором точек (это классическая вычислительная задача, также называемая задачей коммивояжера). Задача коммивояжера обычно решается методом простого перебора: вычисление всех возможных маршрутов через все точки и выбор самого короткого из них. Сложность задачи экспоненциально растет по мере увеличения числа точек. Поскольку решение задачи методом простого перебора может занимать слишком много времени, в Bing Maps Trip Optimizer используется подход, называемый алгоритмом оптимизации "колония муравьев" и позволяющей более быстро и эффективно получить приблизительный кратчайший маршрут.

Пользовательский интерфейс Bing Maps Trip Optimizer написан на языках HTML и JavaScript. Пользовательский интерфейс собирает местоположения от пользователя и показывает самый короткий маршрут между всеми местоположениями в элементе управления AJAX службы Bing Maps. Вычисление кратчайшего маршрута и взаимодействие с API Bing Maps Representational State Transfer (REST) реализовано на языке C++. Простое взаимодействие между языками играет ключевую роль в Среда выполнения Windows, поскольку оно позволяет сочетать лучшие функции каждого из языков в одном приложении. В случае Bing Maps Trip Optimizer языки HTML и JavaScript определяют пользовательский интерфейс, а C++ реализует трудоемкие вычислительные операции.

Bing Maps Trip Optimizer

Хотя во многих приложениях Магазин Windows используется темное оформление, экономящее заряд аккумулятора мобильных устройств, мы применяем светлую тему, чтобы оформление больше походило на веб-сайт Bing Maps. Использование светлого оформления также позволяет лучше видеть различия между версиями ActiveX и Магазин Windows приложения.

Примечание

Основная цель приложения Bing Maps Trip Optimizer — продемонстрировать возможности взаимодействия между JavaScript и C++.Кроме того, мы хотели показать, как адаптировать имеющийся код для использования в приложениях Магазин Windows.Поэтому пользовательский интерфейс не соответствует всем рекомендациям по разработке пользовательского интерфейса, позволяющим создавать лучшие приложения Магазин Windows.О преобразовании веб-сайта для создания по-настоящему удобного механизма взаимодействия с пользователем читайте в материале с примером преобразования веб-сайта в приложение для Магазина Windows.

[Наверх]

Предварительные требования

  • Windows 8

  • Visual Studio 2012

  • Знакомство с программированием на языках JavaScript и C++

  • Ключ карт Bing

Имеет смысл прочитать статью Разработка приложений для Магазина Windows (JavaScript), если вы не знакомы с использованием JavaScript в приложении Магазин Windows. В нем содержатся пошаговые инструкции по созданию законченного, но простого приложения Магазин Windows на языке JavaScript.

Дополнительные сведения о том, чем веб-приложение JavaScript отличается от JavaScript-приложения Магазин Windows, которое создано для среды выполнения Windows, см. в разделе Сравнение JavaScript-приложений для Магазина Windows с традиционными веб-приложениями.

[Наверх]

Кому необходимо ознакомиться с этой документацией

Этот пример и документация могут быть интересны для вас, если вы планируете написать приложение Магазин Windows на языке JavaScript и также планируете использовать C++ для:

  • повышения производительности или выполнения трудоемкий вычислительных операций;

  • обращения к службам операционной системы Windows, которые недоступны из текущей версии среды выполнения Windows;

  • повторного использования существующего кода, который уже написан и протестирован.

Мы надеемся, что описанные в этой документации принципы и подходы помогут вам создавать собственные JavaScript-приложения Магазин Windows, которые также используют C++. Опыт работы или заинтересованность в программировании на C++ помогут вам извлечь максимальную пользу из этой документации. Если у вас нет опыта работы с языком в C++, но есть опыт работы с похожими языками программирования или с .NET Framework, эта документация также будет полезной для вас.

Базовые сведения о создании на языке C++ компонента Среда выполнения Windows, который может вызываться из приложения Магазин Windows, написанного на JavaScript, см. в разделе Создание компонентов среды выполнения Windows в C++.

[Наверх]

Что входит в эту документацию

В статьях этой документации рассматриваются следующие темы.

  • Использование Visual Studio для создания JavaScript-приложения Магазин Windows, ссылающегося на компонент Среда выполнения Windows C++.

  • Деление кода JavaScript на модули, которые ссылаются на веб-компоненты и компоненты Среда выполнения Windows.

  • Создание компонента Среда выполнения Windows C++, выполняющего трудоемкие вычислительные операции.

  • Взаимодействие между JavaScript и C++.

  • Перенос кода, например существующего кода модели COM, для использования в приложении Магазин Windows.

[Наверх]

Что не входит в эту документацию

В этой документации не описаны следующие аспекты разработки приложений Магазин Windows.

  • Принципы разработки приложений.

  • Основы программирования на C++ и JavaScript.

  • Подробные сведения об алгоритме оптимизации "колония муравьев".

  • Устранение неполадок, связанных с поведением и производительностью приложения.

  • Подготовка приложения к использованию с другими языковыми стандартами.

  • Сертификация приложения и его публикация в Магазин Windows.

Это приложение главным образом нацелено на демонстрацию взаимодействия между JavaScript и C++. Поэтому мы не реализовали все возможности, которые должны быть в высококачественных приложениях Магазин Windows. Одна из важных функций, которую мы не реализовали, — возможность восстановления состояния приложения, когда пользователь запускает его после закрытия (например, после перезагрузки). Пример, демонстрирующий эту функцию, см. в разделе Пример активации и приостановки выполнения приложения.

Следующие ресурсы могут помочь разобраться в разработке приложений Магазин Windows.

  • Планирование приложений для Магазина Windows
    Содержит описание факторов, которые нужно учитывать при планировании приложений Магазин Windows.

  • Справочник по языку C++ (C++/CX)
    Описывает модель программирования C++ для создания приложений и компонентов Магазин Windows. Описывает, как неуправляемый код C++ может напрямую взаимодействовать с такими языками, как JavaScript, без создания промежуточных слоев программного обеспечения.

  • Справочник по языку JavaScript
    Объясняет реализацию JavaScript корпорации Майкрософт, соответствующую требованиям спецификации языка ECMAScript версии 5. Реализация Майкрософт также поддерживает дополнительные функции, которые не включены в стандарты Ecma.

  • Краткое руководство: отладка приложений (JavaScript)
    Содержит обзор отладки JavaScript-приложений Магазин Windows.

  • Определение ресурсов приложения
    Описывает, как определять ресурсы приложения, чтобы упростить обслуживание и локализацию.

  • Selling apps
    Описывает шаги, необходимые для публикации приложения в Магазин Windows.

[Наверх]

Следующие шаги

Рекомендуется прочесть Общие сведения о примере Bing Maps Trip Optimizer для получения сведений о том, как загружать и запускать проекты, а также об общем порядке работы приложения. В следующей таблице перечислены статьи этой части документации, чтобы их было проще находить.

[Наверх]

Связанные статьи

Заголовок

Описание

Общие сведения о примере Bing Maps Trip Optimizer

В этом документе описываются основные характеристики проекта Bing Maps Trip Optimizer, например процедуры его создания, структурирования и построения.

Использование JavaScript в примере Bing Maps Trip Optimizer

В этом документе поясняется, как организована часть приложения, написанная на языке JavaScript, и описывается способ взаимодействия между контекстами.

Использование C++ в примере Bing Maps Trip Optimizer

В этом документе описывается компонент C++ приложения Bing Maps Trip Optimizer.

Взаимодействие кода JavaScript и C++ в примере Bing Maps Trip Optimizer

В этом документе рассматривается взаимодействие частей JavaScript и C++ примера приложения Bing Maps Trip Optimizer.

Перенос существующего кода в примере Bing Maps Trip Optimizer

В этом документе рассматриваются некоторые ключевые рекомендации, которым мы следовали при переходе от версии Bing Maps Trip Optimizer на базе ActiveX к приложению Магазин Windows.

[Наверх]

См. также

Основные понятия

Создание компонентов среды выполнения Windows

Другие ресурсы

Roadmap for Windows Store apps using C++