Live Authoring Diagnostics Round Trip for Visual Troubleshooting

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Troubleshooting application visual issues in software development is challenging when the issues are difficult to reproduce reliably and require frequent switches between diagnosing and editing source code, especially when transient expressions are involved.

Innovation Solution

The Live Authoring Diagnostics Round Trip (LADRT) module provides troubleshooting functionality within a running application, allowing for property inspection, modification, and source code alteration without pausing the application, using markup annotations to correlate visual constructs with source code and persist changes back to the source code, enabling real-time reflection of changes in the IDE.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If developers use traditional designer tools to troubleshoot application visuals, then they can inspect and modify visual properties, but they must pause application execution and frequently switch between diagnosing and editing source code

Engineering Contradiction:
ImproveTroubleshooting workflow continuityVSAvoidTime spent switching between diagnosis and code editing
Core Design Contradiction:
Ease of operationVSLoss of time

Solution Approach 1:

The patent merges the visual inspection capabilities and source code editing capabilities into a single integrated troubleshooting interface. The visual tree viewer displays visual construct properties alongside their corresponding source code locations, allowing developers to both diagnose visual issues and edit source code within the same context without switching between separate tools or pausing application execution.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces an intermediary mechanism (markup annotations and source code location tracking) that connects visual constructs to their source code definitions. This intermediary allows the system to automatically identify and display relevant source code segments when a visual issue is detected, eliminating the need for manual code navigation and maintaining continuous troubleshooting workflow.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If developers modify visual properties during application execution, then they can troubleshoot issues in real-time, but they risk introducing errors in source code alterations

Engineering Contradiction:
ImproveTroubleshooting efficiencyVSAvoidAccuracy of source code modifications
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent implements feedback mechanisms that automatically track and verify source code modifications. When visual properties are modified during runtime, the system provides feedback by displaying the corresponding source code locations and allowing developers to review changes before applying them. This feedback loop reduces errors by ensuring that modifications are intentional and correctly implemented.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent performs preliminary actions by pre-identifying and displaying the source code locations associated with visual constructs before any modifications are made. This allows developers to review the relevant code context in advance, understand the implications of potential changes, and make more accurate modifications with reduced risk of introducing errors.

Inventive Principle:
Principle #10Preliminary action

3Manufacturing precision

If developers rebuild the application to reflect source code changes, then they can ensure code is properly updated, but they lose continuous execution context and productivity

Engineering Contradiction:
ImproveSource code update accuracyVSAvoidDevelopment throughput
Core Design Contradiction:
Manufacturing precisionVSProductivity

Solution Approach 1:

The patent implements dynamic updating of source code during application execution without requiring full rebuilds. The system allows selective modification and immediate application of source code changes related to specific visual constructs, maintaining application continuity while ensuring accurate code updates. This dynamic approach eliminates the need for complete rebuild cycles and maintains development throughput.

Inventive Principle:
Principle #15Dynamics

4Measurement precision

If developers inspect transient expressions in markup during execution, then they can diagnose runtime issues, but the expressions may have already been evaluated and replaced

Engineering Contradiction:
ImproveRuntime expression inspection accuracyVSAvoidTransient expression data
Core Design Contradiction:
Measurement precisionVSLoss of information

Solution Approach 1:

The patent performs preliminary action by capturing and storing transient expressions in markup before they are evaluated during application execution. The system maintains a record of these transient expressions and their corresponding visual construct locations, allowing developers to inspect the original expression data even after evaluation has occurred, thus preventing information loss while enabling runtime diagnosis.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9021428B2Troubleshooting visuals and transient expressions in executing applications
Publication Date: 2015.04.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9021428B2 patent drawing
  • US9021428B2 patent drawing
  • US9021428B2 patent drawing

AI summary

Tools and techniques support troubleshooting live application visuals, including transient markup expression issues in XAML or HTML. A LADRT module supports troubleshooting without pausing application execution to help inspect and modify visual construct properties, and to identify and alter source code pertaining to a selected visual construct. Changes are serialized back to the application program source code and reflected in real time in the executing application, without a rebuild. Markup annotation preserves pre-evaluation versions of markup expressions for binding, static resource identification, and custom purposes. Markup annotation also correlates visual constructs and source code. The LADRT module operates independently of debuggers, and may autoload with the application. Program project and source code changes are not required for troubleshooting capability.