共用方式為


本文章是由機器翻譯。

Windows Phone

將 Windows Phone 7.1 應用程式升級至 Windows Phone 8

Michael克倫普

Somedevelopers 有升級他們的 Windows Phone 7.1 專案,利用 Windows Phone 8 中的新功能,同時其他有關于怎樣才能升級和什麼額外的工具和功能他們應該使用的問題。在本文中,我將展示 Windows Phone 8 從 Windows Phone 7.1 去是比你想像的更容易。

新的範本

之前看看範本,首先問問你自己你要通過升級來解決什麼實際問題。遊戲開發人員,他們主要工作是與 XNA,可能想要切換到 Direct3D 因為 XNA 不再積極正在由微軟開發。你仍然有創建一個 XNA 應用程式的選項,但它不會利用新的功能在 Windows Phone 8。

此外,本機 Web 開發人員終於有機會的行動,就在互聯網資源管理器中 10 預先安裝在手機上。但除了遊戲和 Web 開發,Windows Phone 8 包含過多的新功能,用於 XAML / C# 和Visual Basic開發人員。

下面是 Windows Phone 8 SDK 中包含的新範本:

  • Windows Phone XAML 和 Direct3D 應用程式:這是用於創建 Windows Phone 託管的應用程式的本機組件的專案。第一次啟動時您會注意到它附帶的兩個專案:Windows Phone 8 專案和 c + + 中的 Windows 運行庫 (WinRT) 元件。
  • Windows Phone HTML5 應用程式:這是用於創建一個 Windows Phone 應用程式,主要使用 HTML 內容的專案。此範本是用 JavaScript (WinJS) 版本的 Windows Phone,它不是 Windows 庫常常混淆起來。它只使用 web 瀏覽器控制項顯示 HTML5 內容。
  • Windows Phone 單元測試:此專案包含可以用來測試 Windows Phone 應用程式的單元測試。安裝Visual Studio更新 2 RTM 版本後,將添加此範本。

升級您的現有專案

當然,新的專案範本説明新的應用程式開發,但現有的基於 XAML 的 app 已經建成與 Windows Phone 7.1 呢?好消息是你可以升級到 Windows Phone 8 此類應用程式通過按右鍵 Windows Phone 7.1 專案Visual Studio2012年中的選擇升級到 Windows Phone 8。您會收到一個提示,提醒您注意在此升級操作無法撤銷,並不會更新任何引用的專案。你會想要確保您的應用程式在繼續之前備份。您還可以通過選擇專案屬性、 在應用程式頁上按一下,從下拉清單中選擇 Windows Phone OS 8 和保存您的更改升級到 Windows Phone 8。

此外,如果你仍有躺在一個 Windows Phone 7 專案,你就會提示將它升級到 Windows Phone 7.1 之前你可以將它升級到 Windows Phone 8。再次,建議您備份您的專案之前。

您的應用程式已經升級到 Windows Phone 8 後,你可以使用新工具和 SDK 功能。現在我來看看在 Windows Phone 8 中找到的所有新的模擬程式選項。

新的模擬程式選項

在 Windows Phone 7.1,您可以部署到只有兩個模擬器類型與目標螢幕尺寸的 480 x 800 (WVGA)。模擬程式圖像中唯一的區別是 RAM (512 MB 或 256 MB) 的數量。Windows Phone 8 中新增了兩個新的螢幕大小:768 x 1280 (WXGA) 和 720 x 1280 (720p)。您還可以下載 Windows Phone SDK 更新為 Windows Phone 7.8 的選項 (在發現 bit.ly/10pauq4) 來添加額外的模擬程式來測試您的應用程式將如何在 Windows Phone 7.8 的設備上運行。因為 Windows Phone XAML 和 XNA 應用程式範本為目標 Windows Phone OS 7.1,您仍然可以測試您的應用程式的 Windows Phone 8 模擬器上。你可以看到的所有舊的和新提供的模擬程式中的清單圖 1


在 Windows Phone 8 圖 1 模擬程式選項

