Here's my points from the Indigo Roadshow at U. WA in Seattle last night:
It’s not longer called Indigo; it’s WCF, Windows Communication Framework
WFC is an amalgam of material that has previously appeared in .NET,
MSMQ, COM, WSE (Web Service Extensions) 2.0. The principle of WFC is
acknowledgement that programs are becoming interface and message based,
and that much of that messaging that used other protocols and be done
just using http. Microsoft appears to be trying to clean house and
consolidate some of the confusion about which of the many options to use
for application development by focusing on WCF as a layer and http as a
protocol for messaging and interface.
The advancement of WFC/Indigo is that programming techniques such as
callbacks are now supported. In the code demonstration, the
developer, using VS.NET05, was able to create a p2p (not just chat
clients attaching to a central server, but a p2p mesh where clients
could participate directly) chat application in under 5 minutes. There
was no discussion about discovery and use in an Internet setting.
The sample code looks a lot like the chat code that I worked
with/developed for Locator.NET – in fact, the foundation seems basically
the same, but Indigo adds some attribute based features that make
constructing the chat clients easier. At best, it’s an acknowledgement
of the importance of these type of functions in Web application.
WFC makes some real advancement in footprint. Whereas previous
installations of Platform SDK code to do this type of messaging might
have ranged between 150 and 200 MB, the WCF footprint is a teeny 15 MB!
Distribution: It was not decided how WCF will appear ultimately (built
into Vista, with .NET, and so on). It seems likely to be available in
the same way the .NET Framework is available: as a MS Update download.
At 15MB it’s not too much trouble to install.
As I mentioned, WCF finally rolls up some of the features that were only
available in COM(+) into .NET This recognizes that a lot of the
usefulness of these code models is really interface and messaging. COM
servers and in process dlls are useful because they can be shared among
applications. Well, with WCF, you can do that as well, but create
components in .NET instead of VC++!
The second demo showed how to create a simple console app in c# but add,
via attributes, an interface so it could be addressed by outside
programs. This is what used to be called a COM out of process server –
very useful when you want to load up code that, say, manages other
applications (such an updated for Smart Clients).
In the second demo, the application (finally) allowed the inclusion of
an http server that doesn’t require IIS (something I’ve been after them
to do for a long time!). This means, that an application can run in
memory, and accept messages and respond – basically through the use of
http classes, the application has it’s own little web server built in,
that can host its own web service methods. Imagine a grid running on
your workstation, and I, remotely, or from an application connected to a
database, could call methods that would update it as data changed – and
while your still working. No refreshing or reloading by the user!
The presenter did a show of hands for what languages people were using.
I’d say it was 95 percent c# developers! There were about five
VB.NET programmers and two VB6 programmers; although one of the
Evangelists was a VB.NET programmer (who converted to c#).
I got a free t-shirt and it’s very nice. Black with the Indigo logo (a
globe) in the ‘O’.