in Uncategorized

Rob Relyea demos WPF 3.5 “Extensions” @ Mix

Check out this Mix Session for all the skinny on the enhancements coming in the WPF 3.5 “Extensions” later this year. Unfortunately the Mix sessions site is designed quite poorly in terms of being able to provide direct links, but if you just go to there and look for session T11 – “What’s New in Windows Presentation Foundation 3.5”, that’s the one that shows off all the goodies.

Rob shows off new work on the virtualization front, Microsoft’s prototype DataGrid control, performance enhancements and so on. The topic I was waiting to hear about most however was the new Effects API which we finally get our first in depth look at with this session. If you jump to about the 45  minute mark you can get right into it.

First I must say the Effects demo was very impressive. He basically combined 6 different effects on a live 3D object with physics and video playing and it worked flawlessly. In this demo we finally got to see the code that drives that demo and I must say I am supremely disappointed with how quickly he blew through it and how little detail was given. I’m also very disappointed with the implementation. First off, the code was pure shader code in .fx files. A far cry from the beautiful LINQ implementation I had envisioned and no where even close to the Microsoft Research Accelerator project that at least seemed to do it through inheritance and reflection. Upset as I may be with the implementation, I am just glad we finally have some way of actually accessing the GPU for effects.

The next thing I was looking forward to is the WriteableBitmap API. It’s not something I personally need, but I know a lot of people do. WriteableBitmap basically gives you GDI+ like pixel based bitmap graphics. Those graphics however are still fully integrated nicely into the rest of the WPF graphics stack, so you can paint on a 3D surface for example. It does look however like the WriteableBitmap API requires some unsafe code. How much and whether it’s usable at all in a partial trust scenario as a result wasn’t clear.

Leave a comment


  1. man i gotta check out that session..i would have liked to see a linq implementation to :/ however, given the choice between low and high level, i really prefer lowlevel 🙂 other people can make libraries to wrap the fx stuff (i.e accelerator or plinq) and thats not possible without access to the low level api 🙂 so its not all bad 🙂

  2. If you listen to the questions at the end, a gentleman asks about vertex shaders. Rob replied that they will be providing Dependancy Properties into the shaders. If that’s the case a LINQ wrapper should be possible.Try not to be too disapointed just yet…I think I heard spring, they’ll be having betas :)!

  3. Hi – I wanted to respond to the post about the MIX permalink functionality since I work on that experience. This is a known bug we are working on. The root of the problem is that the linking relies on a “contains” clause instead of an “equals” clause – we are working to fix this but have had quite a busy week so please bear with us. 🙂 FWIW this problem didn’t surface in our testing since the previous years of MIX had unique session codes which did not surface this bug – but with the MIX08 session codes it cropped up since you can have (for example) a T01 and a CT01, the former of which will permalink to both sessions. As a workaround you can also click on the Download link now and discover hyperlinks for each of the recording deliverables (e.g. WMV, MPG, etc.). Any problems/feedback you can email me, briankel AT microsoft DOT com.

  4. So hard, so many ooitarepns, so stupid and very very slow. A year ago I spend my time learning Silverlight and I fail, my salvation was ASP.NET Forms, today, a year later, again, I try Silverlight and a grid, with LinqtoSQL and Ria Services spend 34 seconds to load 100 rows of text. In a same application with the results come in one second. I think the language was failed. But is true XAML is great, controls are beautiful, but for conclusion is useless.