Blog
RSS feed

Live Search Releases Web Page Error Toolkit

We're pleased to announce that the Live Search folks released a new toolkit today for creating dynamic 404 error pages. The Web Page Error Toolkit allows you to display custom error messages with search results that are generated from relevant keywords. Rather than generic "We're Sorry" pages with links to every subject area within your site, these custom error pages offer relevant choices to help your visitors find the information they want.

According to the Live Search blog,

The Toolkit is a customizable ASP.net application that replaces the default error page on your IIS server. The Toolkit enables you to use Live Search (or any search engine) to return results for the specified domain and locale, control the number of results returned on your page, choose whether to offer spelling corrections, and customize your error message.

Take a look at these examples of a typical 404 error page at Microsoft, as well as one that has been customized with the Toolkit:

Typical 404 Error Page

Standard 404 Error Page

Dynamic 404 Error Page 

Custom 404 Error Page with Search Results

The Live Search team has a nice write-up here. Check out the following links for more information:


Windows Live Agents New SDK Released

The Windows Live Agents team has just released a new Visual Studio SDK and several enhancements to the Agents platform. Windows Live Agents v5.0 is a full public release that takes the features of the Colloquis SDK, a limited release which operated in a Java environment, and integrates them into a Visual Studio IDE plug-in.

If you haven't heard of it, a Windows Live Agent is a smart computer application that operates over text messaging networks. An agent (formerly called a "Buddy") interacts with people by using natural language interactions. People can ask questions of the agent, and the agent responds with information. Agents can be developed for virtually any kind of content, such as services or entertainment news.

To learn more about Windows Live Agents and download the SDK, check out the following links:

Here’s a quick summary of the new features (from the Windows Live Agents blog):

Visual Studio SDK

We will be retiring the old standalone Colloquis SDK (versions 4.3 and previous) within 90 days of our 5.0 release. The process by which you take your previously developed projects and update them will be discussed with our release notes, but we want to ensure that developers have Visual Studio 2005 or 2008 Standard (or above) prior to the release of our Agents plug-in.  Please subscribe to Alerts on our blog page for availability of the SDK as we will be posting the announcement there.

Partner Hosting Infrastructure (PHI)

We are streamlining the process by which projects can be hosted within Microsoft, if you choose to be hosted with us.  The old method of contacting a project manager within Microsoft will be replaced with our PHI system.  Within PHI, you will be submitting your Agents through an automated system, receiving status on your project, and administering all your projects through a single console.  Hosting of your Agent will require a nominal yearly fee that offsets hardware costs. We will be updating folks on the pricing model in the near future on our blog and through Windows Live development announcements, but it’s likely you’ll be able to waive these hosting fees if you are working with an MSN Market.  Microsoft will only host Agents that are developed within the languages that are supported by the SDK (English, French, Italian, German, Spanish, Japanese, Chinese; Portuguese and Dutch will release in the next few months).

Agent Provisioning

As part of the ongoing safety for our end-users, the ability to have a Windows Live ID provisioned as an Agent will require that the Windows Live Agent SDK is used for development of your Agent.  The previous method of submitting through Windows Live Gallery is no longer supported and will soon be removed from the system all together.  Provisioning an Agent lifts the limit of contacts within Windows Live Messenger, but will be enforced strictly to ensure our Platform is in use.

Compliance

The Windows Live Agents SDK is now enforcing Policy Compliance in all responses from an Agent hosted by Microsoft.  What this means to you as a developer is that your Agent may not respond with the exact text that you had scripted during your development.  When an Agent is hosted by Microsoft, we’ll have an additional set of tools that runs against your code to ensure that the response is appropriate for any and all users of Messenger.  We are holding our developers to the highest standards in online safety and will be posting blog entries on how you can safeguard your code within the SDK prior to Windows Live hosting.  You will be able to easily mimic the production conversation during development with these tools, so you can be sure your Agent is compliant with online safety guidelines.  If you are working with an MSN Market or Microsoft product, you will be hosted by Microsoft and subject to these tools.

Self-Hosting

As you are downloading the new SDK, you may run this free version with your production Agent, in your own environment.  There are limitations on sessions within this self-host model, as well as some other limitations in terms of high availability deployments, but it is almost exactly the same product as we would host for you through PHI.  This is an ideal setup for the smaller development teams that do not have SLA’s on their Agent and wish to prototype features.  We have found this scenario to easily handle a large percentage of Agent traffic in the field today.  Again, this model enforces that the Agent SDK is in place to connect to Messenger as a provisioned Agent.


Web 2.0 Developers Praise the Windows Live Developer Program - What Do You Think?

We were really excited to hear the news that Web 2.0 developers awarded us high rankings across the board in the "Users' Choice: 2008 Web 2.0 Developer Programs” survey conducted by the Evans Data Corp. Though it has not been published yet on the Evans Data Corp site, there is a nice write-up you can read on Computerworld.

Among all of the rankings, the high scores we received for the Tools/SDKs and Web Services categories really stand out. While it’s nice to get the recognition for our hard work from this survey, we’d love to hear directly from you. What do you think? Is the Windows Live Developer Platform exciting to you? Are we doing a good job? What can we do better?

Please send your thoughts to devlivfb@microsoft.com.  We’d love to hear your feedback directly.


Exploring the Live Mesh Platform

Since Amit Mital introduced Live Mesh last week, there have been a slew of posts & videos published about the Live Mesh platform. We thought we'd provide a round up from the various sources here.

