Workspace Model for IDE Extension Access

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Integrated development environments (IDEs) face limitations in allowing extension tools to access internal resources, such as compilation tools and data structures, which restricts their ability to improve software application performance by optimizing source code structure and reducing memory and execution time.

Innovation Solution

A workspace model that uses an immutable object to represent the state of the solution at a particular point in time, enabling extension tools to access compilation data structures and tools without locking, allowing for on-demand construction of components and their dependencies, thereby improving performance by delaying unnecessary processing until components are requested.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If extension tools are given access to internal resources of the integrated development environment, then their ability to optimize source code structure and improve performance is enhanced, but system complexity and potential conflicts increase

Engineering Contradiction:
Improveextension tool access capabilityVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a workspace model as an intermediary layer between extension tools and the integrated development environment's internal resources. This model provides controlled access to compilation data structures and tools through a standardized interface, enabling extension tools to optimize source code while maintaining system integrity and managing complexity through abstraction.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If the integrated development environment locks internal resources during compilation, then data consistency is maintained, but extension tools cannot access these resources simultaneously

Engineering Contradiction:
Improvedata consistencyVSAvoidresource accessibility
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent creates a copy of the compilation data structures and tools within the workspace model that can be accessed by extension tools. This copy maintains the necessary data consistency while allowing simultaneous access, as the workspace model manages the relationship between the original resources and the accessible copy without requiring locks.

Inventive Principle:
Principle #26Copying

3Reliability

If all components are constructed immediately, then all dependencies are available for analysis, but unnecessary processing occurs for components that may not be needed

Engineering Contradiction:
Improvedependency availabilityVSAvoidprocessing efficiency
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The workspace model performs preliminary setup by establishing the structure and dependency relationships of all components without fully constructing them. When extension tools request specific components, the system constructs only those components and their necessary dependencies, avoiding unnecessary processing while maintaining reliable dependency resolution.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The workspace model implements dynamic component construction based on actual usage patterns. Components are constructed on-demand when requested by extension tools, and the system dynamically determines which dependencies need to be built. This dynamic approach optimizes processing efficiency by constructing only the necessary components while maintaining reliable access to dependencies when needed.

Inventive Principle:
Principle #15Dynamics

Data Source

PatentUS8875089B2Workspace model for interrelated projects
Publication Date: 2014.10.28 MICROSOFT TECHNOLOGY LICENSING LLC
  • US8875089B2 patent drawing
  • US8875089B2 patent drawing
  • US8875089B2 patent drawing

AI summary

A workspace model generates a component of a solution from an immutable object representing the solution at a given point in time. A component may be requested by an extension to an integrated development environment for the extension's use. The workspace model determines a sequence of operations needed to construct the requested component at the time the component is requested using the state of the solution represented through the immutable object. The immutable object allows the extension to access the requested component while the integrated development environment is used to alter the solution.