以 JavaScript 和 C++ 開發使用 Bing 地圖服務路線最佳化程式這個 Windows 市集應用程式
這部分文件中的文章說明如何使用 JavaScript 和 Visual C++ 建立名為 Bing 地圖服務路線最佳化程式的 Windows 市集應用程式。 與網站不同的是,使用 JavaScript 的 Windows 市集應用程式不會從 Web 伺服器逐頁部署。 相反地,它會由使用者安裝在電腦上。 就像其他 Windows 應用程式一樣,JavaScript Windows 市集應用程式可以直接存取基礎平台,而且可與其他應用程式共用資訊。
在 JavaScript Windows 市集應用程式中使用 C++,完全操控電腦的功能。 Bing Maps Trip Optimizer 使用 JavaScript,在 Windows 執行階段 C++ 元件中定義 UI 和平行模式程式庫 (PPL),以在所有可用的 CPU 上平行執行密集運算的演算法,進而改善整體效能。 您也可以使用程式庫 (例如 C++ Accelerated Massive Parallelism (C++ AMP),在圖形處理單元 (GPU) 上執行密集運算的工作。
注意事項 |
---|
若要下載 Windows 市集版本的 Bing 地圖服務路線最佳化程式原始程式碼,請參閱 Bing 地圖服務路線最佳化程式範例 (英文)。 |
Bing Maps Trip Optimizer 應用程式是以現有的程式碼為基礎,而現有程式碼乃使用 HTML 和 JavaScript 來定義 UI 和 C++ ActiveX 控制項,以執行背景處理。 這一部分的文件還描述我們如何將 ActiveX 版本的應用程式移轉到 Windows 市集應用程式,以及將現有 JavaScript 和 ActiveX 程式碼移轉為 Windows 市集應用程式碼時的一些考量。 若要下載 ActiveX 版本的 Bing 地圖服務路線最佳化程式原始程式碼,請參閱 Bing 地圖服務路線最佳化程式範例 (英文)。
提示
當我們將 ActiveX 版本的 Bing 地圖服務路線最佳化程式轉換為 Windows 市集應用程式時,我們也會維護 JavaScript 和 C++ 的使用。不過,如果您要從頭開始建立這個應用程式,您可以使用其他語言。例如,您可以使用 XAML 定義 UI 和 .NET Framework,以執行路由運算。如需如何為您的應用程式選擇正確語言和技術的資訊,請參閱 Windows 市集應用程式入門。
您也可以建立採用 JavaScript 和 .NET Framework 的混合語言應用程式。如需這類應用程式的詳細資訊,請參閱在 C++ 和 Visual Basic 中建立 Windows 執行階段元件。
雖然 Bing 地圖服務路線最佳化程式說明的設計樣式是我們認為使用 JavaScript 和 C++ 來建立 Windows 市集應用程式的最佳作法,但是您可以調整許多實作細節,以符合您自己的作法和您所開發的應用程式的獨特需求。 例如,應用程式的 C++ 部分會使用 IXMLHTTPRequest2 介面來處理 HTTP 要求。 您可以在您的應用程式中依循相同的模式。 當我們認為 Bing Maps Trip Optimizer 實作是成功開發應用程式的關鍵時,我們會在此文件中強調。
本文內容
介紹 Bing Maps Trip Optimizer
必要條件
本文件的對象
本文件涵蓋的範圍
本文件未涵蓋的範圍
後續步驟
相關文章
介紹 Bing Maps Trip Optimizer
Bing Maps Trip Optimizer 可計算一組位置中的最短路由 (這個傳統計算問題也稱為「旅行業務員問題」(Traveling Salesman Problem))。 旅行業務員問題通常是以強行攻擊技巧來破解:計算出所有位置中的每一條可能路由並選擇最短的路由。 隨著您增加位置的個數,這個問題的困難度會以等比級數增加。 因為強行攻擊方式可能無法在合理的時間內解決較大型的問題,所以 Bing Maps Trip Optimizer 使用「蟻群最佳化」(Ant Colony Optimization) 演算法,更迅速、有效地接近最短的路由。
Bing Maps Trip Optimizer UI 是以 HTML 和 JavaScript 撰寫。 UI 會向使用者收集位置資料,並在 Bing Maps AJAX 控制項上顯示所有位置之間的最短路由。 最短路由計算和與 Bing Maps 具像狀態傳輸 (REST) API 的互動則是以 C++ 撰寫。 語言之間的平順互通性是 Windows 執行階段的關鍵,因為它可讓您將每種語言的最佳功能合併成一個應用程式。 在 Bing Maps Trip Optimizer 的案例中,HTML 和 JavaScript 用於定義 UI,而 C++ 則用於執行更密集運算作業。
雖然許多 Windows 市集應用程式都使用黯淡展示主題,協助延長行動裝置的電池壽命,但我們仍採用明亮展示更貼近 Bing 地圖服務網站。 採用明亮主題也可協助您比較應用程式的 Windows 市集與 ActiveX 版本之間的差異。
注意事項 |
---|
Bing Maps Trip Optimizer 的主要目的在於示範如何在 JavaScript 與 C++ 之間相互操作。我們也想顯示如何調整現有的程式碼以供在 Windows 市集應用程式中使用。因此,UI 不符合造就優越 Windows 市集應用程式的所有使用者經驗 (UX) 方針。請參閱設計個案研究:Windows 市集應用程式的網站,了解如何將網站轉型以建立真正豐富的使用者經驗。 |
[頂端]
必要條件
Windows 8
Visual Studio 2012
熟悉 JavaScript 和 C++ 程式設計
如果您不清楚如何在 Windows 市集應用程式中使用 JavaScript,請考慮是否要閱讀開發 Windows 市集應用程式 (JavaScript)。 這篇文章會逐步引導您建立完整但基本的 JavaScript Windows 市集應用程式。
如需 JavaScript Web 應用程式與為 Windows 執行階段撰寫的 JavaScript Windows 市集應用程式有何差異的詳細資訊,請參閱使用 JavaScript 與傳統 Web 應用程式的 Windows 市集應用程式。
[頂端]
本文件的對象
如果您想用 JavaScript 撰寫 Windows 市集應用程式,而且也想使用 C++ 來執行下列作業,就可能會對這個範例和文件有興趣:
改善效能或執行密集運算作業。
存取在目前版本中無法透過 Windows 執行階段存取的 Windows 作業系統服務。
重複使用已撰寫並測試的現有程式碼。
我們希望您使用本文件中的原則和作法,建立同時採用 C++ 的 JavaScript Windows 市集應用程式。 具有 C++ 的經驗或懷有濃厚興趣有助於讓您充分利用本文件。 即使您沒有 C++ 設計的經驗,只要使用過類似的程式設計語言或 .NET Framework,仍然可以受益。
如需如何用 C++ 建立可從使用 JavaScript 建置的 Windows 市集應用程式呼叫之 Windows 執行階段元件的基本簡介,請參閱在 C++ 中建立 Windows 執行階段元件。
[頂端]
本文件涵蓋的範圍
這部分文件中的文章說明如何:
使用 Visual Studio 建立參考 C ++ Windows 執行階段元件的 JavaScript Windows 市集應用程式。
將 JavaScript 程式碼分為參考 Web 和 Windows 執行階段元件的模組。
建立 C ++ Windows 執行階段元件,以執行密集運算作業。
在 JavaScript 和 C++ 之間相互操作。
移轉程式碼 (例如,現有的 COM 程式碼),以便在 Windows 市集應用程式中使用。
[頂端]
本文件未涵蓋的範圍
本文件不探討下列 Windows 市集應用程式開發層面:
應用程式設計原則。
C++ 或 JavaScript 程式設計基礎。
有關蟻群最佳化演算法的詳細資料。
如何對應用程式的行為或效能問題進行疑難排解。
如何準備您的應用程式以便用於其他地區設定。
如何將應用程式認證和發行到 Windows 市集。
此應用程式的焦點在於 JavaScript 和 C++ 之間的互通性。 因此,我們不會實作可造就優越 Windows 市集應用程式的每項功能。 我們未實作的其中一項重要功能,就是當使用者在應用程式關閉後執行時 (例如,在重新開機之後),還原應用程式狀態的功能。 如需示範此功能的範例,請參閱應用程式啟用、繼續和暫止範例 (英文)。
下列資源可協助您了解 Windows 市集應用程式開發。
定義遠景
提供在您規劃 Windows 市集應用程式時所應考量的事項。Visual C++ 語言參考 (C++/CX)
說明用於建立 Windows 市集應用程式和元件的 C++ 程式設計模型。 說明原生 C++ 如何直接與各種語言 (例如 JavaScript) 相互操作,而不需要中繼軟體層。JavaScript 語言參考
說明 JavaScript 的 Microsoft 實作,符合 ECMAScript 5th Edition 語言規格。 Microsoft 實作同時也提供 Ecma 標準未包含的其他功能。快速入門:偵錯 HTML、CSS 和 JavaScript
提供如何對 JavaScript Windows 市集應用程式進行偵錯的概觀。定義應用程式資源 (使用 JavaScript 和 HTML 的 Windows 市集應用程式)
描述如何定義應用程式資源來改進可維護性和當地語系化。Selling apps
說明將應用程式發行到 Windows 市集 所需的步驟。
[頂端]
後續步驟
如需如何載入及執行專案和整個應用程式流程的資訊,建議您閱讀 使用 Bing 地圖服務路線最佳化程式範例概觀。 下表說明這部份文件中的文章,方便您參考。
[頂端]
相關文章
標題 |
描述 |
---|---|
說明 Bing Maps Trip Optimizer 專案的基本特性,例如,如何建立和建構該專案,以及其建置方式。 |
|
說明如何組織應用程式的 JavaScript 部分,以及本機和 Web 內容如何彼此通訊。 |
|
說明 Bing Maps Trip Optimizer 的 C++ 元件。 |
|
說明 Bing Maps Trip Optimizer 範例的 JavaScript 和 C++ 組件如何相互操作。 |
|
特別說明當我們從 ActiveX 版本的 Bing 地圖服務路線最佳化程式移轉至 Windows 市集應用程式時所遵循的一些主要方針。 |
[頂端]