日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程语言 > asp.net >内容正文

asp.net

[WPF] 使用 Visual Studio App Center 持续监视应用使用情况和问题

發(fā)布時(shí)間:2024/1/1 asp.net 38 豆豆
生活随笔 收集整理的這篇文章主要介紹了 [WPF] 使用 Visual Studio App Center 持续监视应用使用情况和问题 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

1. 什么是AppCenter

Visual Studio App Center 是幾個(gè)常見移動開發(fā)和云集成服務(wù)(如持續(xù)集成、持續(xù)交付和自動 UI 測試等服務(wù))的集合。 這些 App Center 服務(wù)可以針對 iOS、Android、WPF/Winforms、通用 Windows 平臺 (UWP) 和 tvOS 應(yīng)用運(yùn)行。

App Center 服務(wù)使開發(fā)人員可以輕松地生成、測試和分發(fā)應(yīng)用程序。 應(yīng)用由測試人員或客戶使用之后,App Center 會提供服務(wù)來監(jiān)視其應(yīng)用的使用情況和問題。

作為一個(gè)桌面軟件開發(fā)人員我很關(guān)心軟件的使用情況,但又偏偏很難獲取這些內(nèi)容,App Center 的診斷和分析功能正好滿足我的需求,而且這兩個(gè)功能可以免費(fèi)使用且十分簡單易用。這篇文章將重點(diǎn)介紹如何在 WPF 項(xiàng)目中使用這兩個(gè)功能。

2. 先決條件

  • 你的項(xiàng)目面向的是 .NET Framework 4.6.1 (或更高版本) 或 .NET Core 3.0 (或更高) 版本。
  • 僅當(dāng) WPF/WinForms 應(yīng)用程序在 Windows 上運(yùn)行時(shí),才支持 .NET Core。
  • 如果你使用的是可移植庫中的 SDK,則它必須面向 .NET standard 1.0 或更高版本, (不支持 PCL) 。

3. 快速入門

