Mike Flasko presented on Astoria this afternoon as part of the Data Access track at DevConnections. Being the PM on the Astoria team, Mike’s not stuck with the prototype bits like the rest of us slackers and was using production bits of what Astoria will really look like.
Here’s a few new things:
1. No more code name. Bah – I always hate this part. I like Astoria.
The official name of the product is ADO.NET Data Services. Oh boring, but descriptive. Although when you see #5, you might wonder why “ADO.NET” is in the name.
2. No more POX (Plain old XML) and they didn’t go with that Web3S format either. Data will be spit out as JSON or ATOM. ATOM is xml is formatted for blog posts so you’ll see elements named feed and more.
3. AJAX Client. When working with the services from the client side usig ajax, there is an ajax client api. It was something like sys.data.services. I will ask Mike and fix that. 🙂 You can use this to easily point to the data service and do things like call an insert method to easily insert a json object.
4. You can incorporate mime types into your data and when the service is built, those will be pulled in and then (as a example) if you have data that is the binary of a gif and it has image mime type associated with it, then the data will be served up as the image, not as the string of binary. This is easily demonstrated when using the uri directly in a browser. I haven’t seen how this surfaces in a client app. But it’s very sweet.
5. Build services against any class that exposes iQueryables. Entity Framework queries return iQueryables of entities. After some discussion of which way to go with this in the Astoria Team blog, they decided to leverage the iQueryable. So you can build a class that has a public method that returns your data as iQueryables, then you can build the service against that just as easily as you can build one against an EDM.
6. Last bu hardly least is. dah dah dah dah…
LINQ to ASTORIA.
Yes, Virginia. You can write a LINQ query that will get interpreted into the URI. Astoria already provides a means of generating classes for clients to use, so LINQ just works against these classes.
That’s all I remember since I didn’t have my computer or a scrap of paper with me in the session.
Sign up for my newsletter so you don't miss my conference & Pluralsight course announcements!