與各種可用的模擬程式,你不再有依賴于具有物理硬體,看到眾多的 Windows Phone 7 和 8 的設備上運行應用程式。新的 Windows Phone 8 模擬程式是真正的虛擬機器 (Vm),並且是對 SDK 作出最佳的改進之一。

附註:你需要 HYPER-V 是只能在 Windows 8 Pro 或企業中,為新的模擬程式。有關更多詳細資訊,在看到 Windows Phone 開發中心頁面時,"系統為要求 Windows Phone 模擬器," bit.ly/QWhAA2

此外,請牢記在現代的 Pc 功能強大的處理器,與之前,應測試您的應用程式在物理設備上將其提交到市場上以衡量真實世界的表現。

現在,你見過的新範本可以怎樣利用不同的開發人員,集和搜索新的模擬程式選項和現有專案升級到 Windows Phone 8 是多麼容易,是時候要開始處理其他 Windows Phone 7 開發人員面對的重要問題。

類比儀表板

Windows Phone 應用程式運行時,各種事物可以中斷使用者體驗:回應較慢,有沒有 Internet 訪問權,撥入電話提醒、 未能恢復其狀態後已鎖定手機,這款應用程式和更多。在 Windows Phone 7.1,你可能必須編寫的代碼,類比這些情況 ; 現在您可以處理這些與全新的類比儀表板,如中所示圖 2


圖 2 類比儀表板包含在 Windows Phone 8 SDK

您可以通過選擇工具訪問此功能表 |從Visual Studio2012年的類比儀表板。使用類比儀表板,您可以測試之前你去市場上多麼好它會根據不同的情況下執行的應用程式。

通過啟用網路模擬和選擇的網路速度,您可以測試各種蜂窩資料網路,以及無線網路連接或沒有網路可用的情形。特別是有趣的是的信號強度選項,會影響資料包丟失率和網路延遲。使用這些選項在您的指尖,您應該能夠創建一個 Windows Phone 8 應用程式,以及在各種場景中執行。

一旦啟用了鎖定螢幕,是停用的目標是 Windows Phone 7.1 的任何應用程式或 8。一旦該設備已被解除鎖定再然後啟動。在類比儀表板,您有能力輕鬆地鎖定或解鎖螢幕來測試您的應用程式如何處理啟動或取消啟動。(可選) 可以按 F12 鍵以顯示鎖定螢幕。

最後,您可以使用"觸發器提醒,"將類比報警、 提醒、 電話、 文字消息或吐司通知。再次,您可以使用這些測試您的應用程式如何處理啟動或取消啟動。

Windows Phone 應用程式分析

説明提供後在他的手機上運行您的應用程式可能會給使用者可能發生的真實場景類比儀表板時,它不會説明你的應用程式的性能。這,您可以使用 Windows Phone 應用程式分析,可以發現在調試 |開始功能表 Windows Phone 應用程式分析。

此工具提供了應用程式監測、 哪些可説明評估的開始時間和回應能力和性能分析。這可以説明您計算執行-或記憶體-­相關的問題在您的應用程式。性能分析的執行選項包括高級的設置,使您能夠做視覺化分析和代碼採樣,雖然記憶體選項,您可以收集記憶體分配堆疊和物件引用的事情。這兩個選項會導致在Visual Studio2012年中顯示一個圖形,以及時間戳記.sap 檔添加到您的專案。帶有生成圖表的你可以向下切入到特定的開始和停止時間,看摘要Visual Studio2012年已生成的觀察。Windows Phone 應用程式分析工具是您品質保證過程的一個組成部分。

存儲測試控管包

你已經測試您的應用程式在不同的使用者的情況下測試應用程式性能的説明下,Windows Phone 應用程式分析工具組後,您需要測試您的應用程式,以確保它在 Windows Phone 存儲是認證。這是時間的關鍵的一步,因為 30 分鐘現在可以節省幾天的失去如果應用程式不使用此工具組已經被抓到的東西。

