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!

Latest Posts

Popular Posts