|
|||||||||||
|
|
|||||||||||
|
|
|
Thoughts on Software DevelopmentMichael Stiefel's thoughts and opinions on software development. Send comments to Tuesday, March 08, 2005
Microsoft's Indigo platform will unify all the divergent transport technologies (ASMX, WSE, COM+, MSMQ, Remoting) that are in use today. For building a service on the .NET platform this is the technology you will use.
What technology should you use today? The ASMX platform's programming model is the same as Indigo's. Attributes, indicating what technologies (security, reliability, etc.) you want the infrastructure to use are applied to methods. Hence, a converter will be provided to convert ASMX code to Indigo code. Does this mean ASMX should be the technology of choice? I would argue that WSE is the better technology to use. WSE's programming model is not that of Indigo. Classes and inheritance are used to interact with the WSE infrastructure. WSE will interoperate with Indigo. Nonetheless, the conceptual model of WSE is identical to that of Indigo. ASMX is tied to the HTTP transport and its request / response protocol. It encourages programmers to think of a service call as a remote procedure call with programming types, not as an interoperable, versioned XML document message validated by XML Schema. Service developers need to think of request / response as one of several possible message exchange patterns (MEP). The most fundamental MEP, the one all MEPs are built from, as the WS-Addressing spec makes clear, is the one-way asynchronous message. Business services tend to be asynchronous; you apply for a loan and you do not hear back for days. Service messages can go through intermediaries before reaching the ultimate recipient. Each message segment may go over transports other than HTTP. WSE's transport classes allow you to build services that use different MEPs over various transports. The SOAP envelope classes make it easy to build the SOAP message body as XML, or serialized XML objects. You learn to think in terms of XML documents and messages, not execution environment dependent types. Using this conceptual model your services will last longer, and be easier to evolve in a business environment. That will be of more use to your business than using a technology that has a better upgrade path, but will have to be rewritten sooner because it is poorly designed and implemented. Archives02/29/2004 - 03/06/2004 03/14/2004 - 03/20/2004 06/13/2004 - 06/19/2004 06/27/2004 - 07/03/2004 08/08/2004 - 08/14/2004 10/31/2004 - 11/06/2004 12/12/2004 - 12/18/2004 12/19/2004 - 12/25/2004 03/06/2005 - 03/12/2005 03/27/2005 - 04/02/2005 07/31/2005 - 08/06/2005 10/23/2005 - 10/29/2005 11/13/2005 - 11/19/2005 02/05/2006 - 02/11/2006 03/12/2006 - 03/18/2006 | ![]() |
|
| All Content (c) 2000 - 2004 Reliable Software, Inc. All rights reserved. | |||