Welcome!

Linux Authors: Reuven Cohen, Michael Sheehan, Lavenya Dilip, Ian Thain, Bruce Armstrong

Related Topics: XML, .NET

XML: Article

Another Day Another Codename - Astoria and Jasper!

MS has been getting a lot of write-ups and a lot of blog treatment - some good, some bad

Kevin Hoffman's Blog

Microsoft has been getting a lot of press lately. From the announcement of their decision to Open Source some of the Dynamic Language Runtime (the tool that powers the IronPython thing in Silverlight) to the announcement that the ADO.NET Entity Framework will not ship as part of Orcas (don't even get me started on my opinion of that announcement!) - MS has been getting a lot of write-ups and a lot of blog treatment - some good, some bad.

Jasper
This is a set of components and stack-on code that, from what I can tell, provides an incredibly "Rails-like" experience to ADO.NET. They are referring to this as "dynamic ADO.NET", which means that it requires a dynamic language runtime (The DLR currently drives IronPython 1.1) in order to work. This means that objects in Jasper are generated dynamically and on the fly in order to match the underlying entity model. Currently, it only supports VB9 and IronPython, so I'm not going to bother playing with it just yet. I'll look into it again when they get into Beta 1 or they add more languages (C# or F#) in an upcoming CTP.

Astoria
This one is worth mentioning, and certainly worth exploring. In short, Microsoft has finally realized the real value in RESTful interfaces. This is one more notch in my world-wide campaign to rid the universe of WSDL forever (down with WSDL!). In short, using Astoria, you can create "Web Data Services", which expose an underlying EDM via RESTful interface. So, you could expose a Customers entity using Astoria, and get access to the following types of URLs (which return simple XML, JSON, or RDF-XML):

  • /myentities.svc/Customers[BOB] - Returns the BOB customer
  • /myentities.svc/Customers[BOB]/Orders - Returns all of BOB's Orders
  • /myentities.svc/Customers[BOB]$expand=Orders - Returns BOB and all of Bob's Orders, with the Orders contained within the Bob entity
  • /myentities.svc/Customers[City eq 'New York']/Orders - Returns all orders from all customers with a City value of 'New York'

As you can see, this is ridiculously powerful. Sitting on top of the EDM, which can be queried and manipulated using LINQ, Astoria is the "RESTy POX" layer that I have always wanted. Out of the box, Astoria web data services use PUT, DELETE, POST, and GET, the way the world should work!

In addition, there is a client library that encapsulates all of the busywork of establishing the HTTP connections and serializing and deserializing. You can even create your own client classes with the same field names as the host model and the client library will take care of linking the two for you.

Bottom line: When this thing goes live, if you plan on exposing data via services, and you want to help me rid the world of WSDL, and you enjoy being able to consume simple, easy-to-use XML instead of convoluted SOAP crap.. then join with me and use Astoria for your data services!

tags:        
links: digg this    del.icio.us    technorati    reddit

More Stories By Kevin Hoffman

Kevin Hoffman, editor-in-chief of SYS-CON's iPhone Developer's Journal, has been programming since he was 10 and has written everything from DOS shareware to n-tier, enterprise web applications in VB, C++, Delphi, and C. Hoffman is coauthor of Professional .NET Framework (Wrox Press) and co-author with Robert Foster of Microsoft SharePoint 2007 Development Unleashed. He authors The .NET Addict's Blog at .NET Developer's Journal.

Comments (1) View Comments

Share your thoughts on this story.

Add your comment
You must be signed in to add a comment. Sign-in | Register

In accordance with our Comment Policy, we encourage comments that are on topic, relevant and to-the-point. We will remove comments that include profanity, personal attacks, racial slurs, threats of violence, or other inappropriate material that violates our Terms and Conditions, and will block users who make repeated violations. We ask all readers to expect diversity of opinion and to treat one another with dignity and respect.


Most Recent Comments
.NET News 05/01/07 01:57:46 PM EDT

Microsoft has been getting a lot of press lately. From the announcement of their decision to Open Source some of the Dynamic Language Runtime (the tool that powers the IronPython thing in Silverlight) to the announcement that the ADO.NET Entity Framework will not ship as part of Orcas (don't even get me started on my opinion of that announcement!) - MS has been getting a lot of write-ups and a lot of blog treament - some good, some bad.