Astoria and Blog Publishing


After hearing news about Astoria Project, I realized it will be a good candidate for blog publishing. 

You can manage feeds with Windows RSS Platform and although it is named RSS, it really support any RSS or Atom version (Syndication). But It has not support (and it is not intented for it) publishing support (Atom is in draft ietf

There are several API (Atom, MetaWeblog, LiveJournal, Blogger...moving to GData), and I think there is the possibility of improvement here.

You can read more about Astoria Project at its web site, but a brief summary from the site, seems helpful:

The goal of Microsoft Codename Astoria is to enable applications to expose data as a data service that can be consumed by web clients within a corporate network and across the internet. The data service is reachable over HTTP, and URIs are used to identify the various pieces of information available through the service. Interactions with the data service happens in terms of HTTP verbs such as GET, POST, PUT and DELETE, and the data exchanged in those interactions is represented in simple formats such as XML and JSON.

I was just imagine a module for Community Server or Microsoft Office SharePoint Server 2007, in order to interact with the blog engine to publish and manage posts and related information, and update weblog clients to use it as Windows Live Writer.

The DataService should match a standard schema, for blogs, so having a http://server/blogs/blogs.rse would show the entities (Tags, Categories, Posts, etc..), and URIs for the system would be possible in a quicker way:

  • All Categories
    •  http://server/blogs/blogs.rse/Categories
  • All Posts for Tags with name "SharePoint"
    • http://server/blogs/blogs.rse/Tags[TagName eq 'SharePoint']/Posts

The client could have the possibility to interact in XML or JSON, so AJAX interfaces should become easier to build and test.

Some of the issues with others API should be address, as for example:

  1. Retrieve posts using search queries.
  2. REST interaction
  3. XML or JSON parsing

It would be great to create a prototype ;) isn't it?