The Live Mesh Community Tech Preview that was released last week offers a glimpse of what is possible for consumers, but the platform will offer exciting possibilities to developers in the near future as well.

Live Mesh is a “software-plus-services” platform that enables individuals and organizations to manage, access, and share files, data and applications from anywhere. Mike Zintel provides some details about the goals for the platform, which you can read about here.

Programming the Mesh

Jeremy Mazner explains in this blog post how the Live Mesh platform has been designed to be “comprehensive, simple, open.” Demonstrating these principles is Ori Amiga's new video, “Programming the Mesh.” The video includes several demos of feeds, ATOM, JSON, and FeedSync, as well as some nifty applications (such as a custom Facebook app that syncs Facebook photos with Live Mesh, and one with Mac support ).

The Live Mesh team released a Platform Quick Tour for Developers walkthrough, while Channel 10 has the Overview of Live Mesh Platform Experience.

Synchronizing with FeedSync

Among the key design goals is the ability to share data among devices and applications, while retaining ownership of the data for the customer. FeedSync will make this possible by providing an authenticated, bidirectional sync of data. Steven Lees, designer of the FeedSync protocol, and the Live Mesh team explain how the FeedSync synchronization works in this Channel 9 video.

Designing Live Mesh

Architect Abolade Gbadegesin describes the approach he took to designing Live Mesh in this video on Channel 9.

Happy viewing!


Introducing Live Mesh

Update: Check out the Channel 9 Video with Ori Amiga on Programming the Mesh

This isn’t my personal blog, so let me begin by introducing myself.

Live MeshI’m Amit Mital, General Manager of a great team of people that has created some really interesting technology that I’m excited to tell you about – Live Mesh.

There’s been a bunch of buzz about “the mesh” since Ray Ozzie alluded to it at last month’s MIX Conference. As Ray said there, we’ve been exploring the concept of “the mesh” for a couple of years now.

We started by asking ourselves a series of questions about our own digital lifestyle experiences, and examining the role of the web in our lives. We examined many of the ways the web is becoming more central to us – both workstyle and lifestyle. We’re friending, twittering, digging, tagging and linking to stay in touch, share photos, be entertained, meet new people, express our opinions, learn, and the list goes on.

Devices are how we interact in this new “web connected” world and we use a variety of them, including PCs, laptops, media devices, phones, digital picture frames, game consoles, music players and the list grows at every CES. However, as we discover, adopt and use more of these digital devices, it becomes increasingly difficult to keep the people, information and applications we depend on in sync.

I don’t know about you, but I’ve got two work laptops, a home PC, a SmartPhone, a Media Center, and a growing list of new devices. Unfortunately, at least initially, every new device I add makes my life a little harder not easier. There have been countless times where I’ve been in a situation where “that file is on my work machine” or “that photo is on my SmartPhone” or “I can’t access it because I’m offline.” 

It can be frustrating for users and don’t even get me started on how hard this new world is for developers.

We looked on the Horizon

So two years ago when we began our journey, we started from a there-has-to-be-a-better-way perspective and asked ourselves questions like, “How can we make this multi-device world easier for users and developers?” As we started thinking about this, we brainstormed some “what if?” scenarios.

What if we could provide:

  • "Unified Device Management" - enabling your devices to report into a common service, for status, for health, or to report their location.
  • "Unified Data Management"- or the transparent synchronization of files, folders, documents & media, the bi-directional synchronization of arbitrary feeds, of all kinds, across your devices and the web.
  • "Unified Application Management" - for centralized web-based deployment of apps across the devices you own.
  • "Centralized Management" - where you could configure and personalize your devices and remote control into them from just about anywhere.

As our team set out to explore these areas we realized we had a unique opportunity to use the magic of software and internet services to connect and bring devices together into your own personal “mesh” enabling them to work in concert with one another.

In order to deliver these capabilities, we had to tackle a series of complex problems and computer science challenges. We did, and today it’s my pleasure to share and announce the Live Mesh – Technology Preview.

This new software-plus-services platform enables PCs and other devices to “come alive” by making them aware of each other through the Internet. Our goal is to provide a “just works” experience by making it much easier to access the information, applications, people, and devices you care about.

Our design goals for Live Mesh are to have…

  • …your devices work together
  • …your data and applications available from anywhere
  • …the people you need to connect with just a few clicks away for sharing and collaborating
  • … the information you need to stay up-to-date and always be available

We’re achieving these design goals by combining the power of ‘cloud services,’ with the convenience and rich experience of your many devices.

The Platform is the Core

I’ve spent some time talking about the experiences we want to enable, but what really differentiates Live Mesh is that it’s a platform. That’s no surprise, I guess, since building platforms is part of Microsoft’s DNA, and our team is really comprised of a bunch of platform specialists.

We started with a vision of creating an open, comprehensive and accessible platform that enables developers to tackle increasingly complex problems no matter the device, connection or experience.

Our guiding principles were:

  • Services Are the Core of the Platform – the Live Mesh platform exposes a number of core services including some Live Services that can all be accessed using the Live Mesh API; these include Storage (online and offline), Membership, Sync, Peer-to-Peer Communication and Newsfeed.
  • Same API on Clients and in the Cloud – the programming model is the same for the cloud and all connected devices, which means a Live Mesh application works exactly the same regardless of whether it’s running in the cloud, in a browser, on a desktop, or on a mobile device.
  • Open, Extendable Data Model – a basic data model is provided for the most common tasks needed for a Live Mesh application; developers can also customize and extend the data model in any fashion that is needed for a specific application.
  • Flexible Application Model – developers can choose what application developer model best fits their needs.

