WTF is WPF

Tuesday, 11 February 2020

Talk Description

"Windows Presentation Foundation (WPF) is a graphical subsystem of the .NET Framework that debuted back in 2006 when it had the codename Project Avalon. Designed as a replacement for the crusty WinForms UIs in the .NET Framework, its XAML based layout system was revolutionary and gives Desktop developers a similar kind of markup-driven UI design experience that our brothers in the web development world were already enjoying.

I came across WPF in 2007 and like most developers, I dismissed it as an interesting novelty, but thanks to a very persistent team leader who thought it was the bees knees, we persevered with the technology and gradually saw how powerful this was for the humble desktop developer (and the not so humble!).

Since then I’ve worked with the various iterations of WPF and its browser-based sibling Silverlight in commercial environments such as Finance, Medical and Formula One and have gained a lot of experience with the pros and cons of using WPF for line of business applications.

Since I started working with Dan Clarke, he’s been nagging me to do one his .NET Oxford talks on the subject, as he seems to think that people would be interested. Anyone who knows Dan will know that he doesn’t take no for an answer - so in a moment of weakness, I agreed to do it, so if it’s not interesting, then blame him!

In this talk, I want to give you a very quick overview of the structure of a WPF application before quickly moving on to why the 'Model, View, View Model' (MVVM) design pattern is ideally suited to take advantage of the WPF binding engine.

Using the MVVM pattern, I’ll then show you how we can quickly build up a more complex system and maintain a high degree of testability and UI fidelity.

If we have time I hope we can move forward and look at you some of the more advanced features of WPF such as Styles, Data Templating, Behaviours, Custom Control Styling and Visual States.

Oh, if you’ve ever wondered what’s the point of Blend for Visual Studio (formerly Expression Blend) - then let me show you 6 things you can do in Blend (you won’t believe number 4).

If… anyone is still awake at the end of the talk, and I’ve got my head around it, then I’ll also talk a little about how the future of WPF and how it fits in with UWP, Xamarin, DotNetCore 3 and WinUI 3.

This talk will be particularly interesting to anyone who’s doing desktop development in Winforms and are looking to move to WPF, but I’ll try to make it interesting enough that there will be something useful for everyone in the Visual Studio and .NET world."

Speaker Bio

"Dave has been a Freelance C# and WPF developer since 2009, working with companies such as Bank of America, BNP Paribas, Red Bull Technology, Schlumberger and Sharp Life Science.

Before discovering the greatness of the .net Framework, Dave did a 10-year stint as a Delphi developer, for which he’s never truly recovered - occasionally slipping back into his old Borland vs Microsoft rants! Don’t mention the VCL!

Outside of work, he is a lazy bugger who doesn’t do anything else apart from watching TV, playing XBox games and quoting lines from classic comedies such as Monty Python, Spaceballs and The Fast show - Brilliant!

He lives with his carer/wife and four children (who all much more mature than him) and tonight is the first time in months he’s been allowed out alone, so please be kind!"


Photos

  • Photos (thanks to Richard Baldwin from Sharp Life Science for taking these!)

Video

Thanks to Pusher for recording this for us!


Links


Speaker's Links


Sponsors

  • Corriculo Recruitment - Kindly covering the venue, drinks, and helping us at each event
  • Everstack - Dan's company, helping organise and manage the user group
  • JetBrains - Prize draw sponsor (any JB product the winner likes)
  • Manning Books - Prize draw sponsor (ebook of winner's choice)
  • New Orbit - Prize draw sponsor (Raspberry Pi Starter Kit)
  • Pusher - Video recordings

Prize Draw Winners

  • Jetbrains: Umesh
  • Manning ebook: Magda M
  • Raspberry Pi Starter Kit (New Orbit): Matthew C