Blogger :
Benjamin Ms blog
All posts :
All posts by Benjamin Ms blog
Category :
WSCF/WCF
Blogged date : 2006 Jan 13
As preparation for my Indigo presentation at the London
.NET User Group next Monday, I thought I'd write a couple of posts about Indigo,
starting with 'The Road To Indigo'.
Indigo is a new technology that represents on the unification of existing distributed
application technology. It takes Remoting, Enterprise Services, Web Services
and Microsoft Message Queue and combines them into a single area of platform-level
technology. In fact, Microsoft has literally taken all of the teams responsible
for these technologies and put them in the same building. Instead of thinking
of Indigo as a completely new technology, think of it as the next version of all the
existing approaches where all of the best features of each are combined into a single
managed-code programming model. Here's a diagram showing the progression of
these technologies:
Indigo takes the best features of each approach and makes them available in one location.
If you're developing ASMX and Web Services today you can't take advantage of
reliable messaging (as in MSMQ) or transactions and object pooling (as in Enterprise
Services) across web services calls. With Indigo it is possible. If you're
an Enterprise Services developer today it's difficult to take advantage of flexible
versioning provided by schema or being able to describe requirements using policy
files (as you can in web services with WSE). Indigo makes it possible to take
advantage of all of these features.
Indigo also lets you chose the way you want to build applications without tying you
in. Indigo supports and encourages building service-oriented applications using
messages based on SOAP. However, Indigo still supports you and provides features
even if you want to create distributed applications using a distributed component
approach using remote procedure calls. Choosing one approach over the other
doesn't mean giving up features such as message-level encryption or transactions.
As Ingo Rammer says,
Indigo recognises that you shouldn't be locked into 'a specific programming model,
a serialization model, a transport model, or even just a serialization format'.
Combining the features of these four different technology areas into a single programming
model is great news for developers. We get the best features from each previous
approach while only having to learn one programming model! There's no more complexity
about which technology or programming model to use for a particular distributed application
scenario. It's the same programming model whether it's a peer-to-peer application
on a hand-held device, right up to a secure, reliable and transacted message queue
behind a massive online retailers.
For those times when the platform needs to be extended, Indigo also provides an excellent
extensibility model. Even in this case there's only
one
extensibility model to learn.
Indigo brings us closer to Microsoft's long-term aim of helping developers spend
less time on the plumbing and more time on the application code.