Today the Technology Preview provides access to the foundational experience that exposes the core functionality and common gestures of the platform. In the near future, we’ll provide more details on the platform including access to an SDK. Nevertheless, today you can get some deeper details on the platform directly from Mike Zintel, Director of Service Infrastructure for Live Mesh. In addition, head over to Channel 9 where throughout this week we’ll be posting some great videos from the team, on topics like Architecture, Sync and Storage, and the Developer Platform.

Take a Quick Peek

I’ve spent some time discussing the why and what of Live Mesh. Now I’d like to give you a brief overview of how it works.

Several times I referenced how Live Mesh enables “your devices to work together.” But how?  With Live Mesh, your experience starts by adding devices to your personal “device mesh” and making them aware so they work together. This is what "software-plus-services" is all about, devices, software and services working together, on your behalf.

Adding a device to your mesh is easy; after you sign up for the service using your Windows Live ID (I’ll tell you how later), you’ll be directed to your personal Live Mesh page to get started. Here you can add, manage and remove your devices.

Live Mesh personal page

After you add a device (or several) to your mesh, you’ll notice a few, small changes on the device, in particular, a new notifier icon in your Windows Taskbar.

Live Mesh Notifier

When you hover over it, you’ll see a pop up, that includes a list of the devices, news feeds and folders in your mesh.

Live Mesh Devices, Feeds, Folders

Now the fun begins. With a couple of mouse clicks, you can easily add an existing (or new) Windows folder to your mesh. As you add a folder to your mesh, it quickly replicates it to your other mesh devices. “Cool,” you might say, “but there are other products that do this, too.”

You’re right, but it gets more interesting. We’ve integrated Live Mesh into your Windows experience by including a “fly out” Mesh Bar next to Windows Explorer.

Live Mesh Fly Out

The Mesh Bar gives you additional information about the Live Mesh folder, such as user activities and notifications. So in addition to having your devices “work together,” you can also stay up to date with any changes.

So Live Mesh enables your devices to work together and allows you to add and sync files and folders across your mesh of devices. But the team didn’t stop there; we took it a step further by adding “social” elements.

With Live Mesh, it’s easy to share the contents of folders with others. For example, I can create a folder called “Vacation Pictures” and with a few mouse clicks easily share it with friends (and the devices in their mesh). When I do, Live Mesh keeps me up to date on what’s happening with that folder by notifying me of any changes (e.g. new files, removal of files, user comments, etc.). We call this News and it’s another way Live Mesh makes an otherwise ordinary folder “come alive” for users.

Let me quickly share with you two other things in Live Mesh: Live Desktop and Live Remote Desktop. While the two have similar names, each does something different, but both add amazing conveniences. Live Desktop enables you to easily access your mesh anytime, anywhere, using only a Web browser.

Access Live Mesh via the Web

Live Remote Desktop builds on the capabilities of Windows Remote Desktop, giving you the ability to directly access and control other devices within your mesh. So, if you need to access and control your home PC, it’s no problem. With one click from any device in your mesh, you’re in control.

Access Live Mesh via Live Remote Desktop

I’ve just briefly highlighted some early experiences the underlying Live Mesh platform provides. There’s plenty more. For a quick tour of the Live Mesh experience, visit www.mesh.com to view some screencasts or drop by http://on10.net to see a couple team members, Noah and George, talk more about the experience.

Getting "Into the Mesh"

Before you get started, I want to give you some other tips and information.

First, this is a limited Technology Preview and we’re seeking your feedback. There’s some pent-up demand, so we appreciate your patience and understanding as we scale the system. We’ll do our best to scale as quickly as possible, but we also want to make sure the system is reliable and responsive.

Second, initially the user interface will be English only and we are hosting the service from our United States data center; this may have impact on some users. We’re working on this, and will announce broader availability in the coming months.

Third, this Technology Preview initially supports Windows (Vista & XP) machines but our vision of your device mesh extends far beyond this. In the near future, we’ll add support for the Mac and mobile devices, and then we’ll build upon that foundation.

It’s been a fun and interesting journey for the team and we’re excited to hear what you think. I hope you take the opportunity to learn more by visiting www.mesh.com.

As I mentioned at the outset, Live Mesh has been developed by a great group of individuals who I have the privilege of managing. Many of them are excited to tell you about what they’ve been creating, so I invite you to visit the team blog at www.mesh.com/blog or stop by Channel 8, Channel 9 and Channel 10 to see a series of “deep dive” videos. Also, you might want to check out Jon Udell's interview of Ray Ozzie on Channel 9. Ray discusses his role as Chief Software Architect, and provides his perspectives on utility computing and Live Mesh.

We hope this marks the beginning of an ongoing dialog with you that spawns lots of new ideas and opportunities. We appreciate your interest in Live Mesh and look forward to “meshing it up” with you.

Amit

Update:

For more information, go to LiveMesh.com.

For more Live Mesh coverage:


Virtual Earth 6.1 Released

The Virtual Earth team just released the latest update to the Virtual Earth map control. Of course, we’ve updated the docs, and you can see it in action with our interactive SDK.

What's new? Here are the highlights:

