Joe Long from Microsoft gave a nice talk on the technology roadmap for Indigo, with a nice dose of prescriptive guidance for those of us who need to do distributed application development today but want to be mindful of the future. The talk was framed around this question: how do we support incremental upgrades of clients and/or servers as we move to Indigo?
Joe suggested two approaches to this problem:
Microsoft is opting for the first approach - move the underlying protocols forward and don't look back. This does place some constraints on what you do today and what might or might not work in the future. Joe covered several of the common cases, which I'll briefly discuss here.
Interesting stuff here - the goal is to not force a recompile of clients or servers by utilizing a bridged service environment. There are a few requirements for this to work though:
I was a bit confused on this point, but it appears that Indigo will provide Indigo compatibility by automatically exposing MSMQ servers via web services.
No real concerns about interoperability here, since this is SOAP/XML.
Out of luck - don't expect much help here.
I won't go into extensive detail here - you can check out the presentation yourself if you would like more details. The gist of changes revolves around instantiation of servers and proxies - everything else can pretty much remain the same if you are writing ASMX web services or Enterprise Services components today. .NET remoting is mostly orphaned, though porting won't be too difficult. The use of "new" to create client proxies will not be supported.
I asked this question at the end of the talk. In the Longhorn world, as in today, there are two primary hosts for components - IIS / ASP.NET, and Enterprise Services. Joe's recommendation was to use ASMX web services by default and host in IIS. If you need Enterprise Services, go ahead and use it but opt for the library component model and still host in IIS if at all possible.
Page rendered at Sunday, July 20, 2008 10:40:27 AM (Pacific Daylight Time, UTC-07:00)
Disclaimer The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.