該工具組,可以輕鬆地在您的應用程式上按右鍵,選擇打開存儲測試控管包的訪問。Windows Phone 7.1 還包括這一功能,但是它被稱為市場測試套件。已添加了新的和改進的測試,Windows Phone 8 的目標。

第一次啟動時你可能會看到一條消息,說你螢幕的底部的藍色背景,與"存儲測試案例已更新。你想要安裝最新的測試案例嗎?"您可以選擇更新和下載新的或修改測試。這是有用的因為你總是知道您正在使用最新的可用的測試。

在螢幕的左側有三個選項卡:應用程式的詳細資訊,自動測試和手動測試。應用程式詳細資訊可確保圖像資源堅持 Windows Phone 存儲區中的準則。這包括存儲瓷磚以及 app 截圖 WVGA、 WXGA 和 720 p 如果您的專案支援這些決議。自動化測試 XAP 包要求,螢幕截圖及影像學檢查。所有你需要做要調用此功能是按一下的運行測試按鈕。最後一個選項卡包含手動測試 ; 寫這篇文章,有 61 手動測試,您可以執行。您必須手動指示是否測試通過或不,但完整的文檔說明如何這樣做。手動測試包括那些為多個設備的支援、 應用程式關閉、 反應能力等。

便捷的當地語系化

與 Windows Phone 7,那裡是一次的機會由許多應用程式開發人員在對他們的應用程式進行當地語系化。這往往是由於這樣一個事實,他們已經從一種語言翻譯為另一種的很少或沒有説明。多語言應用程式工具組和新的專案範本的新版本解決了這個問題。

預設的 Windows Phone 8 範本將指導您通過在 MainPage.xaml 檔中,內置評論與當地語系化和它也結構您的應用程式的説明器類和資源的資料夾。Microsoft 添加多語言應用程式工具組,最初是在 Windows 8 中。一次的Visual Studio2012年多語言的應用程式工具組 (bit.ly/NgggGU) 是安裝了,很簡單: 只要選擇工具 |啟用多語言應用程式工具組。該工具組已啟用為您的專案後,選擇專案 |添加翻譯的語言,如所示,請參閱可用,語言圖 3


圖 3 翻譯的語言對話方塊中包括多語言應用程式工具組

您可以篩選上想要的語言,然後按確定按鈕。它將自動添加到資源資料夾中的適當的語言檔。特別是要注意到的一個檔是一個副檔名為.xlf。這是一個行業標準 XML 當地語系化交換檔案格式 (XLIFF) 檔,為您提供任何偽翻譯精細的控制。按兩下它將彈出多語言編輯器中,將允許您從一種語言翻譯為另一種通過簡單地按一下翻譯按鈕。你可以看到這樣的一個示例圖 4


 圖 4 從一種語言翻譯為另一種

圖 4,你可以看到它會自動為我翻譯了幾個字。翻譯完成後,可以登出或將它傳遞給為審查人類翻譯。在此示例中,唯一需要審查的話"我 TELERIK APP"因為"Telerik"一詞並不是在翻譯資源。人類翻譯將實現 Telerik 的拼寫相同的方式在德國,因為是英文,所以它可以保留原樣。您可以保存此檔,以添加對其他語言的支援。

簡單的方法來測試這是更改以下行 MainPage.xaml 中的應用程式標題:

<TextBlock Text="{Binding Path=LocalizedResources.ApplicationTitle,
  Source={StaticResource LocalizedStrings}}"
  Style="{StaticResource PhoneTextNormalStyle}" Margin="12,0"/>

然後將手機的語言設置為你指定任何語言。 在我的示例中,選擇了德國,和應用程式標題出現作為"人 TELERIK 的應用程式"。

利用共用核心

隨著 Windows 8 的發佈了 Windows Phone 8 開發人員可以使用一個共用的核心。 在 Microsoft.NET Framework 4.5 中更為顯著的改進的一些非同步,等待的支援,以及更簡單的方法來使用獨立存儲。