Enhanced 3D Models
The map detail for Las Vegas, NV; Phoenix, AZ; Dallas, TX; and Denver, CO features improvements in 3D model accuracy and resolution detail to reveal more buildings, small terrain features, building textures, and trees that enhance overall realism.

Printing Support
Printing support for maps is enhanced to print the driving route in relation to the map. Printing support is also expanded for cross-browser support of Internet Explorer® 6 and 7, Firefox 2 for PC, and Apple Safari 2 and 3 for Mac only.

Safari Support
New map controls include better support for  Apple® Safari™ 2 and new support for Safari 3, enabling Mac® users to enjoy many of the features of Virtual Earth™ that are available on Internet Explorer®.

Bird’s Eye Hybrid
Customers can now select a new map style called Bird’s Eye Hybrid that adds street names to the bird’s eye maps to provide end users better visual context and orientation.

Bird’s Eye View in 3D
Users can easily toggle bird’s eye view on and off for a seamless end-user experience.

Localized Directions in Metropolis
Organizations can now provide users with localized driving or walking directions in 15 languages, including English, French, Spanish, German, Portuguese, and Italian, among others.

New Locales
The Virtual Earth™ dashboard, or navcontrol, is localized to support languages including English for U.S.-based speakers, Japanese, Italian, Spanish for U.S.-based speakers, as well as French for both France and Canada-based speakers.

New Walking Directions

New in this release, users in North America and the European Union can now find the most direct route to walk to their destination, ignoring one-way streets, medians, and other detours that pertain to motor vehicles.

Traffic-based Routing
Want to take the frontage road and avoid the highway at rush hour? Traffic-based routing lets users choose a route based on current traffic flows to get where they’re going faster.

New Reverse Geocoding
New in this release, users in the U.S. can now find the closest street address based only on latitude and longitude coordinates from a GPS or other geospatial device.

Version Compatibility
Version 6.1 is backwards compatible with version 6.0.
 
For more information about licensing and pricing, contact maplic@microsoft.com.

Windows Live ID and Phishing

Hi everyone, Neelamadhaba Mahapatro (Neel) here – I run Microsoft’s online identity service (Windows Live ID). Consumer safety, security and privacy are our top priority. Earlier this week a comment was left on Angus Logan’s blog, it got me thinking, and I want to share what we are doing to create phishing resistant systems.

  • We are absolutely aware of the dangers of phishing on the Internet.
  • We understand the probability of attack goes up when the value of the asset that is being protected is higher than the strength of authentication protecting that asset - watch this video by Kim Cameron to see OpenID phished.
  • We have put certain measures in place to counteract phishing attempts which are listed below.

Self Issued InfoCards

In August 2007 we announced beta support for self issued InfoCards with Windows Live ID (instead of username/password). The Windows Live ID team is working closely with the Windows CardSpace team to ensure we deliver the best solution for the 400 million+ people who use Windows Live ID monthly. Angus's commentor, davidacoder, also asked for the Windows Live ID service to become a Managed InfoCard provider - we have been evaluating this; however we have nothing to announce yet.

Authenticating to Windows Live ID with CardSpace.

Additional Protection through Extended Validation Certificates

To further reduce the risk of phishing, we have implemented Extended Validation certificates to prove that the login.live.com site is trustworthy. I do however think more education for internet users is required to help drive the understanding of what it means when the address bar turns green (and what to do when it doesn’t). When authenticating in a web browser, Microsoft will only ask for your Windows Live ID credential pair on login.live.com – nowhere else! (See this related post).

login.live.com with the Extended Validation certificate.

What else have you got?

With identity and security you can’t do enough, therefore we continue to invest in other methods for protecting consumers. Another technique we use for both phishing resistance and usability is the Windows Live Sign-in Assistant. The sign-in assistant stores credentials in the Windows Credential Manager and shares them between login.live.com and Windows Live client applications (e.g. Messenger).

We also use roaming user tiles, which show the user’s avatar on login.live.com. If the picture doesn’t match your identity you should look at the title bar to see if you are in fact on login.live.com.

Windows Live Messenger with list of Live IDs   Windows Live Sign-in Assistant and roaming user tiles on login.live.com.

User Experience and User Education

We’re constantly looking for ways to balance end-user security/privacy and user experience. If the barrier to entry is too high or the user experience is poor, the users will revolt. If it is too insecure the system becomes an easy target. A balance needs to be struck.

Microsoft is proactively engaging with organizations that put consumers at risk by asking for their secret credentials to access Windows Live services by either screen-scraping or using unsupported/undocumented APIs - It is critical that the web industry help change the way consumers treat their secret credentials by ceasing to ask for username/passwords except on the one site that issued them. Using Windows CardSpace is definitely a move forward from usernames & passwords but adoption will be the critical factor here.

Summary

Opening our services & identities so they can be used at sites like flickr is another way we can respond to the needs of our users. Our work on overcoming phishing is complementary to this openness – let’s not pit one area of progress against another.


Microsoft Partners with Top Social Networks to Put Users at the Center of their Data

Hey folks, John Richards here, Director of Windows Live Platform.

Today Microsoft is announcing some significant developments to the Windows Live platform that demonstrate Microsoft’s commitment to data portability and giving users a choice of how to use and control their information.

Building on MIX08

