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 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:
Here is the screen shot of how the application looks like:
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:
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.
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:
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:
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:
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:
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.
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:
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:
Email: Sesame Browser will give a link which can be emailed to other users. Here is the email link for the Genre entity set from our example: http://metasapiens.com/sesame/data-browser/preview?cn-provider=OData&cn-Uri=http%3a%2f%2fodata.netflix.com%2fCatalog%2f&query=http%3a%2f%2fodata.netflix.com%2fCatalog%2fGenres
Just open the link in a browser you will be directly taken to the Genre entity set of Netflix OData Service.
HTML Anchor Tag: This will give you a HTML anchor tag which can be embed in any webpage. When navigated will show the Sesame Data Browser with the entity set query executed. Try the below link:
HTML Code: The Sesame Data Browser with the executed Query can be completed embed into any webpage. What it does is, it inserts a IFRAME and points the source of the IFRAME to Sesame Data Browser and to the Genre entity set. Here is the live example:
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:
The grid contains 2 more tabs – namely XML, and Map. XML tab displays the raw XML data as it received from the server.
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:
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:
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:
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:
But when I say I don’t want to retrieve the Titles Navigation property, here is how the Query String formed:
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:
– 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.
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.