The Big List of What’s New or Improved in Silverlight 5
Several of you have asked for a more complete list of the features that are new or improved in Silverlight 5, especially those new to the RC. Here is my mostly complete list of major features. I haven't included the tons of fixes and improvements, but maintained a focus on major features. (I say "mostly complete" so I have an out when I later realize I forgot something.)
Binding and Related
- ICustomTypeProvider
- Custom Markup Extensions
- Ancestor RelativeSource Binding
- Implicit Data Templates
- Binding in Style Setters
- DataContextChanged Event (new since beta)
- PropertyChanged now an UpdateSourceTrigger option (new since beta)
Graphics
- XNA 3D API
- Improved Graphics Stack
- 3D Render targets (new since beta)
- XNA 3D built-in effects (new since beta)
- 3D surface composition settings (new since beta)
- 3D multi-sample anti-aliasing (new since beta)
Media
- Low-Latency Sound using XNA SoundEffect and SoundEffectInstance
- Hardware decoding of H.264 media
- Variable Speed Playback and Trick-play (new since beta)
- Remote Control and Media Command (Keys) Support (new since beta)
Text
- Text Tracking and Leading
- Linked and Multi-column Text
- OpenType Support (new since beta)
- Pixel Snapped Text and TextOptions (new since beta)
Operating System Integration
- P/Invoke (new since beta)
- Multiple Windows
- Unrestricted File System Access in Full Trust
- Full Trust in-browser
- Default Filename in SaveFileDialog and OpenFileDialog (new since beta)
- 64 bit browser support (new since beta)
- Power awareness for media apps (keep the PC alive while a movie is playing, for example) (new since beta)
Productivity and Performance
- Network Latency Improvements
- Databinding Debugging
- Parser Performance Improvements
- Multi-core JIT for improved start-up time
Controls
- Double and n-click support
- PivotViewer (new since beta)
- ComboBox type-ahead/incremental search
Other
- In-browser HTML
- PostScript Vector Printing (new since beta)
- Tasks from TPL (new since beta)
- C# Covariance and Contravariance
Why weren't these all in the initial list?
My initial list only had a few key features listed. Some, such as Tasks and Covariance/Contravariance made it into Silverlight without me realizing it. For the most part, I got the feature list by checking with the product team and by trolling our specs repository.
So how does stuff make it in without it being on a master Silverlight list? That's easy. Many teams at Microsoft contribute to Silverlight either directly, or through other things such as the core CLR, framework, and C# language. Since Silverlight shares much of that code, cool and exciting features make it in without showing up in a Silverlight feature list. A great example of this is Tasks from TPL. The right people did know those features made it in (people actually writing code, the testers etc.), I just hadn't noticed it. It's not a conspiracy to keep the TPL folks down, trust me :)
Learn More
Many of these features are documented on http://silverlight.net/learn via an increasing number of tutorials.
In addition to that, if you're looking for a one-stop shop for learning Silverlight 5, consider my book Silverlight 5 in Action, to be released in print near the end of this year. It's currently in MEAP, with purchasers able to download chapters as I make them available.