在 Windows Phone 7.1,你通常會寫在所示的代碼圖 5 將檔寫入獨立存儲。

圖 5 將檔寫入獨立存儲在 Windows Phone 7.1

private void WriteFileToIsolatedStorage(string fileName, 
  string fileContent)
{
  using (IsolatedStorageFile isolatedStorageFile =
    IsolatedStorageFile.GetUserStoreForApplication())
  {
    using (IsolatedStorageFileStream isolatedStorageFileStream =
      isolatedStorageFile.CreateFile(fileName))
    {
      using (StreamWriter streamWriter =
        new StreamWriter(isolatedStorageFileStream))
      {
        streamWriter.Write(fileContent);
      }
    }
  }
}

中的代碼圖 5使用 System.IO.IsolatedStorage 命名空間,在 Windows 8 中未找到。 相反,Windows 8 和 Windows Phone 8 可以使使用的 Windows.Storage 和要防止性能瓶頸,並提高您的應用程式的總體回應速度的非同步/等待模式。 這裡是如何在 Windows Phone 8,利用共用核心中編寫相同的確切調用的示例:

public async Task WriteFileToIsolatedStorage(
  string fileName, string fileContent)
{
  IStorageFolder applicationFolder = 
    ApplicationData.Current.LocalFolder;
  IStorageFile storageFile = await applicationFolder.CreateFileAsync(
    fileName, CreationCollisionOption.ReplaceExisting);
  using (Stream stream = await storageFile.OpenStreamForWriteAsync())
  {
    byte[] content = Encoding.UTF8.GetBytes(fileContent);
    await stream.WriteAsync(content, 0, content.Length);
  }
}

大量使用在 Windows 8 中的另一個命名空間是 HttpClient。 雖然 Windows Phone 8 SDK 仍然使用 WebClient 類在預設情況下,Microsoft 提供了通過 NuGet HttpClient 類。 如果您只需搜索"Microsoft.Net.Http"和安裝 NuGet 包,則可以在 Windows 8,以及 Windows Phone 8 編寫代碼如下面的程式碼片段,將工作:

private async void Button_Click(object sender, RoutedEventArgs e)
{
  var httpClient = new HttpClient();
  var request = await httpClient.GetAsync(new Uri(
    "https://www.microsoft.com/", UriKind.RelativeOrAbsolute));
  var txt = await request.Content.ReadAsStringAsync();
  // Do something with txt, such as MessageBox.Show(txt)
}

關鍵的新功能

到目前為止我已經討論了各種方式來説明您過渡到 Windows Phone 8 更輕鬆。 我現在就會看看幾個新功能,您的應用程式不能沒有。

新的平鋪的類型 Windows Phone 7.1 有一種平鋪類型稱為翻轉平鋪和一個圖塊大小,173 x 173,否則稱為中期平鋪的類型。 Windows Phone 8 引入了新的平鋪類型和大小:

  • 翻轉圖塊:這是相同的 Windows Phone 7.1 除了新的拼貼大小 ; 它翻轉從前面到後面。
  • 標誌性的圖塊:這很大程度上基於 Windows Phone 設計原則為一個現代的外觀。
  • 週期圖塊:這允許您通過最多九個圖像迴圈。

拼貼大小比較可以發現在圖 6

圖 6 檔案大小比較各種瓷磚類型之間

拼貼大小 翻轉和週期大小 (圖元) 標誌性大小 (圖元)
少量 159 x 159 110 x 110
336 x 336 202 x 202
691 x 336 N/A

瓷磚可以輕鬆地配置通過 WMAppManifest.xml 檔通過選擇"平鋪範本",然後添加適當的圖像。 你也可能會通過代碼隱藏,設置這和"翻轉平鋪範本,可以在開發人員中心找到 Windows Phone 8" bit.ly/10pavKC

