Archived

This forum has been archived. Please start a new discussion on GitHub.

ICE for Silverlight and ICEStorm

Hello,

I have written an ICE server running on Linux (C++) and an ICE client running on Windows (C#, WinForms). The server and the client use the publish-subscribe mechanism (IceStorm).
Now I would like write an ICE Client based on Silverlight. Since the ICE Client has to create an implementation to get a notification from server to client I need to include a reference to IceStorm in my Silverlight project. ICEStorm can however not be included into the Silverlight since the DLL is not built against Silverlight.

I wonder if it is possible to create a Silverlight ICE client and use the ICEStorm publish-subscribe mechanism. If so which steps must I take to create such a client.

Comments

  • dwayne
    dwayne St. John's, Newfoundland
    In order to use the IceStorm API from your Silverlight client you will need to compile the Icestorm slice file (IceStorm.ice) yourself with the Slice-to-Silverlight slice compiler (slice2sl) and then include the generated file in your project. Note that when you run slice2sl on IceStorm.ice you will need to use the --ice option since it uses namespaces reserved for internal Ice usage.
  • Sorry for the very late response. Due to the holiday season I just started up again.

    I made a copy of the slice folder of Ice-3.3.0-VC9.0 and executed slice2sl on the IceStorm.ice using the options:
    - I: to set the include path to the other ICE files.
    - ice: to permit the ICE prefix.

    I added the resulting IceStorm.cs to my project. When building my project I get error "The type or namespace name 'SliceChecksumDictHelper' does not exist in the namespace 'Ice' (are you missing an assembly reference?)".

    So it seems that just slicing IceStorm.ice does not do the trick, or I am missing the point.

    What strikes is that the ICE for silverlight source code does not contain the same number of ice files as ICE 3.3.0. Why is that?

    Could you please provide me with some additional directions on how to use IceStorm in my silverlight UI.

    Best regards,

    Joost van Doorn
  • dwayne
    dwayne St. John's, Newfoundland
    You also need to compile SliceChecksumDict.ice as well as it is used by IceStorm.ice. IceStorm.ice also includes Identity.ice but I don't think it should be necessary to compile Identity.ice as the types it defines are not actually used in IceStorm.ice.
  • kwaclaw
    kwaclaw Oshawa, Canada
    dwayne wrote: »
    You also need to compile SliceChecksumDict.ice as well as it is used by IceStorm.ice. IceStorm.ice also includes Identity.ice but I don't think it should be necessary to compile Identity.ice as the types it defines are not actually used in IceStorm.ice.

    Yes, I can confirm.
    You need IceStorm.ice, SliceChecksumDict.ice and Identity.ice, but only the first two need to be compiled.

    Karl