Last week, Erik gave a 2 day training in Quebec city on the topic of WPF. He was amazed to see just how much interest there currently is for this new technology, especially now that SilverLight 2 got released.
These are some of the questions that were asked, as well as pointers to the answers:
1 - What do you recommend, a XBAP application or a SiliverLight one ?
This is a hard one because it involves so many upfront decisions. If you do not control the computers that will run the application, a SiliverLight application is the easiest to deploy. At the same time, SilverLight applications have severe constraints (partial trust, doesn't benefit from the full .net framework, stripped down WPF, limited network access...) but benefits from advances like DeepZoom (checkout the DeepEarth project). XBAP applications are normal .net applications that are hosted in the browser (Internet Explorer) and are usually partial trust (as the assemblies are downloaded at run-time from a webserver).
2 - Should we write new controls ?
WPF comes with so many extension points (skins, themes, control templates, data templates...) that should all be evaluated before actually writing a new control. In a upcoming post, we will explain the "on the fly walkthough" we used to change how scroll bars were displayed for a "trendy application". Writing new controls is still a possibility, allthough we think you will find that there are better ways to extend WPF.
3 - Isn't SilverLight just for making cheesy animations on the web ?
SilverLight 1.0 was only able to work with WPF (through XAML) and was mostly used to display media. SilverLight 2.0 comes with an implementation of the .net framework which allows you to develop a lot of the same kinds of applications you do with the .net framework; think of it in the same way as you would the Compact Framework. One major difference with the Compact Framework (the one that runs on a Windows Mobile phone) is that there is no binary compatibility for assemblies and so code has to be physically recompiled. Microsoft believes so much in the SilverLight plateform for business applications that they are porting prism and unity to it (see here and here).