During his keynote speech at the Microsoft Professional Developer (PDC) conference,
Scott Guthrie announced the availability of Silverlight 4 Beta, going on to demo
many of the features and improvements this release brings to the table.
With Silverlight 3 only three months out of the oven the pace with which Microsoft
is iterating on this product is unusually fast for the Redmond behemoth, continuing
to demonstrate their commitment to the technology and to pushing Silverlight on
to ever more devices with ever more functionality.
Silverlight 4 brings a whole host of new tricks to the party, with some 70% of them
coming straight off the feature request lists from users and developers, one of
the best ways of ensuring that the product is meeting the needs of its core audience.
Prepare yourself, the main feature additions / improvements list looks something
like this:
- Improved Tooling – Visual Studio 2010 Visual Designer for Silverlight, Blend 3
- Printing API – Send visual tree to printer, basic print preview
- Right-click support – Required flaky hacks until now
- Webcam/microphone access – capture output from these devices, a world of possibilities
- Mouse wheel support – required custom code up until this release
- RichTextArea Control – the most requested control, useful for display and edit
- ICommand support – helps when building Silverlight apps in a more testable manner
using techniques like MVVM
- Clipboard API – previously required Flash and Javascript hack
- HTML Hosting with WebBrowser - display HTML content in your Silverlight application
- Elevated trust – get more access to the local machine in OOB apps
- Local file access – via elevated trust above
- o COM interop – via elevated trust above
- Notifications API – OOB apps can pop up alerts
- Network authentication – when using remote services
- Cross-domain Networking changes – no cross-domain policy file required on remote
servers in elevated OOB apps
- Keyboard access in full screen mode – in elevated OOB apps
- Text trimming – automatically add ellipsis when text reaches certain length
- ViewBox – simple but useful layout control
- Right-to-left, BiDi and complex script – oft requested for certain regions
- Offline DRM – for media owners who haven’t woken up yet
- H.264 protected content – still sleeping? Use this.
- Silverlight as a drop target – drag and drop to the Silverlight application, how
long until we see drag and drop uploading inside the browser?
- Data binding – some small additions that make databinding ever more powerful
- IDataErrorInfo and Async Validation
- DependencyObject Binding
- StringFormat, TargetNullValue, FallbackValue
- Managed Extensibility Framework (MEF) – powerful extensibility framework useful
as your applications become more complex
- DataGrid enhancements
- Fluid UI support in items controls
- Implicit theming – saves on typing, makes changes easier
- Google Chrome support – Ballmer may think it’s a “rounding error” but someone on
the Silverlight team doesn’t.
We won't bore you with all details of that lot here (although, to an extent, we
just did!) but having spent the last couple of years reading feature requests on
the Silverlight.net forums I can attest that with this release Microsoft are including
the vast majority of the most requested features. Microsoft are addressing the most
obvious remaining gaps in the product, eliminating many of the last places where
competing technologies such as Flash and Air still had the upper hand.
So what are we most excited to start experimenting with? Without doubt for me it’s
Webcam / Microphone Access.
At Remix Brighton in 2008 I asked Scott Guthrie when we could expect to see a Silverlight
powered Microsoft Office delivered online through the browser and when we could
get WebCam and Microphone support in the Silverlight plugin. He didn’t give much
away other than to leave the impression that both were already on a roadmap.
With Office 2010 web apps we see some use of Silverlight to power online Office
applications, although personally I feel they could have gone much further with
this, and may well do in the future.
With Silverlight 4 comes the WebCam and Microphone support many have been after
and I don’t think the impact of this should be underestimated. The ability to easily
capture audio, images and video on the client, do some processing on them client
side and then send them off to a range of services enables a whole range of use
cases.
Imagine logging in to a browser application using Facebook connect, clicking a record
button to record through your WebCam and Microphone and adding some optional text
comments via the keyboard. Review and edit the result there in the browser and when
you’re complete publish it to your Facebook account with one click. All this is
not only doable, but with this release is doable quickly and with the result being
cross platform and cross browser.
The multi-billion web conferencing industry is already in the midst of a shakeup
with cheaper, more innovative start-ups challenging the incumbents like Cisco owned
WebEx and with this addition to the Silverlight feature set I’d expect to see an
explosion in browser based, Silverlight powered video and audio conferencing and
collaboration applications covering a whole host of areas.
We’ve always seen video and audio as a natural addition to our Silverlight collaboration
application colaab and will be looking at how best to integrate the new features
as the Silverlight 4 timeline progresses.
In other areas we see Elevated Trust for Silverlight Out of Browser (OOB) applications
as being an interesting step. In non-technical speak this means you can install
a Silverlight application so that it no longer runs inside your web browser and
you can give that application permission to have more access to your local machine
than a browser based app would. Say I want to show a user a list of images they
have in their “My Pictures” folder within my Silverlight app – this would previously
be impossible due to the security restrictions. Now the user can install the application
as an OOB app, agree to elevated permissions and open up a new range of possibilities.
We’re much more focused on web based applications so I don’t imagine using this
feature too much (we aren’t writing Twitter clients) but it does throw up a question
as to the commitment to, and future direction of WPF (Windows Presentation Foundation
the current suggested technology for building desktop applications on the Windows
platform) within Microsoft.
With the release of Silverlight 4 with elevated trust a possibility the subset of
applications where WPF is the correct choice becomes ever smaller. Why build a WPF
application that’s tied to the desktop when you can write a Silverlight 4 application
that’s cross-browser, cross-platform and can be installed as an OOB application
and run with elevated trust, giving access to local resources?
One area of desktop application that’s bucked prevailing trends and seen some traction
in the last couple of years is notification applications, primarily Twitter clients
like Seesmic and TweetDeck. Indeed if you look at the most popular Adobe Air applications
then the majority of them fall into this category.
One of the key things a desktop based application can do in this scenario that browser
based apps cannot is serve up small notification windows, alerts or “toast” messages,
typically in the bottom right corner of the screen. Silverlight 4 comes with an
API for these, only accessible to OOB applications, which is a deceptively important
feature for this type of (increasingly popular) application.
In other areas we see this release as sorting out some basics. For example, up until
Silverlight 4 the platform had pretty shoddy printing support, involving printing
from the browser and crossing your fingers. For many people there’s little point
in having powerful charting controls at your fingertips when you can’t print the
output. Silverlight 4 introduces a Print API allowing a developer to either send
what’s on the screen to the printer or to assemble controls in memory and send that
to the printer, with basic print preview functionality too.
Another basic requirement in many applications is the display and editing of rich
text, something that is painful in previous Silverlight versions. The v4 release
brings with it the RichTextArea control to address this shortfall, and when you
want to copy and paste text from that control the new clipboard support means you
don’t have to do this via a Javascript / Flash hack anymore.
More basic complaints are addressed with native support for mouse scroll wheels
and Right Click support allowing custom context menus at last, something else that
required nasty hacks to achieve previously.
On the performance front, Microsoft are claiming around 200% gains over Silverlight
3 overall with 30% faster start up times, we’ve yet to put that to the test but
it sounds promising.
Overall we’re looking at another major step forward for the platform, with a whole
host of the most common complaints and requests being addressed by this release.
Microsoft is now claiming that 45% of internet connected devices have a version
of the plugin installed, saying the rate of adoption is accelerating. With Windows
7 set to engender a wave of PC purchases and upgrades worldwide this figure should
continue to rise…
Indeed the combination of a the bottoming out of the recession, a successful Windows
7 launch, and these most recent announcements from PDC seems to have the markets
at least considering that Microsoft is headed in the right direction over the last
six months:

The next phase is the most exciting one for us, which is to investigate and explore
what new scenarios are enabled by the advances in the underlying platforms and technologies,
watch this space for what we come up with.