Whats Next for Next-Generation Apps

Q&A: Architect Don Box discusses Microsoft's "Indigo" and other things to come.

Don Box is an architect assigned to the "indigo" project at Microsoft Corp., where he is working on next-generation Web services protocols and plumbing. Box recently spoke with eWEEK Senior Editor Darryl K. Taft about upcoming technologies from the Redmond, Wash., company such as the Language Integrated Query project, Windows Workflow Foundation and Windows Communication Foundation (aka Indigo).

What do you see as the most interesting technology in your space?

I think the Windows Workflow Foundation stuff is the most interesting thing in my space. We call it "dub, dub, F" because its so long to say. We did a lot of work in Indigo since the last PDC [Professional Developers Conference].

If I look at the division I work in, were basically shipping another round of Indigo and getting ready to call it done. Weve been listening to people telling us what they like and where we suck. And were trying not to suck.

I think people are excited about the fact they can take a single Indigo program and, through declarative configuration, without recompiling the code, add all these new protocols, like JSON [JavaScript Object Notation] that the AJAX [Asynchronous Java and XML] gives you, or POX [Plain Old XML] or REST [Representational State Transfer] or any of that stuff. So thats actually really good and not a lot of effort on our side because the architecture was already built to be extensible. So, we just needed to exploit that a little bit. I think the WWF stuff is going to just completely melt peoples minds.

Whats the concern some people have about "WSDL [Web Services Description Language] first" or "contract first" development and whether Microsoft supports it?

Lets take a step back. Indigo is based on contracts. We take contracts very seriously. The contract system, for me, is the heart of Indigo. Now the contract can have many representations. We need an in-memory rep so that we can load it into the CLR [Common Language Runtime] and do something with it. The question is how we externalize that stuff, like how do we put it in a text file and share the text file.

There are basically two ways that we support with full fidelity, first class to all the contracts in Indigo: You can write WSDL or you can write annotated C# or VB.Net—annotated CLR-friendly languages. We dont care which one you do; it doesnt really matter to us. [None] of those is the native format we use in Indigo. We shred [the code] into something thats highly optimized for the way our system works.

But we take the data from either side—you can mark up your code, or you can mark up your markup. We dont really care.

If I were an enterprise architect and I had to write a bunch of contracts, Id write in a dialect of XML vocabulary that was fairly close to my world ... and then write the transforms to spit out the WSDL and whatever else I needed to make my platform of choice run. If its Indigo, Im going to spit out those annotated C# files.

If its Java, Im going to spit out annotated Java files. You could use WSDL as the source material to generate that stuff, which is the mentality a lot of people have. The problem is its just not the best way to go.

Next Page: Questions and skepticism.