What is WPF ?
WPF – an abbreviation for Windows Presentation Foundation – is a set of .NET assemblies, intended to provide an API for creating rich and sophisticated user interfaces (UI).
One of its primary objectives was to bring together the best features of both Web development and the Windows development. It combines the good things from Web development, such as style sheets and a markup language (XAML), with the good things of Rich Internet Applications, such as scalable vector graphics (SVG), animation and media support. Moreover, these good things are associated with the good things from classical Windows development, such as data binding.
What is XAML ?
XAML (pronounced zamel) – an abbreviation for Extensible Application Markup Language – is an XML-based markup language, similar to HTML, used for constructing and initializing .NET objects. In practice, XAML is used with WPF to represent rich visual applications or other hierarchies of object, making easier the separation of front-end appearance and back-end logic (helpful for maintenance…).
WPF main features :
- declarative programming,
- a Web-like layout model,
- a rich drawing model (2D and 3D),
- audio, video and documents support,
- styles and templates,
- routed events,
- data binding,
How to start using WPF ?
The first thing to assimilate is theory. It is very important to understand the basis of the language before beginning your first application. In this purpose, I recommend you the following books :
- Windows Presentation Foundation Unleashed by Adam Nathan (SAMS),
- Programming WPF by Chris Sells and Ian Griffiths (O’Reilly),
- Pro WPF in C# 2008 by Matthew Mac Donald (Apress).
Another good source of information is blogs. The following blogs are, in my opinion, the most instructive :
- Josh Smith on WPF (http://joshsmithonwpf.wordpress.com/),
- Dr WPF (http://www.drwpf.com/blog/),
- Beatriz Costa (http://www.beacosta.com/blog/),
- Sacha Barber (http://sachabarber.net/),
- Karl Shifflet on WPF (http://karlshifflett.wordpress.com/),
- The Code Project site (http://www.codeproject.com).
Finally, all these readings will not prevent hours of reading of the MSDN (http://msdn.microsoft.com/en-us/default.aspx) to deepen your knowledge.
Good luck and see you soon.