A Q&A with the XAML Performance Leadership Team
The second panel discussion is much smaller. With each row of 14 seats there were two or three open seats. This time most rows only had three people and many were completely empty.
The first three questions were largely off-topic so we’ll skip them. The fourth was a question about performance/productivity tradeoffs. It was explained that the core philosophy for XAML is to focus on performance first. The theory is that if the framework is slow there is no way for the developer to work around it.
A topic that came up was the compatibility between Silverlight for Windows Phone and Common XAML. There are a few APIs such as control over the lock screen image that don’t translate across, making porting more difficult than they would like.
A common complaint is that Microsoft doesn’t reveal their roadmaps in a timely fashion. It was revealed that the core problem is the roadmaps are usually not solidified until the first beta. Basically they can’t tell us what they are doing earlier because they don’t know for certain yet.
Data grids are not being provided out of the box because they don’t know what a data grid should look like on a phone or tablet. Anything they built needs to support touch as well as keyboard and mouse interactions for everything from a narrow phone to monitors that are over two feet wide. So right now the focus is on the core primitives needed for third-party control vendors to create their own offerings.
Microsoft is currently looking for ways to make data virtualization easier to work with, but there are no definite plans for what that will look like.
Starting in Windows Phone 8.1, all applications will be run in Fast App Resume mode.
Though off topic, WPF came up a couple more times. The main talking point from Microsoft is that long term they want one modern stack for all devices. In the mean time they are willing to continue investing in WPF if developers can tell them specifically what it needs. They then reiterated that they want to make desktop apps have all of the functionality of Modern Apps including Contracts and Live Tiles.
When asked about porting Universal Apps (a.k.a Modern Apps or Common XAML) to Windows 7 they said it simply isn’t possible. Any attempt to do so would involve back-porting so many subsystems that didn’t exist in Windows 7 that it would effectively become Windows 8. But they are looking at ways to offer APIs for features that simply don’t “light up” when invoked on older operating systems.
WinJS vs XAML: Same old story, use whatever you are more familiar with.
Visual State Manager is too complex. Developers want WPF style triggers, or if not that, at least some way to make the Visual State Manager simpler.
Data binding is one of the most expensive operations in the XAML rendering pipeline. When you factor in value converters, it is also time consuming from the developers perspective. So Microsoft is looking at ways to improve data binding, possibly by doing more work at design time.
XAML is based on the higher level DirectX APIs while WPF was tired to the core of DirectX 9. This means that it is far less likely that XAML is going to fall behind and become out of sync with DirectX than WPF.
Microsoft intends to continue copying features form WPF into XAML, but in a measured fashion. The features they choose to move are based largely on developer feedback, especially in terms of pain points.