首先需要在 App Center 上創(chuàng)建一個(gè)應(yīng)用:

  • 登錄到 Visual Stuido App Center。
  • 在頁面的右上角單擊 Add New,然后在下拉列表中選擇 Add new app
  • 在如下圖所示的表單中輸入應(yīng)用名稱,然后選擇 WindowsWpf
  • 點(diǎn)擊 Add new app 創(chuàng)建應(yīng)用。
  • 應(yīng)用被創(chuàng)建后進(jìn)入 Overview 頁面,在這里可以找到 App Center 的入門指南,如下圖所示:

    上面打了馬賽克的這段字符是 app secret,每個(gè)應(yīng)用有唯一的 app secret。
    在 Nuget 安裝 Microsoft.AppCenter.Analytics 和 Microsoft.AppCenter.Crashes 兩個(gè)包。復(fù)制上面這段代碼到 App.xaml.cs 的 OnStartup 函數(shù)里:

    public partial class App : Application {protected override void OnStartup(StartupEventArgs e){base.OnStartup(e);AppCenter.Start("******3c-aa79-44d5-94ae-b00e229876b8", typeof(Analytics), typeof(Crashes));}} }

    完成上述步驟后重啟應(yīng)用,應(yīng)用的運(yùn)行情況將開始自動發(fā)送到 App Center,你可以在 Diagnostics (診斷)和 Analytics (分析)頁面看到這些數(shù)據(jù)。

    4. 診斷

    診斷頁面中的數(shù)據(jù)分成兩個(gè)部分:Crash(崩潰)和 Error(錯誤)。其中 Crash 由 App Center SDK 自動發(fā)送。在使用 App Center SDK,并且應(yīng)用遇到導(dǎo)致應(yīng)用崩潰的錯誤時(shí),詳細(xì)信息會在應(yīng)用關(guān)閉之前寫入本地存儲。 由于應(yīng)用遇到了意外錯誤,因此應(yīng)用所處的狀態(tài)不太可靠,不足以將數(shù)據(jù)發(fā)送到 App Center。 但是,當(dāng)用戶再次啟動應(yīng)用時(shí),它會將診斷數(shù)據(jù)發(fā)送到 App Center。

    而 Error 則由用戶調(diào)用 Crashes.TrackError 函數(shù)主動發(fā)送。

    每一個(gè)數(shù)據(jù)都可以看到詳細(xì)的錯誤信息,Stack traces,報(bào)告時(shí)間,同一類數(shù)據(jù)的 Most affected devices 和 Most affected OS,以及每一個(gè)錯誤報(bào)告的更具體的信息,如果有使用自定義事件,還可以在 EVENTS 標(biāo)簽頁中看到 Crash 發(fā)生前發(fā)生過的事件,以便確定 Crash 發(fā)生的原因。

    5. 分析

    一旦啟用了 App Center SDK,App Center 將自動收集用戶的關(guān)鍵指標(biāo),包括用戶計(jì)數(shù)、趨勢、設(shè)備、位置、活動時(shí)間、國家、語言、版本等。可以在 analytics/overview 查看這些信息。

    還可以使用 App Center SDK 發(fā)送 Analytics.TrackEvent 函數(shù)發(fā)送自定義事件。事件可幫助你識別應(yīng)用程序崩潰的根本原因。 作為 App Center 崩潰服務(wù)的一部分,你可以查看在特定會話崩潰之前發(fā)生的所有事件。

    6. 主動發(fā)送數(shù)據(jù)

    一般情況下 App Center Sdk 會自動收集 這些數(shù)據(jù),除此之外還可以使用 Analytics.TrackEvent 跟蹤自定義事件。

    Analytics.TrackEvent("Video clicked");

    也可以在這個(gè)函數(shù)中的 properties 附加一個(gè) Dictionary:

    Analytics.TrackEvent("Video clicked", new Dictionary<string, string> {{ "Category", "Music" },{ "FileName", "favorite.avi"} });

    TrackEvent 有一些限制,它最多支持200個(gè)不同的事件名稱。每個(gè)名稱最多支持256個(gè)字符,properties 中每個(gè) key 和 value 的限制都為125個(gè)字符,超過的部分將被截?cái)唷?/p>

    對于已處理的 Exception,可以使用 Crashes.TrackError 跟蹤錯誤:

    try {// your code goes here. } catch (Exception exception) {var properties = new Dictionary<string, string>{{ "Category", "Music" },{ "Wifi", "On"}};Crashes.TrackError(exception, properties); }

    它的用法和 Analytics.TrackEvent 類似。雖然官方文檔沒寫,但字符串的長度限制應(yīng)該和 Analytics.TrackEvent 一樣。另外它還支持發(fā)送文件和文本作為附件:

    try {// your code goes here. } catch (Exception exception) {var attachments = new ErrorAttachmentLog[]{ErrorAttachmentLog.AttachmentWithText("Hello world!", "hello.txt"),ErrorAttachmentLog.AttachmentWithBinary(Encoding.UTF8.GetBytes("Fake image"), "fake_image.jpeg", "image/jpeg")};Crashes.TrackError(exception, attachments: attachments); }

    附件的大小限制為 7 MB,嘗試發(fā)送更多的附件將觸發(fā)錯誤。

    7. 處理 Crash

    前面提到,崩潰時(shí)記錄的數(shù)據(jù)將再重啟應(yīng)用時(shí)發(fā)送到 App Center。這時(shí)候我們可以對這些崩潰的信息做些操作。

    Crashes.HasCrashedInLastSessionAsync 用于檢查應(yīng)用是否再上一次啟動時(shí)崩潰,Crashes.GetLastSessionCrashReportAsync 用于獲取上次崩潰的詳細(xì)信息。

    bool didAppCrash = await Crashes.HasCrashedInLastSessionAsync(); ErrorReport crashReport = await Crashes.GetLastSessionCrashReportAsync();

    如果你覺得有些崩潰不需要發(fā)送到 App Center,可以在 ShouldProcessErrorReport 回調(diào)中返回 false。

    Crashes.ShouldProcessErrorReport = (ErrorReport report) => {// Check the report in here and return true or false depending on the ErrorReport.return true; };

    如果需要發(fā)送更詳細(xì)的崩潰報(bào)告,可以使用 GetErrorAttachments 回調(diào)添加附件,這個(gè)附件將聯(lián)通 Crash 數(shù)據(jù)一起發(fā)送。

    Crashes.GetErrorAttachments = (ErrorReport report) => {// Your code goes here.return new ErrorAttachmentLog[]{ErrorAttachmentLog.AttachmentWithText("Hello world!", "hello.txt"),ErrorAttachmentLog.AttachmentWithBinary(Encoding.UTF8.GetBytes("Fake image"), "fake_image.jpeg", "image/jpeg")}; };

    如果想在發(fā)送報(bào)告前彈個(gè)框問問用戶要不要發(fā)送,可以在 ShouldAwaitUserConfirmation 回調(diào)中返回 true 并構(gòu)建 UI,然后用 Crashes.NotifyUserConfirmation 通知 SDK 發(fā)送消息:

    Crashes.ShouldAwaitUserConfirmation = ConfirmationHandler; private static bool ConfirmationHandler() {Current.Dispatcher.InvokeAsync(() =>{var dialog = new UserConfirmationDialog();if (dialog.ShowDialog() ?? false){Crashes.NotifyUserConfirmation(dialog.ClickResult);}});return true; }

    8. 最后

    App Center 通過診斷和分析兩個(gè)功能監(jiān)視應(yīng)用的實(shí)際情況,完善應(yīng)用開發(fā)生命周期的最后一步,幫助開發(fā)人員構(gòu)建更好的應(yīng)用程序。更多的信息可以參考下面的鏈接:

    Visual Studio 應(yīng)用中心
    Visual Studio 應(yīng)用中心定價(jià)
    Visual Studio 應(yīng)用中心常見問題
    Visual Studio App Center文檔
    App Center 簡介 - Learn Microsoft Docs
    microsoft/appcenter-sdk-dotnet: Development repository for the App Center SDK for .NET platforms, including Xamarin

    總結(jié)

    以上是生活随笔為你收集整理的[WPF] 使用 Visual Studio App Center 持续监视应用使用情况和问题的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。