Applications Misbehaving
Start course

The application lifecycle doesn’t finish with app deployment. Feedback is an important element of refining an application, whether that’s exception detection and diagnoses or improving the user experience. In this course, we will look at a suite of services that capture a vast array of feedback data, ranging from exceptions to client and server telemetry. This data can be turned into easily digestible information that can be used to trigger alerts and feedback into the development lifecycle as work items.

This course begins by describing what feedback is, and the types of feedback for improving application performance and usability. It then moves on to how we can integrate feedback into the software development lifecycle and what tools we can use to simplify that task. Finally, we will look at optimizing feedback mechanisms to get meaningful data from feedback noise.

For any feedback and questions relating to this course, please contact us at

Learning Objectives

  • Designing application and user feedback loops
  • Setting up crash and event notifications for App Center
  • Setting up work item integration from App Center 
  • Making sense of App Center’s analytic and diagnostic information
  • Adding Application Insights Telemetry to an application
  • Setting up Application Insights alerts
  • Work item integration from Application Insights
  • Designing feedback dashboards
  • Viewing Application Insights Telemetry data
  • Discussing types of user feedback and how they can be captured
  • Ways to baseline and filter feedback data

Intended Audience

This course is intended for:

  • People preparing for Microsoft’s AZ-400 exam
  • App developers
  • Project managers


To get the most from this course, you should have some experience with Microsoft Azure and application development, as well as knowledge of software project management concepts.


Now let’s have a look at when an application or system, doesn’t produce any exceptions, but at the same time doesn’t behave as intended. There are potentially 2 ways to detect this situation, but it really depends on your application. The easiest to implement and most proactive is to regularly validate the state of the app’s data. At a very simple level for example, you might have an incoming message queue to a call center growing without those messages being responded to in a timely fashion. Now there could be lots of reasons why this might happen. Everyone in the call center has gone on holiday, the messages have unknown data in them, a database or server is off-line, or an unanticipated situation has occurred that has put the application into and endless loop. Basically, for a particular set of inputs you expect a related set of outputs. If this is not the case, then an alert should be raised with a corresponding bug tracking ticket, to at the very least investigate and decide if this is an issue requiring a bug fix.


What if a user is experiencing abnormal application behavior that isn’t resulting in exceptions or crashes? You would hope that the user will contact your help desk either through a facility in the application, via a web page or email. If they do, then this is easy enough to push the issue into the existing workflow. You can use the Crashes TrackError method with error report attachments to push all relevant user supplied data into the App Center when the user submits their help desk ticket. You can access App Center directly using it’s API to upload a crash or error report. The API even allows you to upload an Apple crash log. The API also supports calls to interrogate App Center data and delete instances of errors. As so many services and social and technical media platforms like Twitter, Facebook and Stackoverflow have APIs it is possible to build integrations for many different sources. The major problem will be filtering meaningful data from the noise. Personally, in terms of an error feedback loop, I would draw the line at social media and say that social media integration or monitoring falls more under the domain of user satisfaction and feedback that we shall look into later.


About the Author
Learning Paths

Hallam is a software architect with over 20 years experience across a wide range of industries. He began his software career as a  Delphi/Interbase disciple but changed his allegiance to Microsoft with its deep and broad ecosystem. While Hallam has designed and crafted custom software utilizing web, mobile and desktop technologies, good quality reliable data is the key to a successful solution. The challenge of quickly turning data into useful information for digestion by humans and machines has led Hallam to specialize in database design and process automation. Showing customers how leverage new technology to change and improve their business processes is one of the key drivers keeping Hallam coming back to the keyboard.