There has been a lot of recent chatter about Indigo, especially since Eric Rudder recently gave the VSLive! Keynote in San Francisco yesterday. My previous post resulted in a "glue" feeling from Kent that the Microsoft environment provided in the past. I am starting to get this feeling again. I am not saying this is a bad thing; in this case it actually makes sense with what they've done.
When .NET first came out we had .NET remoting, ASMX for web services, enterprise services for distributed transactions, WSE for all of your WS-* and MSMQ for message queuing. Which service do I use where and why is a common theme you would see follow. Now Indigo wraps these services in a nice clean layer.
In Indigo it’s all about your service classes, host environments and endpoints. In a nutshell, you create classes that are exposed as services with a [ServiceContract] attribute and [OperationContract] attributes for your methods. You can then host the service using Windows Activation Service (WAS) or by creating your own process using a ServiceHost generics class where it’s type is your service class defined above. The endpoints describe the terms of the communication. This can be defined in either .config file or it can be done programmatically. Clients then create a proxy class to talk to your services using a tool called scvutil. Indigo in one paragraph, obviously I didn't do it justice, however that's the basic gist of it.
It’s nice to see this all under one roof, I’m sure we are going to see some great things out of Indigo, I know it’s going to make communication between J2EE and other disparate systems much easier.