Microsoft's new Windows 8 contracts: The debut of the developer clipboard

Microsoft's new Windows 8 contracts: The debut of the developer clipboard

Summary: Microsoft has introduced a new developer concept known as "Contracts" with Windows 8. Think of it as a universal clipboard for apps and services that ties back to Internet Explorer 10.

SHARE:

One of the many new terms introduced during the whirlwind that was the Microsoft Build conference in Anaheim the week of September 12 was "contracts."

During the opening Build keynote, Windows President Steven Sinofsky mentioned in passing the new "contracts" functionality that will be integrated into Windows 8. But he didn't delve into exactly what contracts are or how they'll work.

In a workshop attended by some press and analysts a day before his keynote, however, Sinofsky mentioned contracts as being a key element of the Windows 8 development platform.

"Applications should be able to work together without knowing anything about each other," Sinofsky told us workshop attendees. He cited an example using a few of the different "charms," or main icons, in Windows 8. (The five charms are Devices, Settings, Share, Search and Start.) Applications  and services -- including the coming Windows Live app/service hybrids -- that implement contracts will be able to make use of a data package from Internet Explorer 10, enabling users to remain inside of an app from which they are sharing, searching, etc. In Windows 8, there are share contracts, search contracts and "picker" contracts. I'm not sure if there are others.

Sinofsky told us workshop attendees that the closest analogy to a "contract" is a clipboard. (That got me thinking about former Microsoft Chief Software Architect Ray Ozzie's "universal clipboard" concept -- dating back to 2006. Ozzie's universal clipboard, which he released under a Creative Commons license, was focused on connecting Web sites and desktop applications using a combination of RSS feeds, other XML data and the desktop clipboard. I don't know how much the Windows 8 team relied on Ozzie's vision and code, if at all.)

Microsoft officials did share more about the contracts concept during one of the Build sessions focused on the "Share" contract. The "currency" in a Share contract what's known as a DataPackage. The data can be captured and shared in a number of different formats, including text, URI, HTML, images and other extensible formats.

Source apps in the Share scenario can include news, magazines, media, games, social networking data, notes captured via a note-taking program and data stored in the cloud. Target categories on which Microsoft is expecting developers to focus include social networking, communication, entertainment, print services, "device connected" scenarios, note-taking and cloud storage. Here's the obligatory architecture slide showing how this sharing will look/work, from the Build slide deck on the topic:

(click on the slide to enlarge)

From a user standpoint, the "Share" contract may sometimes be invoked after a user selects content inside of an app and then selects the "Share" charm. Other times, users won't need to do anything; by selecting "Share," content may be auto-selected.. Microsoft is advising developers to build their data packages in a way that makes the most sense (whether that requires no user content selection, or whether it requires a user to select content).

Here's another slide from the Share Contract presentation, outlining some of the benefits Microsoft expects to accrue via Contracts:

(click on slide to enlarge)

I'll be curious to see what developers come up with around Contracts. Microsoft has met with a so-so reception for some of its previously introduced Internet Explorer-specific capabilities, like Jump Lists and app pinning. Will Contracts be any more popular? What do you think, Windows Developer preview testers?

Update: As reader and Red Badger founder David Wynne noted on Twitter, the concept of "code contracts" is something that the Microsoft Research folks have been investigating, as well. At MSR, code contracts are "language-agnostic ways to express coding assumptions in .Net programs."

Topics: Microsoft, Collaboration, Operating Systems, Software, Software Development, Windows, Social Enterprise

About

Mary Jo has covered the tech industry for 30 years for a variety of publications and Web sites, and is a frequent guest on radio, TV and podcasts, speaking about all things Microsoft-related. She is the author of Microsoft 2.0: How Microsoft plans to stay relevant in the post-Gates era (John Wiley & Sons, 2008).

Kick off your day with ZDNet's daily email newsletter. It's the freshest tech news and opinion, served hot. Get it.

Talkback

12 comments
Log in or register to join the discussion
  • RE: Microsoft's new Windows 8 contracts: The debut of the developer clipboard

    contracts is probably the best thing about win8 right now
    cmwind
  • RE: Microsoft's new Windows 8 contracts: The debut of the developer clipboard

    One of the most interesting things about the Share contract is that in the presentation Schema.org was being pushed as a convention for extensible formats.
    When I first heard this I too thought back to Ozzie's Live Clipboard because it was, at the time, picked up enthusiastically by the microformats crowd. Schema.org has very close ties to microformats (certainly in their intended use anyway) so the parallels between the Share contract and Ozzie's vision are very interesting indeed.
    jamiet
  • RE: Microsoft's new Windows 8 contracts: The debut of the developer clipboard

    If we as developers will use these in our apps, users will benefit extraordinarily.
    grayknight
  • RE: Microsoft's new Windows 8 contracts: The debut of the developer clipboard

    Win8 Contracts == OLE done right ;)
    bitcrazed
    • OLE!

      Hadn't thought of it that way before, but ... yeah! Good analogy! MJ
      Mary Jo Foley
  • "Share" Concept Is Copied From Android

    Android has had systemwide support for this sort of thing right from the beginning.
    ldo17
  • Android Intents

    So you do realize that this is almost exactly what Intents are in Android, correct? Reading through this article makes it sound like Microsoft invented some innovative new way for users to share content and apps to talk with one another when in reality they're just taking something that already works and calling it something different.

    Don't get me wrong, I'm not hating on Microsoft here, of course it makes sense to take something that already works and tweak it as needed. All the big tech companies do it to some extent. I'm just surprised you didn't make the obvious comparison it to an already existing implementation in a dominant smartphone platform.
    tobiasly
    • Google is stupid.

      @tobiasly They should have patented all those things. Now Microsoft & Apple are stealing Google ideas left & right without repercussions!
      MSFTWorshipper
      • RE: Microsoft's new Windows 8 contracts: The debut of the developer clipboard

        @MSFTWorshipper Fine, let them. It's only Apple that is that greedy.
        But maybe they SHOULD have gotten som defensive patents that they could threaten with when hit by those stupid slide-to-unlock patents...
        Natanael_L
  • Contracts??

    This sounds vaguely like an application that was marketed back in the late '90's to build dynamic database driven ASP pages by using "contracts". The name escapes me (I'm getting old :-) but the last version was "D (something) 2000". I believe it was bought and killed by Macromedia and folded into Dreamweaver UltraDav. At least Ultradev was my upgrade path from "D whatever." I can't find any mention of it on the web. Vanished without a trace.
    DaLarry
  • sohwnkj 50 ilu

    khhlyg,medxrest53, lbzkj.
    bhomeioy2801-24379002341479050395388011480942
  • RE: Microsoft's new Windows 8 contracts: The debut of the developer clipboard

    MJ,
    I've posted some follow-up thoughts on contracts here: http://jamiekt.wordpress.com/2012/02/14/search-engines-schema-org-and-windows-8-contracts-a-match-made-in-heaven/ in case you're interested.

    JT
    jamiet