Following the release of Visual Studio 2008, a handful of significant enhancements began to take shape, targeted for the SP1 timeframe. I’m sure most of you heard about the MVC Framework for ASP.Net, and you may have heard about the Dynamic Data Website, too. But I’m still surprised how many people haven’t heard of Astoria (now called ADO.Net Data Services).
Built on top of the Entity Data Model, Astoria is intended to expose your entities as REST or JSON objects with very little extra work from you. Best of all, the Astoria controller understands the verbs needed to interact with this model in a standard way. Much like the Dynamic Data Website, once you set up the data model, you can have your web service front-end working remarkably quickly.
If you haven’t seen Astoria yet, you should check it out. Chances are, you’ve got some web services that would work much better with this type of interface. I’m talking about all of those CRUD-type services that are barely services at all by any reasonable definition, but seem to make up an awful lot of “SOA” architectures these days.
But the thing that really caught my eye this morning was a blog entry about the direction Astoria is looking for future development. The idea of offline capabilities in an Astoria service is pretty interesting. Microsoft has been trying to crack this nut for a while, if you recall. We’ve seen SQL Server synchronization technologies, ADO.Net Offline Application Blocks, and others try to make offline “easy”, but we’re not quite there yet.
Personally, I think part of the problem is in our application design. Basing application design on a relational model leads us to develop objects that are really dependent on one another. When one changes, we tend to see ripples of updates cascading out to other objects, and this makes synchronization a real headache. The REST model employed by Astoria, on the other hand, encourages a bit more loosely-coupled approach to storage, which should help make synchronization a bit more reasonable.
I’m certainly going to be watching PDC announcements this week for more news on Astoria’s future. It’s also clear that I’m going to have to spend some more time getting up to speed on Entity Framework.