Earlier this month at MIX08, the Windows Live platform team announced a number of new and improved APIs and tools to help the developer community continue to push the envelope and deliver innovative customer experiences. We outlined the priorities for the Windows Live platform, including our intent to simplify data portability while keeping users, and their data, safe and secure.  We announced the beta release of the Windows Live Contacts API, which web developers can use in production to enable their customers to transfer and share their Windows Live Contacts in a safe and secure way. Simply stated, our efforts aim to put users at the center of their online experience.

Today I’m pleased to announce that Microsoft has partnered with some of the world’s top social networks on contact data portability. Starting today, we will be working with Facebook, Bebo, Hi5, Tagged and LinkedIn to exchange functionally-similar Contacts APIs, allowing us to create a safe, secure two-way street for users to move their relationships between our respective services. Along with these collaborations, Microsoft is introducing a new website at www.invite2messenger.net that people can visit to invite their friends from our partner social networks to join their Windows Live Messenger contact list.

Our commitment to data portability

To tackle the issue of contact data portability it is important to reconcile the larger issue of data ownership.  Who owns the data, like email addresses in a Windows Live Hotmail address book?  We firmly believe that we are simply stewards of customers’ data and that customers should be able to choose how they control and share their data. We think customers should be able to share their data in the most safe and secure way possible, but historically this openness has been achieved largely through a mechanism called “screen-scraping,” which unduly puts customers at risk for phishing attacks, identity fraud, and spam. Now with the Windows Live Contacts API, we have provided an alternative to “screen-scraping” that is equally open but unequivocally safer and more secure for customers.  

Strong Partners

The collaborations with Facebook, Bebo, Hi5, LinkedIn and Tagged will make it easier, safer, and more secure for people to have access to their contacts and relationships from more places on the web. These networks will be adopting the Windows Live Contacts API instead of “screen-scraping.”  Starting today, you can visit www.facebook.com and www.bebo.com to find your friends using the Windows Live Contacts API.  Hi5, Tagged and LinkedIn will be live in the coming months.

With these collaborations and the new website at www.invite2messenger.net that lets people invite their social network friends to join their Windows Live Messenger contact list, we’ve essentially now created a two-way street for people to share their information.

In completing this two-way street, both Windows Live and our partners have paid special attention to relationship context and privacy management in order to create the best possible user experience.  We understand that just because people have a friend relationship with a contact on one social network, that doesn’t necessarily mean that they want that same relationship on another network. To preserve the context of the relationship, we are requiring that relationships be re-established in each experience with permission from the friend or contact, rather than automatically storing the data.

We encourage you to visit www.invite2messenger.net to see these ideas in action, and to invite your Facebook, Bebo, Hi5, LinkedIn and Tagged friends to join you on the world’s largest instant messaging network, Windows Live Messenger.

More to Do

For quite some time now, Microsoft has been making investments in the pursuit of data portability to put users at the center of their online experience, while at the same time being thoughtful about balancing user security and privacy with the experience. Today’s announcement is another step in that direction. Our involvement in dataportability.org is a natural development of this as well.  We look forward to continuing to engage in the dialogue on data portability to the benefit of the Internet, its users, and developers. 

---

NOTE: It may take a couple of hours for the site to become available due to DNS propagation.


A Unified Standards-Based Protocols and Tooling Platform for Storage from Microsoft

Posted by George Moore, General Manager, Live Platform Services

In the AtomPub protocol alignment section of last week’s blog posting by Dave Treadwell, he foreshadowed a “few more surprises in this area to be announced at MIX”. I wanted to take this time to more fully paint the picture of our work behind the scenes over the last few months in the context of the announcements at MIX08.

For the first time ever we have a unified protocol and developer tooling story across most of our major storage products from Microsoft:

The unified on-the-wire format is Atom, with the unified protocol being AtomPub across all of the above storage products and services. For on-premises access to SQL Server, placing an AtomPub interface on top of your data + business logic is ideal so that you can easily expose that end point to everybody that wants to consume it, whether they are inside or outside your corporate network.

Layered on top of these protocol standards are a set of URI namespace conventions to address scalar values and feed-of-feed hierarchy navigation which also work uniformly across the above storage products and services, regardless of the top level DNS address of the underlying service:

Description Example URI (taken from Live Photos):
Top-level container /Folders
Address single entry by ID /Folders(123)
Traverse a link /Folders(123)/Photos
Addressing can nest as appropriate /Folders(123)/Photos(456)/ImageStreams
Access primary value /Folders(123)/Photos(456)/$value
Presentation control $orderby, $filter, $top, $skip, $expand
Service metadata /$metadata

Reserved keywords in the URI conventions start with $ and are used by the higher-level developer tools and libraries to assist the developer by providing stronger typechecks at design and compile time. The last item in the table above – $metadata – is the key to allow autodiscovery of higher level service-specific constructs by any developer tool against any of the Microsoft service endpoints. More on that below.

While it is certainly feasible to interact with any of these services by simply performing HTTP GET, PUT, POST and DELETE operations against any of these URI constructs, the real value comes from the ability to utilize any of the existing Atom and AtomPub libraries on the web to assist with higher level programming. Microsoft supplies an AtomPub lib via the .NET WCF Syndication for exactly this purpose. In the following code example, we show how using such a library can greatly reduce the amount of coding required to open and parse an authenticated Atom feed for Live Spaces Photos:

