Rich Turner
replies and I'm more confused than ever. He's wearing his Indigo-colored glasses and misreads just about everything I wrote. I'll leave aside the SOA discussion for now and concentrate on Indigo. I'll try to make this as plain as I can.
I want to design and build services with Indigo. I want services, messages, and operations to be first-class citizens in the programming model. I'm perfectly happy to use XML as the serialization format for messages and XML Schema as the schema language for describing messages. I'd rather not have to deal directly with the XML and Schema in the programming model. I want to work with a higher-level abstraction. Ideally I think this would be a new .Net type called Message (or message if you prefer C#). This would be an addition to the existing types (classes, value types, interfaces, arrays, pointers, and enumerations). This type's members would be restricted to public fields (no properties, no methods, etc.). The datatypes for those fields would be limited to the intersection of those simple types in both .NET and XML Schema AND complex types constructed from those simple types. It would be really cool if there was a Whitehorse designer like the class designer. Of course, to go along with the Message type, I'd like a true Service project in Visual Studio.
There are other ways to implement what I really want, but this, I hope, makes clear a few points that I have been unable to get across to any member of the Indigo team. First, I don't want to design an object model and then decorate it with attributes to design my messages. I want to design the messages directly. Without using any attributes. No attributes. What's so hard about the "no attributes" part of this? Everybody else that I've discussed this with understands that I don't want to use attributes. They may not agree with me, but they understand that I don't want to use attributes. Rich, just like the rest of his team, says, "create a data structure that you've adorned with the attributes necessary to describe the construct." Using attributes is a way of saying that the message isn't real or important. It's a just a messy detail that Indigo will handle for you. Second, when I say I want to work with messages, I'm not saying that I want to process the XML directly. I don't want Indigo to "get out of my way", I want it to help me. The Indigo team has this bizarrely bifurcated view of the world that equates message-oriented with hard-core bithead and object-oriented with Average Joe Developer. It's only that way in the Indigo world because they've made it that way by refusing to expose their underlying model in a consistent manner. It doesn't have to be that way. There's a very straightforward, business-oriented messaging model that could easily be layered on top of Indigo. If only they could see it. There's clear evidence all around them. WSE is closer than Indigo is, but BizTalk is where they really need to look.
Posted
May 09 2005, 10:09 PM
by
john-cavnar-johnson