Today, at the PDC in Los Angeles, Scott Guthrie revealed Silverlight 4 in his keynote. The painful silence enforced by the NDA is now over, and I can talk about all the cool new stuff on Silverlight 4!
To me, the most amazing thing is how much the Silverlight team has been listening to the community. Just take a look at the Top 10 most requested SL4 features at: http://silverlight.uservoice.com/pages/4325-feature-suggestions, and compare it with the whatsnew document - 8 out of the top 10 requests are in the Beta, except for the two where iPhone and other device support is discussed. This is an amazing proof that the Silverlight Team is really customer-driven, congrats!
So, here is the official “Summary of Features New in Silverlight 4”, with some of my additional explanations:
Runtime: Silverlight 4 is based on the CLR4 runtime. This means that we can use all the cool dynamic stuff from C# 4.0 – much easier to communicate with DOM objects, Javascript, etc.
- Out of Browser Apps
- Elevated Privilages Support – this is really huge, removes most of the security restrictions. A great new way to write more full-featured cross platform applications!
- Cross Domain Networking Access – no more proxies for you Twitter client…
- Full file path from Open/SaveFileDialog
- No User-Initiation Requirement for Full Screen, Open/SaveFileDialogs – however, you can only access files directly within the My Documents folder or the Mac equivalent
- COM Interop: obviously, this is Windows only. C# 4.0 dynamics helps here a lot…
- HTML Hosting Support – it would really be useful within the browser as well, but there were too many security considerations to make it happen in this release. Still, I can’t wait to see what people will cook up with this one
- Media
- WMS Multicast Support – Save your server’s bandwidth when streaming videos!
- MP4 Playback Protected by PlayReady DRM – Should help ease Hollywood’s mind a little bit…
- Offline DRM – Download songs and movies, and play them without a network connection on the plane
- Output Protection – again, for helping Hollywood accept online media…
- WebCam / Mic Support – This is raw access only to the webcam or microphone data – nothing fancy like streaming it to a server, etc. I am sure, the community will come up with that pretty soon…
- Printing – The number one requested feature, that was the biggest setback when discussing Silverlight based Line Of Business applications.
- Text
- RichTextBox
- Arabic and Hebrew Text Support – I had a few people specificly asking for this while helping out at the “Ask The Experts” booth during the TechEd in Berlin. I wish I could tell them what I knew… NDA sometimes sucks
- IME Improvements for TextBox
- UIElement.TextInput event – for when you want to validate or update on text changes in your textbox
- Controls, ControlModel, Layout
- Theming via Implicit Styles – No more need to specify styles for each and every button in your app
- ViewBox – This extremely useful layout control is now mover to the the core runtime from the Toolkit
- MouseWheel Support on ScrollViewer, TextBox, Combobox, Calendar, DatePicker – Yeah! I’ve missed it a lot
- RTL Layout via UIElement.FlowDirection property – this one will also make some countries’ developers happy
- VisualStateGroup.CurrentStateGroup property – no more need to follow / guess states yourself. Altough a well-behaving ViewModel should already know the Visual State of the View…
- CommandProperty on ButtonBase & hHyperlink – Commanding is slowly getting there
- SelectedValue and SelectedValuePath properties on Selector – very convenient thing for simple dropdowns, etc.
- Drop files onto Silverlight from Exporer or Finder (Mac) – no need to browse, just drop files onto Silverlight!
- Networking
- Memory Usage Fix During Progressive Downloads – it is always good to fix memory usage
- Automatically adding Referrer Header – behaving like a good citizen
- Authentication Support on ClientHttpWebRequest – this one was really missed
- Tools Support
- Dispatcher Support on the Tools Design Surface
- Databinding improvements
- DataBinding Support for DependencyObjects – Yeeeey! Now you can bind to behaviors, and so much more. This one opens up quite a few new possibilities
- IDataErrorInfo Support
- StringFormat, TargetNullValue & FallBackValue properties on Binding – This can save a lot of error handling code and replace basic converters
- ObservableCollection<T> constructor that takes INumerable or IList – Quickly fill up your ObservableCollection with data.
- IEditableCollectionView
- Grouping support on CollectionViewSource
- SDK
- Astoria 2.0 Support
- MEF – I am really interested in how this one works. As Yoda would say: “A lot of extensible Silverlight Applications in the future I see”.
This is a pretty impressive feature set, especially as it has only been 4 months since the release of Silverlight 3. What do you think?
Posted
Nov 18 2009, 10:24 PM
by
vbandi