23. October 2010 01:56
Well, I've spend quite a few hours with the Windows Phone SDK, Expressions Ultimate and Visual Studio 2010 over the last week. The bottom line is that in spite of some very nice elements, the available assemblies (libraries) for Windows Phone display a distinct rush to market.
My princpal complaint are the egregious limitations on XAML in the WP7 SDK. I wrote a fairly interesting media player application in WPF and came to respect and appreciate the data-centric WPF model. After a few false starts I had an app that responded automatically to changes in the core datasets of the program. The key to this was data triggering of XAML styles. But guess what-- DataTriggers are not available on WP7! Microsoft continues to ballyhoo "model-view-controller" (MVC) methodology and praise data models, but without DataTriggers you cannot write a truely MVC application for WP7.
For example, to load a ListBox in "real" WPF you can specify the styles of the items, their containerization and visibility entirely from the data, using Binding to apply the content and DataTriggers to control both styling and structure through templates. This is exactly what is needed in many cases. In fact, it was exactly what I wanted for the WP7 app I want to write. Instead, I'm left with the need to write oodles of plain old C# code to create listbox items, nest them and add them to the appropriate list. This is very 1990's-style graphics development.
I have other beefs. Why, pray tell, can you not persist IsolatedStorage elements across debugging sessions? In my app I want the user to configure a list of sites. I'll have to do that manually every time I restart the emulator! This is very serious and seriously stupid.
As mentioned in a previous blog, the WP7 SDK is crippled with regard to sockets. I had to write a proxy web site to perform standard operations (like ICMP ping) that the WP7 cannot do. As I wrote before, I'm very suspicious the motivations for this.
Given the crippled nature of this release, I'm seriously debating waiting until a future release to get into WP7 development. Microsoft has had years (and years) to get this right. It's looking as though it's heading the right direction, but it hasn't reached critical mass yet. IMHO.