From the consumer products associated with the MSN Butterfly, the Windows Live Platform has steadily grown and evolved.

In this article you will discover some of the history behind the Windows Live Platform and explore where it is heading now and might be destined to go in the future. This article will explore the opportunities for you as a developer in this brave (nearly) new world.

In the mid 1990s, Microsoft began to address the World Wide Web and the boom that was about to happen. To be fair, for any company that thinks as big as Microsoft does, the Internet and Web was probably not worth considering much before this time anyway. It wasn’t until the mid to late 1990s that the Internet really proved its commercial value to be worth more than a few million dollars. In many ways the Internet boom of the late 1990s would never have been possible if Microsoft’s mission statement (a computer on every desktop) had not been nearly achieved.

The new cloud services are changing the way that developers can write code online.

Microsoft made some bold moves to ensure they had a position within the new online world. Through both acquisition and invention, Microsoft has over the last 10 years positioned themselves as one of the most popular online consumer platforms. Offerings such as Windows Live Messenger, Windows Live Hotmail, Windows Live Search, and Windows Live Spaces have become the flagship products with hundreds of millions of users. Other products have more niche or slowly growing markets: Virtual Earth, Expo, QnA, and Events to name a few.

If you’ve been paying attention, you’ll have noticed that the flagship “big ticket” products have something in common. They have a well defined revenue stream and they have stickiness to them. The stickiness comes from the connections that you make using the products:

  • Hotmail provides your e-mail address, once you have handed that e-mail address to enough people you are going to keep using Hotmail.
  • Messenger encapsulates your buddy list, once you have more than a couple of buddy’s on Messenger you are going to want to stay there.
  • Spaces provides a store for you to share your pictures, thoughts (blog posts), and other interests (e.g., Xbox Live gadgets).

In recent years this form of stickiness has become commonly known as a social networking application. Once a user has committed energy into a platform they are likely to stick around, unless they find something far superior or their current investments starts to cost too much. This can happen if the provider creates a pain (real or hyped) for the user. An example might be charging the user for the service that was previously free or selling the user’s personal details to other companies.

A few years back, Microsoft decided to rebrand some of the MSN services to Windows Live. Microsoft’s success in the operating system world with the Window’s products has led to Microsoft Windows™ as a brand having enormous value. You can probably imagine the thought process behind trying to leverage this high value brand into the online world. For consumers this meant MSN Messenger became Windows Live Messenger and MSN Spaces became Windows Live Spaces, and so on. Something else was also stirring underneath the exterior consumer products. Developers were getting more than curious about how to plug into the value being provided to the users through the products. Hacks for Messenger and Spaces were already emerging on blogs and forums and the APIs involved in creating these were about to be exposed.

With the brand shift to Windows Live came an attitude shift to developers on the newly branded Windows Live products.

With the brand shift to Windows Live came an attitude shift to developers on the newly branded Windows Live products. While developers were not entirely embraced, they were starting to be supported in some form. Microsoft was releasing APIs that would allow you plug into the Windows Live products. This was certainly not something that happened over night, there are still APIs that are wished for but not available, but the surface area that you can program against has been increasing steadily over the last few years.

The Sunshine Through the Clouds

You are probably wondering what impact this has on you as a developer. You might be questioning the value of accessing these “in the cloud” services. In many ways this is a similar situation to when Windows (and OS2) started shipping on PCs. Many developers didn’t really see the point in getting involved in all that messy point-and-click mouse movement; it turned out to be the way that every PC developer would end up working. In the same way that Windows changed the way developers wrote software for PCs, the new cloud services are changing the way that developers can write code for their online applications.

