The following post summarizes the main features of the DSA Application Block provided by the Smart Client Software Factory to work under temporary disconnected scenarios.
The DSA Application Block provides feature to simplify the management of requests on occasionally connected smart client applications.
There are two main features of the DSA Application Block that serve this purpose:
Request Manager
The request manager is a subsystem of classes which work together to manage the dispatching of Web Service Requests.
The request queue data persists in different ways(MemoryRequestQueue/DataBaseRequestQueue). When the Connection Monitor Application Block notifies the Request Manager class that the connection is online, it retrieves the Requests from the RequestQueues and send them using the RequestDispatcher.
Each request has the following information:
- OfflineBehavior
- Name of the endpoint where the service is, to retrieve from the Endpoint Catalog Application Block.
- RequestID
- WebService arguments (parameters [])
Request Dispatcher
The Request Dispatcher sends the requests when connectivity is online (Connection Monitor Application Block) and the Endpoint address is good (Endpoint Application Block). A ConnectionMonitorAdapter ("inspired" by the Connection Monitor Application Block) class allows the easy checking of the Connection attributes.
The following diagram (obtained from the SCSF documentation) shows the relationship between the main classes of the DSA.
For more information about the DSA you can check:
- How to: Create a Disconnected Service Agent
- How to: Consume a Disconnected Service Agent
- How to: Update a Disconnected Service Agent
- Design of the Disconnected Service Agent Application Block
- Working with the Disconnected Service Agent Application Block
- Enabling WCF Duplex Channel in DSA solution by Sebastian Iacomuzzi