鎖定螢幕和通知在 Windows Phone 7.1 聲道中,你可以看到只有通知訊息、 短信和電話等。 現在您的使用者已經使用您的應用程式作為一個供應商鎖定螢幕背景圖像和早些時候包括類似于那些描述自訂通知的能力。 設置背景圖像可以是那麼容易,因為將圖像添加到您的資料夾,與內容類型和更新應用程式清單檔來聲明您的應用程式作為背景的提供程式。 用按右鍵 WMAppManifest.xml 檔 ; 選擇"打開方式",然後選擇 XML (文本) 編輯器 ; 然後將添加此擴展:

<Extensions>
  <Extension ExtensionName="LockScreen_Background"
    ConsumerID="{111DFF24-AA15-4A96-8006-2BFF8122084F}" TaskID="_default" />
</Extensions>

接下來,調用的代碼片段中所示圖 7

圖 7 設置手機的鎖螢幕的背景圖像

private async void btnLockScreenImage_Click_1(
  object sender, RoutedEventArgs e)
{
  if (!LockScreenManager.IsProvidedByCurrentApplication)
  {
    await LockScreenManager.RequestAccessAsync();
  }
  if (LockScreenManager.IsProvidedByCurrentApplication)
  {
    Uri imageUri=new Uri(
      "ms-appx:///LockScreen.jpg", UriKind.RelativeOrAbsolute);
    Windows.Phone.System.UserProfile.LockScreen.SetImageUri(imageUri);
  }
}

你會注意到你開始的第一次檢查,看看使用者是否有存取權限更改背景。 如果不是,你會提出要求的許可權,一個 GUI 然後創建一個 URI 的路徑到你的形象和使用 Windows.Phone.System.UserProfile.LockScreen 命名空間來設置它。

您還可以添加要顯示一個圖示和一個計數的通知 — — 的消息,調用,所以 — — 在 Windows Phone 8 設備上的通知區域中。 對此的詳細資訊,見第條,"鎖定螢幕通知為 Windows Phone 8,"在 bit.ly/QhyXyR

語音的最令人興奮的新功能之一就是語音。 Windows Phone 8 SDK 中包含幾個語音元件:

  • 文本語音轉換 (也稱為語音合成):這允許文本,將返回到使用者通過手機揚聲器、 耳機或Bluetooth連接講了話。
  • 語音到文本 (也稱為語音辨識):這允許您的使用者發言到手機的命令來完成任務。
  • 聲音命令:這些允許您的使用者發言在您的應用程式的命令通過按住開始按鈕,並說"打開"開始,"其次是您的應用程式名稱,才能執行某些任務。

所有這一切才有可能與 Speech.Synthesis 和 Speech.Recognition 的 Api。 文本到語音轉換的一個簡單實現可以完成與兩個程式碼的事件處理常式中:

private async void Button_Click(object sender, RoutedEventArgs e)
{
  SpeechSynthesizer synth = new SpeechSynthesizer();
  await synth.SpeakTextAsync("The latest MSDN issue has arrived!");
}

只是要確保非同步和等待營辦商已添加到該方法。

使最大的您移動

我討論過的一切從新模具和範本對某些 Windows Phone 8 SDK 中包含的新功能。我所示執行當地語系化是多麼容易,所述基礎與 Windows 8 的共用代碼額外的獎勵。你現在應該與知識裝備從 Windows Phone 7 的最大的移動向 Windows Phone 8。

Michael Crump  是微軟最有價值球員、 INETA 冠軍和幾個.NET 框架 e-書的作者。他在 Telerik 工作重點放在 XAML 控制套件。您可以在 Twitter 上與他聯繫twitter.com/mbcrump 或跟上他的博客,請訪問 michaelcrump.net

衷心感謝以下技術專家對本文的審閱:JeffBlankenburg (Microsoft) 和Lance麥卡錫 (Telerik)
JeffBlankenburg (Jeffrey.Blankenburg@microsoft.com) 開發者福音傳教士在 Microsoft,合著的書,遷移到 Windows Phone (Apress,2011年) 和幾個技術會議的召集人。

Lance麥卡錫是諾基亞大使和 Telerik XAML 支援專家