Thursday, May 03, 2012

The first step in gestating a Metro app... Cocoon


"Cocoon is a framework to support the development of .Net Windows 8 Metro-style applications, in particular those that link to web services. It simplifies accessing, displaying and editing data using standard Metro controls, and allows easy application of the MVVM pattern.

For more details, and news on the latest releases visit

Current Features

  • A navigation framework with,
    • Attribute based page and view model discovery using MEF
    • Automatic creation and wiring up of page and view model
    • Passing of parameters to view models upon activation
    • Persistence of navigation and state upon application suspension
  • A data framework with,
    • Support for observable collections and data virtualization
    • An extensible framework for the retrieval, processing and display of data from the cloud


Andy sent me an email about this that I thought did a great job of summing this project up;

The most interesting part is probably the navigation framework that is designed to make it easy to write MVVM applications. You simply add MEF attributes to your view model and view and Cocoon will wire everything up for you, maintain your navigation stack and even persist the stack, arguments and state if you app is suspended. I've got plans to extend this in the future to help make robust, easily testable view model support for Windows 8 contracts - imaging being able to add an ISharable interface to a viewmodel and Cocoon will automatically wire up a share contract.

There is also a data framework included that handles lazy retrieval of data from web APIs and virtualization of the UI.

I dig the idea simplified sharing implementation and MEF based nav stack...

Andy On WPF, Windows 8 and Beyond - Cocoon – A new framework for Windows 8 Development


The Cocoon Framework

To assist with Windows 8 Metro-style applications I would like to announce the Cocoon framework ( This aims to build on top of the learning from the Chrysalis project to provide a simple way to develop Metro-style applications in a manner that fits naturally with the MVVM design pattern.

It is likely that many Metro-style apps will be connected applications, downloading data from across the internet in response to user navigation. Modern applications are expected to do this in a seamless manner, retrieving data on demand and populating the user interface in response. In some ways this is at odds with the web API programming model that is based upon individual request-response calls, with paging used to retrieve large datasets. One of the first targets of the Cocoon framework is to simplify this process – bridging the world of stateless web API calls, with the “fast and fluid” interfaces expected by users.

Cocoon Framework Development

Since Windows 8 is currently at an early stage, it is anticipated that the Cocoon framework will evolve alongside further releases. If functionality is introduced in the platform that duplicates that within the Cocoon framework, efforts will be made to migrate to the platform support whenever possible.

It is an exciting time for Windows developers, with the upcoming release of Windows 8 ushering in a new ecosystem of applications. The Cocoon framework will allow you to focus on your individual business logic, whilst ensuring that the user experience fully supports the richness of the platform.


If you're already building, starting to build or just thinking about building Metro apps, this looks like a very useful framework and Andy is actively looking for your suggestions, feedback and comments

No comments: