Parsing OData Paths, $select and $expand using the ODataUriParser

UPDATE: This post was updated on May 29th 2013 to reflect changes to simplify the SelectExpandClause API between 5.5 beta and 5.5 RTM Release, the biggest change involved merging Select and Expand into SelectedItems. The ODataUriParser is continuing its march towards completion. In fact in ODataLib version 5.5 (RTM drops on May 29th) it is…


OData in WebAPI – RC release

Next week we will release an official RC of the Microsoft ASP.NET WebAPI OData assembly. This marks the third release on our way to RTM.  Although this post talks about code that hasn’t been officially release yet, since all development is happening in public, if you can’t wait till next week, you can always go…


Parsing $filter and $orderby using the ODataUriParser

Background and Plans For a while now we’ve been shipping an early pre-release version of an ODataUriParser in ODataLib Contrib. The idea is to have code that converts a Uri used to interact with an OData Service into a Semantically bound Abstract Syntax Tree (AST) which represents the request in terms of the OData concepts…


OData in WebAPI – Microsoft ASP.NET Web API OData 0.2.0-alpha release

Since my last set of blog posts on OData support in WebAPI (see parts 1 & 2) we’ve been busy adding support for Server Driven Paging, Inheritance and OData Actions. Our latest alpha release on Nuget has preview level support for these features. Lets explore the new features and a series of extensions you can…


Web API [Queryable] current support and tentative roadmap

The recent preview release of OData support in Web API  is very exciting (see the new nuget package and codeplex project). For the most part it is compatible with the previous [Queryable] support because it supports the same OData query options. That said there has been a little confusion about how [Queryable] works, what it…


OData support in ASP.NET Web API

UPDATE 2 @1:21 pm on 16th August (PST): There is an updated version of the nuget package that resolves the previous dependency issues. Oh and my comments are now working again. UPDATE 1 @10:00 am on 16th August (PST): If you’ve tried using the preview nuget package and had problems, rest assured we are working on…


CQRS with OData and Actions?

I love the Actions feature in OData – which is hardly surprising given I was one of its designers.  Here’s the main reason why I love it: Actions allow you move from a CRUD architecture style, where you query and modify data using the same model, to an architectural style where you have a clear…



In my last post I blithely said ‘This is where judgment comes in…’. Unfortunately judgment isn’t easy. Now when I was younger – say 10 years ago – I was sure about everything – not least my latest harebrained API design. I chalk that up to inexperience and not knowing better. But now after 15…


How do I do design?

For a while now I’ve been thinking that the best way to get better at API & protocol design is to try to articulate how you do design. Articulating your thought process has a number of significant benefits: Once you know your approach you can critique and try to improve it. Once you know what…


TechEd 2010 Videos

If you didn’t get to TechEd – no problem – videos of all the sessions are available here. Including my Best Practices: Creating an OData Service using WCF Data Services session. If you watch that video and want to follow try it out – you can download all the source code I uploaded previously. Enjoy.