At NDC, Jon, K Scott and and Rob Conery talked to Laurent Bugnion about XAML development, sharing code between Windows 8 and Windows Phone, and modern design.
Download / Listen: Herding Code 173: Laurent Bugnion on sharing code with MVVM Light in Windows 8 and Windows Phone
Show Notes:
- XAML vs. HTML for Windows Store development
- (00:40) Rob asks Laurent how often customers ask for HTML/JS based Windows Store application rather than XAML based. Laurent lists a few of the cases where people ask for HTML based work, but says the cases are very rare. Generally they’re much more productive with XAML and C#.
- (02:49) Rob asks Laurent if he thinks this will change over time. Laurent says IDE support may affect things a little, but generally he thinks web developers don’t do desktop development because they don’t want to do desktop development – they went into web development because they wanted to develop for the web.
- (04:09) Jon asks if Laurent sees things changing over time in XAML based development. Laurent says he sees some big changes in performance – you can get good performance out of the native controls with full designer support now. In terms of Windows 8, he’s hoping for more controls to cover some Windows 8 UI elements so they don’t require custom controls. In terms of design, he sees some cases where people are breaking some of the general Windows Store design guidelines in cases where they aren’t as user friendly. Jon says he’s seen one example of this – adding a print app bar button to applications where printing is a regular activity, even though technically the print is supposed to be accessed via the share charm. Laurent says he also sees this in search-heavy apps.
- Cross-platform code sharing and Portable Class Libraries
- (07:46) Jon asks about Laurent’s talk on sharing code between platforms – does it work? Laurent says he’s focusing on portable class libraries – writing logic that works on Windows Phone and Windows Store, then building a UI on top of those libraries. That’s working well for him and he’s using it in production. It’s still XAML and C#, so you can also share code, too.
- (09:26) K Scott asks about MVVM Light – is that working with Portable Class Libraries? Laurent says someone at Microsoft use a PCL port of MVVM Light as a test case, and it’s working very well. They still maintain platform specific versions of MVVM Light for people who only work on a specific platform.
- (10:38) K Scott asks for a quick summary of what MVVM Light does.
- (12:45) K Scott asks about some of the challenges in converting MVVM Light to a PCL. Laurent talks about some UI and platform differences.
- Metro and modern design
- (14:21) Rob asks how you make different design decisions around “Metro” design or other alternatives. Laurent discusses the design process.
- (16:29) Rob asks about some of the design considerations, and how you’d decide on platforms. Laurent says a default XAML application uses themes which will fit in with the host platform and operating systems, but might look at bit boring, which is why you work with a designer.
- (18:25) Jon says the Windows Store design principles don’t prescribe a boring look, referencing the “alive with color” thing and Kelly Sommers’ post about how Metro Doesn’t Have To Be Boring. Laurent says he doesn’t like the “flat design” term, preferring modern – and modern came from Bauhaus in the 1920’s, Swiss design in the 1950’s, etc. He says it’s important to go the design principles, then use your skill as a designer to apply that. There are enough apps on the Windows Phone store that getting noticed takes a good design.
- Hobbies
- (22:09) Rob asks Laurent what he does for hobbies. Laurent lists some things that keep him busy, then talks about his fish pond. Rob tells probably the worst newt joke of all time.
Show Links:
- Laruent Bugnion (http://galasoft.ch, @lbugnion)
- NDC Session video: Sharing code with MVVM Light in Windows and and Windows Phone
- MVVM Light Toolkit
- Microsoft Design Principles
- Kelly Sommers: When Metro Design Falls Off The Tracks
- Herding Code 26: Laurent Bugnion on WPF and Silverlight