// Open an authenticated Spaces Photo Atom feed, parse the top-level
// list of "feeds" (photo albums), and display that in a listbox.
void LoadFolders()
{
     WebClient c = new WebClient();
     c.Headers["Authorization"]="DelegatedToken dt=\"" + DelToken + "\"";

     using (Stream s = c.OpenRead(string.Format(Svc, CID) + "/Folders"))
     {
           // WCF Syndication can directly parse Atom feeds:
           var feed = SyndicationFeed.Load(XmlReader.Create(s));
           foreach (SyndicationItem item in feed.Items)
           {
                DropDownList1.Items.Add(item.Title.Text);
           }
     }
}

However the most efficient programming comes from the highest levels of abstraction provided by ADO .NET Data Services (aka “Project Astoria”) which provide LINQ statements for .NET against any of the above on-premises or cloud-based storage endpoints. The code example below works identically to the WCF library example above, but since Astoria can autogenerate specific types for the various constructs in the Live Spaces Photo feed, the equivalent code that a developer must write is quite a bit smaller:

void LoadFolders()
{
       // Strongly-typed photo-specific constructs are autogenerated by the
       // Astoria tools by directly parsing the $metadata area of the
       // Photos service
    
       SpacesPhotosService svc = new SpacesPhotoService(Svc, CID, DelToken);
    
       Foreach (Folder f in svc.Folders)
       {
       DropDownList1.Items.Add(f.Name);
       }
}

And finally, layered on top of all these formats, protocols, and tools is a unified synchronization framework based upon the FeedSync extensions to the AtomPub protocol. The FeedSync specification is available under the Creative Commons Attribution License and the Microsoft Open Specification Promise. Also revealed at MIX is the Microsoft Sync Framework which provides an extensible model for online/offline synchronization and replication of any data source across any device on any network topology. Completing the sync picture is “Astoria Offline” which utilizes the Sync Framework to provide direct synchronization against any ADO.NET provider, including the storage services described at the beginning of this post.

It is hard to overestimate the value and utility of having a robust synchronized “mesh” of devices and feeds. As Ray Ozzie described during his MIX08 keynote:

Just imagine the convenience of unified data management, the transparent synchronization of files, folders, documents, and media. The bi-directional synchronization of arbitrary feeds of all kinds across your devices and the Web, a kind of universal file synch.

To summarize, the complete storage and developer tools stack revealed at MIX08 looks like this (described top to bottom). You are free to utilize this stack at any level of abstraction – there are no requirements to use all layers, and you are free to substitute your own developer tools against any layer:

Area Product, Library or Protocol
4: Synchronization infrastructure: "Astoria Offline"
Microsoft Sync Framework
Feedsync AtomPub extensions
3: Developer tools: ADO.NET Data Services
.NET WCF Syndication libraries
AtomPub URI namespace conventions
2: Protocols: AtomPub
Atom
1: Underlying Products and Services: On premises: SQL Server
Structured Cloud Storage: SQL Server Data Services
Live services: Spaces Photos and Application Data Storage

While all of the above code is available for initial use, this stack is not complete – there is more to come at even higher levels of abstraction. I’ll leave you with an additional foreshadowed reference to future announcements in this space, again quoting from Ray Ozzie’s MIX08 keynote:

Before you know it, you in this audience are going to have the option of being the first to try out an early technology preview of this simple but incredibly useful new software and service. As this product emerges just over the horizon, I think you'll find it to be quite intriguing and key in delivering upon a compelling vision of a personal device mesh and of connected devices.

For more information on any of the items in this post, please watch the following MIX08 presentations:

-- George Moore


New API Docs and a Facelift for dev.live.com

Last week David Treadwell announced a slew of new technologies for the Windows Live Platform, including a few “coming next week” items--which are now available. Today, we posted the documentation for Silverlight Streaming Beta, the Application Based Storage API Community Tech Preview (CTP), the ATOM-based Photos API (CTP), and an update to the Visual Studio Tools for Windows Live. Please take a look and take the APIs out for a spin.

Also, you may have noticed (unless you are reading this in your feed reader) that the Windows Live Dev site has been refreshed, with improved site-wide navigation, a new look and feel, and what we think is, generally, a better organization to the site. What do you think? Let us know at: devlivFB at no spam Microsoft dot com.

Thanks.


David Treadwell on New and Updated Windows Live Platform Services

Hey folks, Dave Treadwell here. For those who don’t know me, I run the Live Platform Services team here at Microsoft. Before coming over to the services world, I spent many years working on .NET, and I feel really fortunate to be working on a part of what I feel will be the next great round of developer platform infrastructure for the industry: platforms to make it easy to create awesome services-based applications.

I wanted to guest post today to let everyone know we’ve got some cool new applications and APIs we’re unveiling at MIX08. The Windows Live platform team has been working hard to expand our services for developers, so they can create rich new experiences for users. I’ll be covering:

  • New services & existing services progress
  • Standardization of frameworks & protocols
  • New pre-release services/tools for experimentation and feedback
  • Windows Live Quick Applications (demo web sites) updates

New services & progressing existing services

Windows Live Messenger Library (new to beta) – “Develop your own IM experience

We are opening up the Windows Live Messenger network for third-party web sites to reach the 300 million+ Windows Live Messenger users. The library is a JavaScript client API, so the user experience is primarily defined by the third party. When a third party integrates the Windows Live Messenger Library into their site they can define the look & feel to create their own IM experience. Unlike the existing third party wrappers for the MSN Protocol (the underlying protocol for Windows Live Messenger) the Windows Live Messenger Library securely authenticates users, therefore their Windows Live ID credentials are safe.

