Win8 Metro: Collect debug and diagnostics information - windows-8

We are planning to develop a metro app and wanted to find out what kind of support/programming model is available in Windows8 RT to collect debug/diagnostic log data. This should quickly help/diagnose app errors in the field.
Can we log debug data as we do traditionally in Windows apps and ask user to send the log file when encountering an error ?
For Ex. If the app misbehaves when loaded on the QA/end user machines, we can request QA/end user to attach the log files with the issue.

You don't have to collect any data, windows store is doing that for you. In windows store app Dashboard, under quality you have reports about chrashes and app unresponsive states, these are *.cab files with debug informations.
You can open this file (*.dmp) with Visual Studio, here are the details :
http://msdn.microsoft.com/en-us/library/windows/apps/jj933262.aspx

Have you checked this MSDN sample : Logging Sample for Windows Store Apps (ETW Logging in WinRT) ?

Related

Debugdiag not working with Windows store apps

Trying "monitor for leaks" with any windows store app (including the built-in apps) using debugdiag2 update 2 fails.
I get a "Failed to monitor for leaks in .... Please make sure that everyone has read and execute permissions for ...leaktest.dll" message.
I've changed the permissions as indicated and followed the suggestion at:
Troubleshooting native memory leaks in Windows Store applications using DebugDiag and LeakTrack
But no luck.
Works fine for non store apps.
Anyone have this working?

Can I install my own Windows Phone App on a real device without uploading the app to Store?

I'm new to windows phone, and I don't have a real device to test on.
I know that one can install .XAP files from SD card.. but does this process reqires internet access to check that the app is on the store or I just installs it as in Android?
Thanks in advance
You can debug your app on your physical device in Visual Studio. Your device has to be connected via usb cabel to your computer and has to be developer unlocked. You can developer unlock your phone with the Windows Phone Developer Registration Tool, which is a part of the Windows Phone SDK. You can find more information about the process here.
No, you cannot install the xap package on other people devices until unless their phones are not developer unlocked. When you build a .xap package in Release mode, you need to first upload it to Store where the Microsoft team checks package for security concerns. Once that has been checked, package verified, then the packages can be installed, basically uploading the app.
To debug the app, its better to unlock your friend's phone and then test it on it. After that if you wish you can also un-register the phone to revert back to original developer locked mode.
There is one more method which I use when my app is completed but do not wish to release the app on store, but instead, I wish that first these apps be used by my friends first, they give feedback and after that I finally submit the app on Store.
To do this, I submit the app in private visibility on Store. There is an option while submitting the app which indicates whether you want that other users can see your app on phone. I mark it Hidden. Once my app is verified and is on store, I download the app from store by going to the appropriate link of app on store which is given in app profile at dev-center. I choose 'Download and Install Manually' option to download the xap. This xap can be installed on other devices without unlocking their device.

Monitor changes made by a desktop app to a file created by my Windows Store app

I'm making a Windows Store app that gets files from a server and store it locally for quick access. I also want to make it sync the file with Dropbox and push changes to Dropbox if the user make any. I looked into CachedFileUpdater and it seems to work if I use another Windows Store app to edit the file. However I ran into a great trouble trying to monitor changes made by a desktop app. This matters a lot because many files are office documents and Office 2013 is available to Windows RT and I would also like the app to be available to Windows 8.
First I tried to use CachedFileUpdater on all files but when I open the file using a desktop app, it will be opened in read-only mode and I can't save it in desktop mode. If I dont use it if the user chooses to open it with desktop app, the change will be saved but later my app won't be able to access that file somehow. I guess it is because the owner changes to the desktop app. Now not only I seem to have no way to monitor the file changes, but also can't I access those changes once it is modified by a desktop app.\
Is there some trick that may help? Thank you very much!

Accessing application's documents from device through USB?

I'm working with a Windows Phone 8 application that writes logs to a file on the device. Is there a way to get access to that file? If not, what are my alternatives to seeing log information outside of using Visual Studio?
Yes you can read the file from isolated storage as long as it's a developer app installed on a developer unlocked phone. I use the Windows Phone Power Tools to do this, and there is a command line tool that comes with the SDK itself as well called IseTool.exe.
For your own access you can just use the advice in Paul's answer. If you want to get the files from other users you can use the Email Task and attach the log file to the email and have it sent to you or use some form of server logging.

Metro IndexedDB, browsing the database

I am trying to store data in a "Metro" App for Windows 8 using IndexedDB.
I would like to be able to browse the database (to monitor that my operations modify the data as intended). So my question is; Is there any way of viewing the actual database of a metro app (IE10)? (something like in Chrome Dev Tools (Resources > IndexedDB))
Regards
The IE team has a blog post Debugging IndexedDB Applications that includes an IDBExplorer module that you can incorporate into your application (for testing, not recommended for production)
Not that I know, but my linq2indexeddb library has a viewer in it. That way you can inspect the content of you database while debugging. The nuget package for Metro apps can be found here. And as last, I have a blogpost on how you can use it.