OData

Create and consume RESTful APIs in a simple and standard way

Looking for feedback: query caching in data services

(sorry, tricky problem -> long write-up) One of the few things pending in the server library of the ADO.NET Data Services Framework is query caching to help with performance. Here is a brief explanation of why we needed and a couple of design options. Feedback is welcome. Query processing in Astoria To give a little bit of context, let ...

Related entries and feeds: links and link expansion

While going through application scenarios for the ADO.NET Data Services Framework (Project Astoria) one of the first things we noticed is that data-centric applications usually want to bring down graphs of related resources in each interaction with the server. For example, if you are retrieving a resource that represents an "Event", you may ...

AtomPub support in the ADO.NET Data Services Framework

  We have been looking for the last few months at adding first-class support for AtomPub to Project Astoria (we briefly touched on it before here). We are at a point where we have some parts of the AtomPub story and their initial implementation running (and we'll share fresh experimental bits soon), some parts on the design board and ...

Design Notes: URI Containment in Astoria

Problem statement Today in Astoria if you have two entity types that are functionally in a containment relationship, you still see a top-level entity set for the instances of the contained type, and further the URLs for instances of the contained types that go through the parent type contain redundant information. For example, assuming a ...

ADO.NET Data Services Dec2007 CTP – Validation and Access Control

Note: This post refers to the CTP available here. When building frameworks to expose and consume data on the web, access policy and data validation are always one of the first topics discussed during the design process, at conferences, etc.  Given this, we thought the topic would be a good one to kick off a series of blog posts about ...

Astoria data sources and system layering

The question is: what data sources should Astoria support as inputs? Should we allow ADO.NET Entity Framework only or open up more? If we open up more, how does the system need to be layered to enable the use of those alternate data sources? Let me step back for a second first and establish why certain data sources are interesting. Why does ...

URI Format – Part 1 – Addressing resources using URI path segments

Deciding on something that becomes a public interface of a developer-oriented technology is a tricky task. Not only does the resulting design need to be correct and complete, but also there are various aspects that are more around aesthetics and personal preference. The URI format used by Astoria will need to survive both sets of challenges...

Astoria Design: payload formats

The goal of Astoria is to make data available to loosely coupled systems for querying and manipulation. In order to do that we need to use protocols that define the interaction model between the producer and the consumer of that data, and of course we have to serialize the data in some form that all the involved parties understand. So ...