IP Library Granted Patent US 8,949,785
Granted Patent B2
US 8,949,785 · App. 13/327,674 · Granted Feb 3, 2015

Custom compound types in declarative programs

Inventors: Leon E. Welicki (Issaquah, WA); John Anthony Taylor (Bellevue, WA); Clark Roberts (Seattle, WA); Kenneth David Wolf (Seattle, WA)
Assignee: Microsoft Corporation
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 8,949,785
App. No.
13/327,674
Granted
Feb 3, 2015
Kind
B2
Abstract

The present invention extends to methods, systems, and computer program products for creating and manipulating custom compound data types in declarative programs. The present invention allows a developer to create and use custom compound data types without requiring the custom type to be specifically defined (e.g. via registering a custom assembly) in the underlying framework. This is accomplished by providing a data container that is configurable to represent virtually any combination of primitive or compound types defined within the framework. The present invention also provides a declarative model for interacting with data containers representing custom compound data types. This declarative model employs a path-based syntax (or other type of syntax) for accessing the elements of a custom compound data type. Multiple paths can be defined within a single unit of developer input so that multiple elements of a custom data type can be manipulated by the single unit of input.

Claims (17)

1. At a computer system including one or more processors and system memory, the computer system also including a workflow framework, a method for creating a compound data structure using a declarative language, the method comprising:

receiving developer input in a declarative language, at the workflow framework, that defines multiple paths and a value for each path, the multiple paths and corresponding values representing a compound data structure that the developer desires to create within a workflow, each path of the multiple paths corresponding to a path to the value for the each path in the resulting created compound data structure and each value for the each path corresponding to a value from the each path in the resulting created compound data structure;

interpreting each path, by the workflow framework, to create the compound data structure, wherein interpreting each path comprises:

determining a type of element to create for the each path;

creating the determined element in the compound data structure for each path; and

for each path, assigning the corresponding value to the element created for the path.

2. The method of claim 1 , wherein the paths and corresponding values in the received developer input are arranged in a table format.

3. The method of claim 1 , wherein determining a type of element to create for the path comprises:

for at least one path, determining that an element within another compound data structure that is nested within the compound data structure is to be created for the at least one path;

and wherein creating the determined element in the compound data structure for each path comprises:

creating, for each of the at least one path, an element within a nested compound data structure.

4. The method of claim 3 , wherein the nested compound data structure is a compound object and the compound data structure is an array such that the compound object is a nested element of the array.

5. The method of claim 4 , wherein multiple paths each define an element of the array that is of a different type such that the array is polymorphic.

6. The method of claim 1 , wherein each of the at least one path, for which an element of the nested compound data structure is created, comprises a series of at least two names of elements.

7. The method of claim 1 , wherein receiving developer input comprises receiving input of a visual design element to a visual design tool of the workflow framework.

8. The method of claim 1 , wherein the compound data structure is a data structure of a type that is not a defined type in the workflow framework.

9. The method of claim 1 , wherein the workflow framework is a continuation based runtime.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0541 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 15, 2011
From: WELICKI, LEON E.; TAYLOR, JOHN ANTHONY; ROBERTS, CLARK; WOLF, KENNETH DAVID
To: MICROSOFT CORPORATION
Reel/Frame 027402/0699 →
Continuity (1)
Related Publication 20130159970A1 · Jun 20, 2013