iBloks have implemented the Windows Live Messenger library so consumers are able to share interactive experiences with their buddies – see it here. You can also check out the Tafiti application (open source code available here) for a great example of how to implement this API.

image1 image51

Contacts API (progressed to Beta) – “Bring your friends”

Our goal is to help developers keep users at the center of their experience by letting them control their data and contact portability, while keeping their personal information private. A big step forward in that effort is today’s release to beta of Windows Live Contacts API. Web developers can use this API in production to enable their customers to transfer and share their contacts lists in a secure, trustworthy way (i.e., no more screen scraping)—a great step on the road toward data portability. (For more on Microsoft’s view on data portability, check out Inder Sethi’s video.) By creating an optimized mode for invitations, it allows users to share only the minimum amount of information required to invite friends to a site, this includes firstname / lastname / preferred email address. The Contacts API uses the new Windows Live ID Delegated Authentication framework; you can find out more here.

Silverlight Streaming (progressed to beta) – Use our infrastructure to deliver great experiences

Silverlight™ Streaming by Windows Live is the companion service to Silverlight. We are increasing the free hosting and storage limit to 10 GB and can now stream HQ content at 1400Kbps (see a sample here). During the SLS alpha we saw most scenarios were media driven (i.e. video/audio) – to make it easier for content producers to get their media in front of their users, we have introduced a Video Management scenario which allows media to be uploaded in many formats (Flash, DIVX, MPEG-4, QuickTime, H.264, H.263, WMV1, WMV2, MPEG-1, MPEG-2) and we will transcode the content into a Silverlight™ compatible WMV/VC-1 format. For developers we have introduced a new WebDAV API for Silverlight Streaming which allows for file by file management and Web Folders support - for more information go here.

The updated service and documentation will be available next week.

image_thumb14 image_thumb12

image_thumb32

Standardization of frameworks and protocols

We have made progress on standardization of frameworks and protocols to provide a more consistent, predictable experience for developers and consumers.

Windows Live ID Delegated Authentication--“Safely & securely enable data portability”

Today the Windows Live ID team released the Delegated Authentication SDK v1.0, which provides a platform-neutral way for web applications to access users' information from Windows Live services while the user remains in firm control of their own data.

Based on customer feedback, we have enhanced the delegation framework that was announced at MIX07. The enhancement will now become the standard for Windows Live users to safely & securely grant permission for third-party web sites to access their information (i.e. no need to share Live ID credential pairs). For more information on Delegated Authentication, check out today’s Windows Live ID blog post.

Like the Windows Live ID Web Authentication SDK, we have samples available in ASP.NET / Java / PHP / Python / Perl / Ruby.

image_thumb22 image_thumb25 image_thumb23

The specific enhancements are:

  • When a user grants permission they can select the length of time a web site is allowed to access their data. (putting the user in control of their data)
  • The underlying technology is more similar to Kerberos where a delegation token is only valid for 12 hours and a refresh token must be used (this reduces token fatigue).

Atom Publishing Protocol (AtomPub) as the future direction

Microsoft is making a large investment in unifying our developer platform protocols for services on the open, standards-based Atom format (RFC 4287) and the Atom Publishing Protocol (RFC 5023). At MIX we are enabling several new Live services with AtomPub endpoints which enable any HTTP-aware application to easily consume Atom feeds of photos and for unstructured application storage (see below for more details). Or you can use any Atom-aware public tools or libraries, such as .NET WCF Syndication to read or write these cloud service-based feeds.

In addition, these same protocols and the same services are now ADO.NET Data Services (formerly known as “ Project Astoria”) compatible. This means we now support LINQ queries from .NET code directly against our service endpoints, leveraging a large amount of existing knowledge and tooling shared with on-premise SQL deployments.

The intent for these early, experimental releases are to gather valuable feedback from the community around our idiomatic and freely licensed extensions to AtomPub which deal with important service scenarios, such as URL formats, nested directories, image streams, and service metadata. You can read more about this on the Project Astoria team blog.

There will also be a few more surprises in this area announced at MIX. Stay tuned. Try them out and give us your feedback!

Pre-release services for experimentation & feedback

Developer Tools – Windows Live Tools for Microsoft Visual Studio (CTP Refresh) “Drag and Drop Live Services into your apps”

The February CTP refresh of the Windows Live Tools will provide rich developer support for the Windows Live Messenger IM Control. You can easily integrate Windows Live services into your ASP.NET applications by dragging and dropping these ASP.NET server controls onto the canvas.

The updated tools and documentation will be available next week.

image_thumb31

The community has been busy creating .NET wrappers for Windows Live services, LiveNet is a community development by some developers in the UK – check it out here.

 

Application Based Storage

Application Based storage is an experimental API which allows application developers to store a small amount of state/configuration data in the Windows Live data centers on behalf of a user. This API has an AtomPub service end point so developers will be able to call this using ADO.NET data services or other AtomPub compatible tools. The real value kicks in here if an application was to have hundreds of thousands of users as the client bandwidth and storage are offloaded to Windows Live infrastructure. 

The service and documentation will be available next week.

 

Windows Live Photo API (CTP Refresh with AtomPub end point)

