Recently, I came across an interesting patent from Microsoft which described cross-platform APIs for apps. Right now, developers who want to create software add-ons, plug-ins, or other extensions for a particular software package are confronted with multiple platforms and object models associated with the software. Microsoft cited the following example in their patent,
For example, a software developer may distribute the software for use on multiple computing platforms and/or operating systems. For example, a software developer may create an extension for a PC version of the Microsoft Office family of products from Microsoft Corporation in Redmond, Wash. Users of another version of the Microsoft Office family of products may be unable to use the extension. In particular, because the operating systems and/or platforms may be distinct from one another, an extension authored for a particular platform may be incompatible with software executed on another platform.
Furthermore, when new versions of a particular software package are developed, some changes made to the software package may result in a loss of compatibility between the extension and the software package. For example, some aspects of a software object model may evolve between versions. As a result, developers may be compelled to create multiple versions of the extension for compatibility for new versions of software.
In this patent, they are describing cross-platform APIs that support interoperability and extensibility with various application programs using a single language and/or set of APIs.
Concepts and technologies are described herein for cross-platform application programming interfaces for applications. In accordance with the concepts and technologies disclosed herein, the cross-platform APIs support interoperability and extensibility with various application programs using a single language and/or set of APIs. Extensions authored for a particular application program may be used with other application programs that expose the same or a similar set of APIs, even if other object models or APIs associated with the application programs differ from one another. Thus, the APIs support cross-platform, cross-device, and cross-version compatibility of extensions.