NGWS SDK Documentation  

This is preliminary documentation and subject to change.
To comment on this topic, please send us email at ngwssdk@microsoft.com. Thanks!

Introduction to Asynchronous execution

Asynchronous programming is a feature supported by many areas such as Remoting, ASP+, and Win Forms. As it is a core concept, it is important for the NGWS frameworks and runtime to establish a common design pattern to avoid confusion among developers. This document proposes such a design pattern.

The basic ideas behind this proposal are as follows:

It is the client that decides if a particular call should be asynchronous.

It is not necessary for a server to do additional programming for supporting asynchronous behavior by its clients. Runtime infrastructure should be able to handle the difference between the client and server views. This avoids the IDispatch mishap where the server has to implement IDispatch and do lots of work to support dynamic invocation by clients.

The server can choose to explicitly support asynchronous behavior either because it can implement it more efficiently than a general architecture or it wants to support only asynchronous behavior by its clients. However, it is recommended that such servers follow the design pattern outlined in this document for exposing asynchronous operations.

Type safety.

The NGWS runtime will provide services needed for supporting asynchronous programming model. An example partial list of such services is: