In my endeavor to figure out the ecology of Open Data Protocol or OData, recently I started a series which I have termed it as "OData Tool Spotlight". So my first spotlight was on "LINQ Pad". You can read about that here: OData Tool Spotlight – LINQ Pad.

In this article, we will look into another tool within the OData ecology. This time I bring to you a OData Data Browser by name "Sesame Data Browser". So lets take a lap around Sesame Data Browser.

Sesame Logo, Data, your way

Sesame Data Browser:

Sesame Data Browser is the brain child of "Fabrice MARGUERIE". Fabrice is a Software Architect and Web Entrepreneur. Sesame is a suite of data and development tools and Sesame Data Browser is the first product from the suite. Sesame Data Browser is one of the tools we can use to consume OData. Sesame Data Browser is a Silverlight based application which runs in the browser. It also has the capability to be installed as a OOB application or Out Of Browser application. We will look into this in more details in one of the section below.

Where is Sesame Data Browser on the web:

Head over to the following URL to experience Sesame Data Browser:

http://metasapiens.com/sesame/data-browser/preview/

Here is the screen shot of how the application looks like:

image

Not a fancy looking one but believe me when I say – it does what it supposed to do. Wait till we explore the capabilities.

Creating a new connection to a OData Feed:

On the home page, left hand top corner we have "New Connection" button. Clicking on that will show for now "OData" as one of the option. Select that option and we will be taken to the following New Connection page. Lets look at in close details of the page:

image

The New Connection window is divide into 3 sections. They are:

Address: Here is where you will enter OData Feed Address or URI/URL.

Authentication: Here you will specify the type of authentication that the OData Service is using. The Authentication mode available are as follows:

  • Anonymous – as the name says there is no Authentication and is open for any user.
  • Windows Azure – If the Odata Service uses Windows Azure to authenticate then you will need to specify the Access Key here. Here is the snapshot:

    image

    This mode will only work when you install Sesame Data Browser on to your desktop as Out Of Browser app.

  • SQL Azure: SQL Azure out of the box supports exposing of tables as an OData Feed. This option will let you to connect to such a service. You would need to provide Security Token Service (STS) endpoint and the Issuer Name and Secret Key. Here is the snapshot:

    image

  • Azure DataMarket: Azure DataMarket is a new marketplace where Developers & Information workers can use the service to easily discover, purchase and manage premium data subscriptions in the Windows Azure Platform. You will need a account key to access any data source in the market. Here is the snapshot:

    image

  • HTTP Basic: If the OData Service uses a Basic HTTP authentication i.e. UserName and Password in the request headers, this option will allow you to provide the credentials to use. Here is the snapshot:

    image

Example OData Feeds: Lists some of the popular and widely used OData Service feeds. Click on one of them will automatically get their URI/URL and paste it in the Address text box.For e.g. I have selected Netflix fron the exaple feeds and its URI is automatically populated in the address tech box:

image

Click Ok to create a new Connection. For further examples I will be creating a connection to Netflix OData Service catalog.

Executing OData Operations:

Once a connection has been established, we will get a Tab for the selected connection. Here is the snapshot:

image

As you can see browser is able to pull all the Entity sets exposed in the Service root document and display as a link which can be clicked just like an hyperlink on a webpage. Lets examine Genres entity set that is exposed. When I click on Genres, here is how the results are displayed:

image

As you can see the Genres entity set has been retrieved and shown in a neat grid format. lets examine the results pane a little bit more.

Results Pane:

Header Text: First thing we see on the results pane is the header. The header will show text which is something like "Query <N> – <Entity Set Name>". In our example, I have executed my first query as "Genres". So it is showing "Query 1 – Genre". Here is the snapshot:

image

Link Feature: This is an interesting feature of the browser. If you are visualizing a data set and in particular an entity set, then you can share the exact same snapshot with anybody else in 3 ways. They are:

image

Now lets look at the actual results itself. It is displayed very neatly in a grid format. The grid will spit out all the columns that the feed contains. There is a way to choose only those columns that you are interested in, instead of everything. We will see that in a minute. Here is a screenshot of the grid:

image

The grid contains 2 more tabs – namely XML, and Map. XML tab displays the raw XML data as it received from the server.

image

Map tab – as the name goes will display a Bing Map if the data contained any spatial information. Here is a screen shot of Map tab on a data set that contains spatial data:

image

Filtering Data:

The Sesame Data Browser also has the capability to filter data. On the Grid tab we have "Funnel" icon which is used to toggle the filter row. The first row will turn into a filter row. Here is an example:

image

Choosing Columns for display:

Sesame Data Browser also has the ability to let you choose only those columns that you need. A data set may be exposing N columns but you may be interested in a few of those. So the Column  Chooser button on the Grid tab provides this functionality. Here is how to do that – I am taking Titles data set of Netflix to showcase this:

image

If you filter or choose column, Sesame Data Browser has a cool way to extract the Query formed as part of the action. Bottom of the Grid tab we have "Query String" text box which will list the query generated. For e.g. Genres data set has a navigation property called "Titles". By default everything will be retrieved for Genres when you navigate. Here is the Query String generated:

image 

But when I say I don’t want to retrieve the Titles Navigation property, here is how the Query String formed:

image

So if you want to write a OData query, easiest would be to use Sesame Data Browser, retrieve the data set and check & uncheck columns and Sesame Data Browser will generate the Query for you. I would say this is a kool feature :).

Desktop Version of Sesame Data Browser:

Sesame Data Browser is developed in Silverlight technology. It also supports what is known as Out Of Browser experience i.e. although a web application, this can be installed on a Desktop similar to other desktop application but still runs in the sandbox of a browser. So you wont feel a difference and you get a feel like it’s a app running on your desktop. Steps to install application on to your desktop:

– Visit http://metasapiens.com/sesame/data-browser/preview/

– On the page you will see a "Install on desktop" button. Click on that to install.

– Once installed you will be able to launch it from your desktop.

image

Conclusion:

Some time back we had seen LINQPad as a OData Tool. Now we saw Sesame Data Browser. In my opinion LINQPad is more for a developer who wants to play around LINQ but still use it to retrieve data from an OData feed. Where Sesame Data Browser stands is – a browser for Developers and Non Developers. It is very easy for Non Developers to quickly come and visualize a data set. Where it stands apart is the features like drilling down into a Navigational property and automatic recognition of media. I highly recommend first time OData users to play around with this tool.

I hope this article gives sufficient information of using the Sesame Data Brower. That was the intent when I started this article. Hope you learned something new today.

Till next time, as usual – Happy Coding. Code with Passion, Decode with Patience.