The opportunities to place your application in the hands of the millions of users that already have a commitment to the Windows Live products are numerous and potentially very rewarding. To make your life more interesting, the world of online users that utilize the Windows Live products is incredibly diverse and segmented. If you want to create a Web site for rock climbers that live in Manhattan you can be fairly certain that large percentage of them will have a Live ID (the standard Windows Live authentication) to log in to a Hotmail, Messenger, or Spaces account. Letting a user log in to your site with their existing credentials does several things:

  • The user doesn’t have to remember another user name and password for your site, they use something they are already familiar with.
  • Your site can potentially get access to the user’s Windows Live connections, often that means their social network, but it could be as simple as providing them a gadget for their Windows Live Spaces account.
  • Your new Web site “aligns” itself with the powerful Microsoft Windows Live brand by leveraging their services.
  • Your site can utilize Microsoft’s online infrastructure to host content, manage domains, stream media, and maintain relationships between users.

Rich Internet Applications

Alongside the exposure of the new APIs for the online products has been a movement towards richer online experiences, often called Rich Internet Applications or RIAs. Several technologies have emerged to enhance the users experience when working in a browser: smarter use of JavaScript in manipulating components of a Web page, which has been brought about by a wide adoption of standards across the browsers, AJAX (Asynchronous JavaScript and XML) enables parts of a Web page to refresh without the whole page refreshing, and browser plugins such as Flash and now Silverlight.

The Buzz and the Fuzz

Building a RIA is not as simple as it may appear. Web sites are no longer online brochures with text and pretty pictures formatted and laid out in a way that pleases the eye. This new RIA Web site has all the same issues that desktop software needs to address: user interaction models, feature discoverability, application state, security models, and so on. These new RIAs need to achieve all this while still being constrained to running in a Web browser. Building these online applications is not a trivial matter and, for this reason, RIAs are currently far more buzz than reality.

In reality the Web sites are becoming a fuzzy mix of old style HTML brochures and rich components.

In reality the Web sites are becoming a fuzzy mix of old style HTML brochures and rich components containing media or functionality such as mapping or an instant messenger chat window. There can be little doubt that the trend is driving more Web sites to provide richer experiences and, over the next few years, the user expectation will shift towards more advanced and fulfilling interaction.

Online Applications

Before you start thinking about how to build these new Internet applications, it is worth taking a step back and thinking of some of the concepts behind an online application. If your application is no longer simply serving markup files to be rendered in a browser, there are some considerations to be taken on the architecture of your product.

Massively Scaled Client-Server

The model of central server and multiple terminals is hardly new; this is exactly how computers have evolved. Initially a single mainframe computer would be shared between users at multiple terminals. As this model grew, the mainframe servers changed from single servers to multiple servers, mostly indistinguishable from each other for the end user on a terminal. The model evolved over the years, firstly to smaller mini computers, still being addressed by terminals, moving through to the world in which we now live, where most terminals are themselves as powerful as the mainframe servers were 40 years ago.

The Internet and the world of online applications hasn’t changed that much. The application architecture is still mostly client/server architecture, the servers being Web servers and the clients being Web browsers. One of the major challenges of these new client/server applications is the issue of scale. With more and more nodes connecting to the Internet every day, the potential number of client transactions your application will have to service is huge, in the millions, and if you hit it really big it could be in the billions.

Building an application to service millions (or billions) of transactions a day seems like a daunting task but the architecture is well defined.

Building an application to service millions (or billions) of transactions a day seems like a daunting task, but the architecture is well defined and the client/server model has stood up well to the test of time.

Microsoft has been addressing these scaling issues for many years now with billions of transactions going through their services every day, such as Hotmail and Messenger. Being able to work alongside these services and leverage this infrastructure can only be good for your online application.

Massively Hyped Mashups

The Internet is a rich source of data and services. If you want to discover something, the chances of finding the answers somewhere online are incredibly high. Often the answers may lie in places that are disconnected from your initial interest. For example, if you are interested in the weather off shore for a sailing trip but also mapping your sailing trip, finding ports to moor your boat, and seeing the currents at sea, you may have visit multiple online sites. Some Web developers have seen this rich source of disconnected information as an opportunity to create Web sites that combine the data from multiple sources into one location. Often (as suggested) this might be for niche interests. The concept of combining multiple online data sources into one application has led to the term “mashup.” These new sites “mash up” the data from the servers to create a new online application. Microsoft’s Popfly addresses this opportunity for the enthusiast market.

