Geeks With Blogs

News Locations of visitors to this page
Brian Genisio's House of Bilz
Shout it kick it on

I have been developing full time in Silverlight 2 for a few months now.  I must say, it is the most fun environment I have ever programmed in.  It has been an enabling technology in our product, and I am rather excited to see what comes next.  If the pattern continues as I expect it probably will, we will hear all about the features of Silverlight 3 in a few weeks at Mix 09.  I will not be attending this conference, but I fully expect to be watching the important sessions virtually.  I am hoping for a lot.  You see, as much as I like the SIlverlight framework, it is missing some significant features that I can really use.

So, I figured I would publish my Silverlight 3 wish list.  Some of these things are more important than others, but all of them are things that would make my "Rich Internet Application" more rich. I don't want this list to sound like I am just a big complainer.  I think I am exercising the framework pretty hard, and Microsoft can only make the framework better with this list. 

MediaElement frame rate control: The Silverlight media element is missing the ability to control the frame rate.  This keeps us from controlling the playback for slow-motion or fast-forward.  I have to imagine that the sports domain wants this as well.

MediaElement loop control: The current media element does not support looping of video content.  It can be programmed by hooking the "MediaEnded" event, putting the position at zero, and playing again, but this causes a noticeable pause.  This pause keeps looping play from being fluid.  It would be nice if the media element supported it directly.

Native video rendering: Silverlight 2 does not use any hardware capabilities for video playback -- it is all done in software.  Therefore, the playback takes a lot of processor power.  This is really noticeable when four videos are playing simultaneously.  Any more on modern hardware is often choppy.  I would like to be able to play as many as nine videos at once.

3D support: Similar to the previous wish, Silverlight 2 does not use the video hardware directly.  This means that there is no 3D support.  It would be nice to see some 3D capabilities in Silverlight 3 -- preferably handled by hardware.

Direct bitmap manipulation: Silverlight 2 does not support this, and there are certain types of effects and manipulations that are not possible in Silverlight.  I would love to see some bitmap manipulation capabilities

Support for other data transports: Currently, only HTTP requests are made available through the SIlverlight plug-in.  This limits the use of more sophisticated WCF bindings.  At a very minimum, it would be nice to be able to use TCP bindings via WCF.

Better mouse support: Currently, we need to hack in right-click, double-click and scroll-wheel capabilities.  It would be nice to have native support.

Support for drag-and-drop: This is another case where I have hacked something together, but it would be great if I were able to rely on the framework.

Native support for the MVVM pattern: As far as I have figured, the MVVM pattern is the most suitable pattern for most large-scale Silverlight development.  It allows us to test the majority of our code and keep it out of the view.  Unfortunately, I haven't found MVVM to be well supported in the framework.

  • Commands -- They gave us ICommand, but nothing else.  I have hacked something in, but native support would be nice.
  • See what Silverlight.FX and Cliburn have done.  Can we get something like this in the framework?
  • Some sort of "Inversion of Control" or similar decoupling support?  Might MEF or Prism show up in SIlverlight 3?
  • Stand-alone binding -- As far as I can tell, binding is only available in controls.  I can't write tests against controls.  I often want to bind data in my model to my view model.  I have written my own binder for this, but it would be nice to have some built-in support
  • Better property notification.  INotifyPropertyChanged creates a lot of boiler-plate code in the view model.  I have minimized this by using a "property bag", but some utilities that make view models easier to write would be nice.

Interprocess communication: I would like the ability to talk to other non-silverlight processes.  This seems like a tall order, but I have some business cases for this.

That is all I have for now.  I am sure there is more that I am not thinking of.  I come across different needs every day.  For most cases, I have been able to hack some sort of support in when I need it.  In some cases, like the video playback support, I can't hack my wan out of the limitations. 

This list looks like a lot now that I have written it down.  I am very curious to know if I will be getting any of these features.

Posted on Friday, March 6, 2009 9:31 PM .NET , Silverlight | Back to top

Comments on this post: My Silverlight 3 Wish List

# re: My Silverlight 3 Wish List
Requesting Gravatar...
I think you mean the MVVM model not MVVC. Lately they have been calling it by the shorter name "view model" pattern.
Left by Mike W. on Mar 06, 2009 10:40 PM

# re: My Silverlight 3 Wish List
Requesting Gravatar...

Yup, thanks for that. Silly mistake was corrected.
Left by Brian Genisio on Mar 06, 2009 10:51 PM

# re: My Silverlight 3 Wish List
Requesting Gravatar...
Amen to Support for other data transports and the Built in support (possible templates pre-built for us) for MVVM or Presentation Model Pattern.

They NEED to give us WS binding (hopefully HOPEFULLY WS*) and TCPIP would be exquisite.
Left by Corey Gaudin on Mar 09, 2009 1:02 PM

# re: My Silverlight 3 Wish List
Requesting Gravatar...
The Prism v2 framework provides support for MMVM and commanding. I think its pretty good. It would be nice for the Prism team to add a Silverlight Prism V2 application and give a skeleton of an MVVM layered architecture.
Left by Bart Czernicki on Mar 10, 2009 1:00 AM

# re: My Silverlight 3 Wish List
Requesting Gravatar...
Good list! I also am working on a large project utilizing MVVM. The big plus it's giving us is that this project is incorporating both WPF and Silverlight. But like you said, there are some hacks, and too much code behind required for the views, in order to implement MVVM effectively on the Silverlight side. We are using the Prism library to implement much of this, and it is working well, but hopefully SL3 will be more MVVM-friendly.

I can't stress enough the importance of improving text quality with small fonts. For SL3 to be a serious LOB contender, that is urgent IMO. There are many third-party libraries and open source solutions that provide workarounds for most of the limitations mentioned here, but there is no hack for the text quality that I've found.

WS binding--mandatory! Also data triggers, dynamic resources and a good menu control.

Eager to see what comes out of MIX09 next week!
Left by John Redfield on Mar 13, 2009 6:15 PM

# re: My Silverlight 3 Wish List
Requesting Gravatar...
Any comments on the mix09/Silverlight 3 beta?
Left by Ritch M on Mar 23, 2009 2:46 PM

Your comment:
 (will show your gravatar)

Copyright © Brian Genisio's House Of Bilz | Powered by: