Google Wave in Silverlight – Online collaboration made easy

Google Wave is pretty cool, and was a big hype in the beginning.
I still use for sharing some notes with others…

Building something similar like Google Wave in Silverlight should be fairly easy

Figure: RichTextBox control in action from MSDN


Google Wave = Big Silverlight Richtextbox that gets updates from others

How can we build it with Silverlight?
How do other applications work, like EtherPad?


There are actually already 2 implementations of this
No need for me to do it myself ;-)

1. beeweevee – online richtextbox similar to etherpad in Silverlight

2. Silverdraw - online drawing collaboration in Silverlight


How does beeweevee and Silverdraw work?

Both implementations use the HTTP Polling Duplex Protocol in the background to get and send updates (implementation of a publisher subscriber scenario)



You can see what they are doing with FireBug or Fiddler by inspecting the messages, that get sent over the wire.

Figure: beeweevee inspected by FireBug – “Net” tab shows the long polling HTTP connection



Silverdraw is nicely documented on codeproject and you can even download the source and have a look

Get the source code

See the details on codeproject



Other examples of online collaboration

  • EtherPad
    • Online web application
    • a lot of JavaScript
    • company acquired by Google
    • Had a limit of 16 users
  • (Italian company WOOHOO)
  • SquadEdit
  • SubEthaEdit
    • Desktop App for Mac
  • Gobby
    • Desktop App cross plattform
  • MoonEdit
    • Desktop App cross plattform

I did a quick investigation how some of them work, see below


Figure: Etherpad in action, in Firefox with Firebug, and shows polling every 400ms




How dows notapipe work? sends patch’s to the server


After I type “Peter”


I delete “mal”




How to apply patches from others?

All the theory here


Fiddler and FireBug rock!


Anonymous said...

Great Post! Also Beweevee allows to use the SDK from here.

Unknown said...

You missed GDocs. They improved the real-time collaboration heavily. GWave has a really cool UI and I love it, very responsive, but still...for doing productive work like writing documents contemporaneously I have to admit that I nearly like GDocs more :)

Post a Comment

Latest Posts

Popular Posts