The Windows Live Photo API allows users to securely grant permission (via Delegated Authentication) for a third party web site to create/read/update/delete on their photos store in Windows Live. The Photo API refresh has several things which make it easier and faster for third parties to implement.

  • Third party web sites can now link/refer to images directly from the web browser so they no longer need to proxy images, and effectively save on image bandwidth bills.
  • A new AtomPub end point which makes it even easier to integrate.

The service and documentation will be available next week.

Quick App Updates

Windows Live Quick Applications provide customizable out-of-the box solutions for specific Web scenarios. Each Quick App is built on Windows Live services and is offered as a source code download for you to use today. You can use these apps as a starting point for your own development, and they will give you a great idea of the sorts of things that you can accomplish on top of the Windows Live infrastructure.

Visit Planner / Contoso Hotel (new Quick App)

Contoso Hotel drives customer affinity using Windows Live Services. Microsoft Silverlight, Virtual Earth, and Windows Live Messenger create an engaging experience that keeps customers coming back (Try it | download the code here | watch the video ).

image_thumb34

Tafiti Search Visualization (updated with the Windows Live Messenger Library)

Tafiti Search Visualization uses the Windows Live Messenger Library, Microsoft Silverlight and the Live Search API to provide a compelling search experience for users and allow them to share that experience with their friends (Try it | download the code | watch the video).

image_thumb37

---

Developers can continue to bet their business on us with confidence. Our priorities are simplifying data portability while keeping users safe and continuing to deliver innovative APIs and tools to help the developer community continue to push the envelope. You can expect to hear more from us in the coming months.

I’m looking forward to talking to many of you in person at MIX next week and you should expect to hear a lot more from Windows Live platform in the weeks ahead.

Best Regards

David Treadwell, Corporate VP of Windows Live Platform Services


Microsoft Joins DataPortability.org

I’m pretty excited about the news that Microsoft is joining Dataportability.org. A lot of the work we’ve been doing at dev.live.com over the last year has focused on opening up data stored in Windows Live in secure and user-friendly ways. The Windows Live Contacts control and API, for example, allows users to share their Windows Live Contacts with other sites. We’re working on more APIs that allow users to move their data around the Web—and we can’t wait to see how this new effort can help.

Here’s the official announcement:

“Today Microsoft is announcing that it has joined DataPortability.org, a group committed to advancing the conversation about the portability, security and privacy of individuals’ information online.  There are important security and privacy issues to solve as the internet evolves, and we are committed to being an integral part of the industry conversation on behalf of our users.

The decision to join DataPortability.org is an outgrowth of a deeper theme that technology and the internet should be deployed to help people be at the center of their online worlds, a theme that has begun to permeate our products and services over the past few years. We believe the logical evolution of the internet is to enable the removal of barriers to provide integrated, seamless experiences, but to do so in a manner that ensures that users retain full control over the security and privacy of their information.

Windows Live is focused on providing tools and a platform to enable these types of seamless experiences.  Windows Live has more than 420 million active Live IDs that work across our services and across partner sites.  Through each Windows Live advancement we’re making technical investments to ensure users’ information is available to them in the places they want, even across the networks they use every day.  Windows Live Writer, Mail, Photo Gallery and Spaces, for example, allow users to get access and publish to the places they want, even outside Microsoft’s network.  And the Windows Live Platform and Terms of Use offer a set of APIs and controls that allow for the growth of an ecosystem based on the premise of user control and portability. 

Microsoft feels strongly that getting the right balance for data portability, security and privacy is critical for the industry, and doing it well requires the participation of all the major web services.  We are no stranger to these types of broad industry dialogues, and the one that is taking shape at DataPortability.org will be very effective in furthering users’ interests.”


New QuickApp Released: "Tafiti" Search Visualization (w/source code)

Tafiti, which means "do research" in Swahili, is a search visualization site that brings a new user experience to researching (searching and storing results). Tafiti uses both Microsoft Silverlight and Live Search to explore the intersection of richer experiences on the Web and the increasing specialization of search.

Today we are releasing the Tafiti Search Visualization source code to CodePlex, which means any developer can download, modify, and resell the code (see MS-PL License for all the details).

Tour the demo site (see the original)
Download the Tafiti code (read deployment guide).

Read more on Angus Logan's blog.

Note: Windows Live Quick Applications are a set of working applications developers can download and use as reference implementations or starter kits for the Windows Live Platform.


.NET Wrapper for Windows Live Services (from LiveSide.net)

The fine folks over at the LiveSide.net are working on a .NET wrapper for Windows Live Services. According to Scott, they will be adding support for a number of services, but have started with the Live Photos API. Head over to Scott's post for much more info, including a code sample.  Also, this is an opensource project, so you can check out the source code on CodePlex.

Nice work, guys.


Introducing: FeedSync

Today we published the final v1 spec for Simple Sharing Extensions, under a new name, FeedSync. Want to find out more? Go here. There is a tutorial walkthrough, and pointers to some sample code in JavaScript, VB, and C# for those who are interested.

The creation of FeedSync was catalyzed by the observation that RSS and Atom feeds were exploding on the web, and that by harnessing their inherent simplicity we might enable the creation of a “decentralized data bus” among the world’s web sites. Just like RSS and Atom, FeedSync feeds can be synchronized to any device or platform.

Previously known as Simple Sharing Extensions, FeedSync was originally designed by Ray Ozzie in 2005 and has been developed by Microsoft with input from the Web community. The initial specification, FeedSync for Atom and RSS, describes how to synchronize data through Atom and RSS feeds.


More Posts Next page »