Silverlight is probably the most important technology to be released since Firefox 1.0 and that since .NET 1.0. However, as with most early-edition pieces of software, there are some major things missing. Below is a list of things that I request that Microsoft add with a quick note on each. It ranges from a few UI things to the more hardcore mechanical things (...things that many developers will say are meaningless until they learn how to spell C-L-R).
- GIF Support - Obvious. It's very odd that some manager somewhere said "no one ever uses GIF anymore".
- Style Inheritance - Another obvious one. We who knew WPF long before Silverlight was around THRIVE on this.
- DockPanel - COME ON! You MUST be joking! I shouldn't have to use a third party CodePlex control for this.
- VisualBrush - The ability to paint controls on a background and in other places will go a long way in helping people creating more interactive help files and training software.
- RelativeSource - The ability to bind one element's property to another is EXTREMELY important (i.e. my height == my parent's height).
- MultiView - It takes almost no code to write this; just make it native so we don't have dozens of versions all over.
- WebHttpBinding for JSON - POX is less important, but would be nice; JSON is the de facto web standard.
- System.Security.Cryptography.RSA with providers - This would greatly increase the security of client-server communication.
- Workflow Foundation - Even a light version with only the basic activities (for, if, while, etc...) would be nice.
- SVG Viewer - This should shut up the anti-Microsoft cult.
- Better font rendering - It's HORRIBLE in 2.0.
- iPhone Support - I think this may take a miracle.
- MultiTouch - Need this for iPhone support.
- CSS3 DOM Selector (http://www.w3.org/TR/selectors-api/) - So we use it instead of jQuery's version for closer-to-native speed on EVERY browser without even needing JQuery.
- A XMLHttpRequest object - This would allow us to use Silverlight's CrossDomainPolicy.xml stuff for cross domain stuff instead of playing games with browser detection nonsense and adding hacks for browsers which don't support it.
- API for browser abstraction - Web developers HATE having to do lame detection to figure out if we are on IE so we can talk to it like a child. Give us the ability to create managed extensions to Silverlight so we can add in our pain-in-the-butt browser differences in Silverlight instead of relying on painfully slow JScript rendering and browser detection.
- Service for extensions - This goes with the last one. We should have the ability to 1) extend the hardcore functionality of Silverlight and 2) have a centralize service that Silverlight calls to download our functionality when our application requests it. This would be very just like what Firefox does when it needs a plugin. It would also do auto-updating like with Firefox extensions.
- JSON deserializer that actually works to deserialize data serialized by the JSON serializer - JSON is critically important to the web; it should be supported better.
- The ability to get 500 HTTP status codes from Firefox, Chrome, and IE - This would allow us to use fault contracts in WCF. This would have to be a pain to implement, though. So, I wouldn't expect it for a while.
- The ability for NPCTRL to communicate CLR configuration information to the CoreCLR to tweak GC things that are normally in configuration - If the hosting NPCTRL control would just allow us to give it configuration parameters to send to the CoreCLR, that would RULE (like we can already do in .NET with configuration).
- Hosting documentation that doesn't SUCK - Using Win32/ATL to host a Silverlight control is insane right now. The documentation is very incomplete and there are NO samples (and the IDL is wrong!)
- Background GC on Windows - I suspect that this would increase performance in many scenarios.
- The missing GC methods - The System.GC class is missing a PUBLICLY ACCESSIBLE GetCollectionCount. This will help us with profiling. It's marked as internal now and if you try to access it via reflection or other fancy tricks you get security errors.
- ICorProfilerCallback interface - This is my NUMBER ONE FEATURE REQUEST! This is REQUIRED to create a Silverlight profiler. Silverlight will NOT be a technology ready for enterprise usage without this. PERIOD.
- Documentation on Silverlight's ETW - it's there and it's working in SL2, but I see absolutely zero docs on how to access it.
- The native AGCORE and NPCTRL source code - This will aide in performance and feature creation
- COM interface for hosting the CoreCLR - not really a Silverlight feature, but this would be REALLY nice.