There has been a large amount of press and media interest in mashups, but so far it seems to be an avenue of smaller financial returns. The big money is still in the client/server model where you own (or at least license) the data the clients are viewing.

Where to Get Started

This special issue of CoDe Focus Magazine has an abundance of information to help you get going with using the Windows Live Platform services. Looking through the author list felt like looking at my friends list in Windows Live Messenger; I have worked with many of these authors over the last couple of years, helping to explain the intricacies of the Windows Live platform as it evolved from the early concepts to what you see today.

As you read through the articles you will learn a wealth of information on how to use many of the Windows Live services in your applications. You will learn about the JavaScript library of Windows Live Messenger and how to embed Instant Messenger capabilities into your application. You will discover the new APIs in Virtual Earth version 6. You will understand how to use Windows Live ID, the authentication technology provided by the Windows Live platform. There is a full explanation of Silverlight Streaming and how you can programmatically work with this Windows Live service to manage your Silverlight applications using Microsoft infrastructure. The technology for enhancing Windows Live Writer with plugins will be demystified. Windows Live Admin Center is fully described, the centralized place for you to manage your Live Domains and application IDs. The Windows Live Search API is explained; you will discover how to add search to your application and manipulate the search results. You will explore how you can access Windows Live Data and what you will be able to achieve with the new Windows Live Data technologies. You will learn how you can work with Windows Live services without leaving the comfort of ASP.NET using the new Windows Live Tools for Visual Studio. Finally, you will be guided on how to glue the services together into your own mashups and explore the sample applications provided by Microsoft.

Once you have absorbed all the goodness from the articles, you should head to Microsoft’s official developer center for Windows Live at http://dev.live.com. The community portal run and maintained by several of the authors of articles in this magazine will also provide more articles to help you get started and solve issues, http://ViaWindowsLive.com.

The Browser Is Now

All of the Windows Live services (barring Live Writer, which isn’t really a service anyway) discussed in this magazine have “terms of usage:” guidance from Microsoft as to how you can use the services. At the time of writing these terms stipulate that the Windows Live services can only be accessed through an application running in a browser.

The future of online services will be defined by applications that disregard the browser and build on the power of the computer.

The Web browser is the terminal through which you access most of the Internet. You access all the buzz and hype around Web 2.0 and the new wave of online social networks through browsers. The browser is the green-screen terminal of the 2000s. Browsers are getting smarter and more capable and Web developers are getting more skilled at building rich experiences, but to create the really rich experiences the browser is used to host plugins such as Flash and Silverlight.

While it may seem that in order to raise funding a software company must have a Web application, it is clear that the constraints of the browser may never be solved. Applications that run in a browser are considered to be sandboxed, in that they should not be able to access the resources of the computer upon which they run. Users can only access browser-based Web applications when they are online and, even though there is a massive increase of online availability, it is still not a 100% online world. When you travel, this becomes even more apparent and many businesses have mobile resources that are not always online.

Back to the Future

Running an application locally on your own “server” has many advantages, such as performance, offline availability, direct access to peripherals, and security.

The way to provide really extraordinary and rich experiences for the user is by building software that runs on the computer, often called rich client or smart client software. There are many examples of utilizing services from the Internet within client applications, in fact it is quite likely you will use one of these applications today. RSS Readers, e-mail Clients, iTunes, and Live Writer are all great examples of smart client applications that provide richer experiences for users than their browser-based counterparts.

Consider this as you start building your applications to take advantage of Windows Live services. Right now you might be constrained to the browser, but the future of online services will be defined by applications that disregard the browser and build on the power of the computer.