Usage Demos

This page gives an overview of the currently available usage demos, which can be downloaded in the download section.
The demos are split into 5 groups: basic (dealing with basic appspace features), advanced (dealing with advanced appspace features), transport (showing different transport service configurations), Compact Framework (showing demos for using the appspace with compact framework) and Silverlight (showing demos for appspace with Silverlight).


If you are new to the AppSpace, you should start with these demos in the given order.
  1. PortRemoting: The first demo shows how easy it is to make functionality remotable with the application space.
  2. SimpleWorker: Shows how to implement a simple worker component (also see here).
  3. RequestResponse: Shows how to implement the request/response pattern.
  4. RequestResponseWithNotifications: Shows a request/response scenario where the server additionally sends back progress notifications to the client.
  5. StatefulWorker: Shows how workers with a state can be implemented with the example of a "stack worker", and how the XcoConcurrent, XcoExclusive and XcoTeardown attributes can be very practical for that.
  6. DistributedWorkers: Shows how to access remote workers in a distributed scenario (also see here).
  7. TestDistributedSpacesLocally: Shows how workers in distributed spaces can easily be tested within a single process.
  8. ErrorHandlingWithCausalities: Shows how to handle errors with the use of causalities (also see here).
  9. ErrorHandlingWithSend: Shows how to handle communication errors with the Send() method (also see here).
  10. HideWorkers: Shows how to hide a worker so that other space instances cannot connect to it.


These demos show advanced features of the AppSpace - if you want to look into them all, the given order should be helpful for your understanding. Otherwise, just pick anything you are interested in.
  1. PublishSubscribe: Shows how you can use the publish/subscribe feature (also see here).
  2. ChainedWorkers: Shows how workers running on different servers can be chained for representing a single process to the client.
  3. MultipleTransports: Shows how an AppSpace instance can use multiple different transport services (see here for an overview of different transport services).
  4. IteratorMessageHandler: Shows how to use a CCR iterator message handler within a worker.
  5. WaitForResponseOrError: Shows how to implement a typical remote communication pattern, where the client waits for either a response from a service, or an error, usind a CCR iterator message handler.
  6. MessageContext: Shows how to get additional information about a message with the MessageContext class (e.g. address of the space that sent the message)
  7. BasicSecurityService: Shows how to use the BasicSecurityService for authentication and authorization (also see here).
  8. FilteredSubscriptions: Shows how to apply simple filters to subscriptions with the publish/subscribe feature, which are evaluated at the server side.
  9. WinformsInteraction: Shows how to easily set up a async message handling with Winforms interaction (also see here).
  10. CustomWorkerExtension: Shows how you can create your own worker extension with the example of a simple load balancer (also see here).
  11. SerializationWithJson: Shows how to configure serialization with the Json format using the XcoJsonSerlializer, which is fast and interoperable to Compact Framework and Silverlight.
  12. SequentialMsgProcessing: Shows how messages can be handled in sequential order, which can be important if the order in which messages have been posted to a port is relevant.
  13. Performance: A simple performance demo that shows you how fast the AppSpace sends of messages, and lets you test different configurations (e.g. TCP transport and WCF transport).
  14. Discovery: Shows how you can use the discovery service addon, which easily lets you discover workers in you network of spaces whithout explicitly knowing their address.
  15. AsyncWaitForMessageSent: Shows how you can asynchronously wait until a message has either been sent successfully or an exception has occurred, using an Ack Port.
  16. MultipleSerializers: Shows how you can use different Serializers for different transport services, which can be helpful when e.g. communicating with server applications as well as mobile devices.


These examples show how to use the AppSpace with different transport configurations. For more information about the available transport services see here.
  1. WcfSimple: Shows how to configure WCF with the default configuration (nettcp binding).
  2. Jabber: Shows how to use the jabber transport service, which easily lets you communicate over the internet.
  3. MSMQ: Shows how to use the MSMQ transport service, letting the spaces communicate over message queues.
  4. WcfNettcp: Shows how to configure the WCF transport service with nettcp binding (only needed if you want to configure additional parameters like maximum message size - otherwise the default configuration already provides netcp binding).
  5. WcfNetpipe: Shows how to configure the WCF transport service with netpipe binding.
  6. WcfSharedPort: Shows how to configure the WCF transport service to use shared ports.
  7. WcfWshttp: Shows how to configure the WCF transport service with wshttp binding and message security.
  8. WcfHostingWithIIS: Shows how to host an AppSpace instance within an IIS.
  9. WcfAzure: Shows how to configure the WCF transport service to communicate over azure. (An azure user is needed for this demo.)
  10. JabberWithLoadBalancing: Shows an advanced example with an extended jabber transport service that allows load balancing over jabber mechanisms.

Compact Framework

These examples show how to use the AppSpace with Compact Framework.
  1. ClientServerDemo: Demo application that shows how a mobile client can communicate with a server using the AppSpace.


These examples show how to use the AppSpace with Silverlight.
  1. ClientServerDemo: Demo application that shows how a Silverlight client can communicate with a server using the AppSpace.

Last edited Jun 1, 2012 at 8:14 AM by thomass, version 11


No comments yet.