We're trying to keep up posting regularly on the design aspects of Astoria we have on the table week by week. In this last week we discussed a couple of important topics in the team blog.

First we touched on URIs. The URI syntax is a very visible part of Astoria, and being a syntax it gets a lot of focus and passion from folks. We made many changes to the URI format between the CTP codebase and the production codebase. It's a mix of user feedback, lessons learned during the CTP and new requerements. Note that this is a broad topic, so this post is the first one of a few.

The other topic we wrote on was how to layer the system to handle multiple data sources. Support for multiple data sources in Astoria comes from two layers:
- ADO.NET Entity Framework has support for multiple databases. It'll support SQL Server out of the box of course, but several other database vendors and database connectivity companies are working on shipping support for many popular database systems.
- For the case where you want to target something that does not look like a database, Astoria lets you plug pretty much arbitrary LINQ base data sources (things that implement IQueryable) and we'll expose it as a set of resources using the Astoria URIs and formats. We also included an extension mechanism through extra interfaces so the data source can handle writes in addition to queries.

As always, your feedback is welcome.

-pablo