Share via

What's New in July CTP of Microsoft Robotics Developer Studio 2008?

Here is a detailed list of what's new and changed in July CTP of Microsoft Robotics Developer Studio 2008.

Samples and Tutorials

Documentation for samples and tutorials is included in the Microsoft Robotics Developer Studio help which is available from the Start menu after installation.

  • DSS Node Discovery using UPnP: A new UPnP sample illustrates how to use UPnP for discovering DSS nodes across a UPnP network.
  • Transport Extensibility: PipeTransport and PipeTransportHost are two new tutorials on how to write your own transport and load it in your custom host. In addition you will also find the UdpTransport and UdpTransport as additional transport samples.
  • LINQ: Service Tutorial 12 shows how to subscribe to the Directory Service using a LINQ Filter and how to receive filtered notifications.
  • Silverlight: The XBox Controller Viewer sample shows support for use of interactive Silverlight-based UI
  • Embedded Simulation Environment: The sample EmbeddedSim sample shows how to embed the Visual Simulation Environment in a custom Windows Forms user interface.
  • Simulated Pursuit Camera: The PursuitCamera sample shows how to implement a camera entity that follows behind a target and avoids obstacles.
  • Simulated 4x4-drive: The SimulatedFourByFourDrive sample shows how to implement an entity that behaves like a 4x4 off-road car.
  • LEGO MINDSTORMS: The RCX samples have been removed from this release.

Decentralized Software Services (DSS)

New Features and Bug Fixes

  • Global Assembly Cache: All DSS core DLLs are now installed into the Global Assembly Cache (GAC). This means that they are a shared resource for all installations on a single machine.
  • DssProxy.exe: The DssProxy tool has been completely rewritten to significantly simplify the generation of service proxy assemblies. This also has resulted in much better performance which directly benefits development time. In addition, the tool chain for writing services for .NET Compact Framework has been simplified to no longer need a companion service project targeting the desktop version of .NET Framework. This makes development for .NET Compact Framework much easier.
  • Visual Studio Project Wizards: The Visual Studio project wizards for DSS services have been rewritten to simply creation of new service projects. Wizards are available for VB.Net and C# across Visual Studio 2005 and 2008. Visual C++ developers as well as developers targeting .NET Compact Framework will still have to use the DssNewService.exe command line tool.
  • Support for Simulation on 64-bit: Addition of dsshost32.exe which forces use of the Microsoft Windows-32-on-Windows-64 (WOW64) subsystem on 64-bit systems. This can be used to run services targeting the Visual Simulation Environment and other services that require running in 32-bit compatible mode on 64-bit systems. All shortcuts in the Start Menu that starts simulation services now use dsshost32.exe.
  • DssProjectMigration.exe: Supports migration of projects for use with the GAC’ed CCR and DSS runtime assemblies as well as migration of projects across multiple versions of Microsoft Robotics Developer Studio.
  • DssLogAnalyzer: A powerful new debugging and monitoring tool that can visualize and analyze message exchanges between services sent within a DSS node or across nodes. The tool can show not only the actual messages but also message correlations, time lines, and how multiple message interactions are causally linked over time. The version included in this CTP is a preview. The final version may differ in user interface and extensibility API.
  • HTML Form Post Mapping to DSSP: Support for HTML Form posting can now be significantly simplified by using the automatic mapping of HTML Form data to DSSP operations.
  • Support for HTML Form File Upload: The DsspHttpUtilitiesService.ReadAllFormData helper function supports parsing of MIME multipart format used for HTML Form File Upload. This allows for files to be uploaded through a simple HTML form.
  • Type Registration: Runtime auto loads types and registers proxy and transform DLLs when it first sees an unknown type or XML fragment. There is no longer any need for preregistering types using the DssEnvironment class.
  • Contract Cache: The contract cache has been simplified and the size reduced to just about 8k on disk.

Breaking Changes

  • As part of the rewrite of DssProxy.exe we simplified the model for how to use proxies by removing a few rarely used features:
    • All types that are data contracts must have DataContract attribute
    • Removed PublishGroup attribute. You can add const types to the proxy by marking them as DataMember within a class marked as DataContract
    • Removed DssPublishedCategories base class. Any data contract can now have const members.
    • All data members must be read/write properties or fields. Read-only properties are no longer supported.
    • Removed DssServiceDeclaration.NonProxyContract, a proxy and transform assembly is no created for all service or data contract assemblies, you can exclude data contracts with custom serialization from the proxy with [DataContract(ExcludeFromProxy=true)]
    • Removed ServiceSummaries() on generated contract class. Instead you can use ServiceSummaryList.LoadFromProxyAssembly.

Concurrency and Coordination Runtime (CCR)

New Features and Bug Fixes

  • Global Assembly Cache: All CCR core DLLs are now installed into the Global Assembly Cache (GAC). This means that they are a shared resource for all installations on a single machine.
  • Syntax Extension: Introduced new syntax using .NET Framework 3.5 extension methods on ports to concisely describe coordination primitives
  • Timer Logic: New timer logic completely implemented within the CCR dispatcher utilizing multiple cores to increase resolution. CCR periodic timers can now do 1ms accuracy vs. 15ms or higher in previous versions that relied on the CLR timers.

Visual Programming Language (VPL)

New Features and Bug Fixes

  • 64-bit: Running services from VPL now calls VplHost32.exe which is compiled for 32-bit systems and hence force use of the Microsoft Windows-32-on-Windows-64 (WOW64) subsystem on 64-bit systems. Services that use Visual Simulation Environment or other services that require running in 32-bit mode now run seamlessly from VPL on 64-bit systems.

Visual Simulation Environment (VSE)

New Features and Bug Fixes

  • Simulation is able to display multiple camera views simultaneously
  • The Visual Simulation Environment is now able to run without any visible UI (headless)
  • Simulation now has a built-in profiler that shows performance and statistics.


  • US English XML files generated from source code documentation comments have been moved to the separate folder <installdir>\bin\en. Visual Studio and other tools will still pick them up as usual.

Setup and Deployment

  • Setup now supports multi-user installation on Windows XP, Vista, and Windows Server 2003. This enables multiple developers to use and write services on the same machine without stepping on each other. As part of this change, the CCR and DSS runtime which is located in the Global Assembly Cache, is installed separately to enable sharing of these components across multiple installations.
  • Setup has been streamlined to reduce size significantly enabling faster downloads.