What should you do?

A Windows Communication Foundation (WCF) solution exposes the following contract over an HTTP connection.

[ServiceContract]
public interface IDataService
{
[OperationContract]
string GetData();
}

Existing clients are making blocking calls to GetData. Calls to GetData take five seconds to complete.
You need to allow new clients to issue non-blocking calls to get the data, without breaking any existing clients. What should you do?

A Windows Communication Foundation (WCF) solution exposes the following contract over an HTTP connection.

[ServiceContract]
public interface IDataService
{
[OperationContract]
string GetData();
}

Existing clients are making blocking calls to GetData. Calls to GetData take five seconds to complete.
You need to allow new clients to issue non-blocking calls to get the data, without breaking any existing clients. What should you do?

A.
Replace the service interface with the following interface and implement the new methods.
[ServiceContract]
public interface IDoSomething
{
[OperationContract]
string DoLongOperation();
[OperationContract(AsyncPattern = true)]
IAsyncResult BeginDoLongOperation();
[OperationContract(AsyncPattern = true)]
string EndDoLongOperation(IAsyncResult result);
}

B.
Replace the service interface with the following interface and implement the new methods.
[ServiceContract]
public interface IDoSomething
{
[OperationContract(AsyncPattern = true)]
IAsyncResult BeginDoLongOperation();
[OperationContract(AsyncPattern = true)]
string EndDoLongOperation(IAsyncResult result);
}

C.
Generate a proxy class with asynchronous methods and use it for the new clients.

D.
Add a new endpoint to the service that uses a full-duplex binding and use it for the new clients.



Leave a Reply 1

Your email address will not be published. Required fields are marked *