#Google Analytic Tracker


Aug 31, 2007

Calgary .NET Usergroup Sliverlight Presentation


Yesterday, my collogues and I went to the Sliverlight Presentation, just 15 minutes late due to traffic. All the pizza were gone with 15+ empty boxes laying on the tables and the floor. I wasn't too happy since there weren't any free food left!

So, what is Sliverlight?

You can either go to Sliverlight Website and find out yourself, or read my own explanation. Basically Sliverlight is a plug-in technology for Web browser which allows browser to execute a stripped-down version of .NET Framework and stream HD contents to the web browser.

Idea behinds SliverLight

From what I understand, Sliverlight's goal is to provide a rich media interactive ability for the web application. With VC1 high definition video format, HD content can be easily stream to the client on the web. Since it is a browser plug-in, it is not OS-dependent (sort of), MAC user will also able to use this technology as long as there is a runtime plug-in for the web browser.

What does Sliverlight Provide?

  • Support HD video format streaming
  • Provide vector graphic manipulation
  • Contains WPF Rendering function
  • Using XAML (similar to WPF) so that business logic can be separated
  • higher fidelity (the presenter likes this word a lot...) I am guessing it means the accuracy or detail of the media and its content SliverLight can provide
  • Seamless and easily plugin installation (don't need to click a lot to install it)
  • Small file size (Sliverlight 1.0 ~ 1.0MB, Sliverlight 1.1 ~ 3.0MB)
  • Isolated storage technology is included (System.IO.IsolatedStorage)
  • JavaScript can still be executed
  • HTMLDom manipulation is provided

And obviously, you can write integrate business logic and graphic manipulation using C# code :)

Comparable Product

As the presenter had said in the beginning, there are many other products out there to help developers deliver rich media contents to the end user though web. One competitive product is Adobe Flash.  From what the presenter said, Adobe Flash has added actionable programming logic so that developer can now do more with Flash application.  I agreed that Flash is designed from top-down approach because it came from the graphic design world, while SliverLight is designed from down to top because it comes from a programming development world.  Which tool is better? I can't say, it really depends on the type of person. But surely for a guy like me who knows more about an abstract class more then a masking layer, there is no debate on what tool I will use.

What the different between Sliverlight 1.0 and Sliverlight 1.1 (Alpha)?

Sliverlight 1.0 only supports video streaming and probably provide the media related manipulation ability, while Sliverlight 1.1 comes with a stripped-down (of sub set of ).NET Framework. So, if you want user to have more interaction than just watching video on the web, then you will need to develop your web app using 1.1.

How much stuff is missing in this .NET? The presenter said Sliverlight supports most of the essential functions. So I guess instead of having 20 some overload of ToString(), you only left a couple. Then again, as a developer, you can always work around it if you need more functions.

What does Visual Studio 8 combining with Sliverlight tool provided?

The best part in the presentation is obviously the coding part, RIGHT!. I mean who would pay attention to webpage that plays 12 videos with no lose of frame per second! If I remember right, even SliverLight is a plug-in for the browser, however, if your machine has DirectX, the video processing will speed up.

Anyway, since I am not sure what Visual Studio 8 has without the Sliverlight SDK, I will explain what I saw during the demo.

  • SliverLight Project Template
    • it is very simple to start up a SliverLight Project. Each time when you run the app (F5), a browser is loaded up and you can test your result
  • Allows User to add WebService debugging
    • you can added a WebService project and execute your Sliverlight application to perform debugging. However, there are some set up needed before you can debug the WebService, Since I don't have much experience in WebService, you will have to find more info about this.
  • Intellisense is supported in XAML
  • Remote Debugging on client machine,
    • you can see how your managed code is being executed on the client browser.
    • too bad you can't do on-the-fly code changes during debugging. I am guessing that because the assembly is sent to the client and can't be modified.

Remote debug on Mac?

The fun part of Visual Studio 2008 is that you can attach to processes on a Mac... well, mac developers will need to download some special installation file to do that, But none of the less, this is indeed a very useful feature. The only things I am worry is security issue and network issue.  I have been trying to do some remoting debugging within my workplace but haven't get it to work.

Current Browser Supports

Goto here for Windows

Goto here for Mac

Goto there for Linux

Some unknown factors

Although so far everything sound great, there is still many pieces of SliverLight the team need to figure out. For example, how does your client communicate between server client with no postback (in asp.net). Is it possible for the Server to push data to the client?  To prevent cross-site scripting (XSS) attacked, the presenter said that the team still researching on what is the best solution to do the communication. So, streaming is fine, but talking between server and client may not be simile. However, from this article Sliverlight can communicate with ASP.NET application service using WCF.

Final Thoughts

Sliverlight currently look very promising of enrich the web application user experience while giving the developer the flexibility to developer or integrate their web application with Sliverlight.  However, since everything is still in development, it is hard to say what this technology will become.