- Last Weds, 2/23/2011, I committed to 6 months of meeting once a month to discuss WPF4. Huge thanks to Ike Ellis and TIG !
This morning I woke up thinking that because my TIG commitment was only for reading 100 pages a month of Adam Nathans WPF4 Unleashed, it would be interesting to read several WPF books at once. Why? I believe the process of comparing experts will give me a quantum grasp of WPF I could not get by reading the books separately. The books I will be reading are:

Source Code
WPF4 Unleashed Code
Pro WPF in C# Code
Pro Silverlight 4 in C# Code
First Impressions and Thoughts
The Unleashed series generally are for beginning and intermediary knowledge.
The Pro series are generally deep reference and are for intermediary to advanced knowledge.
Adam Nathans WPF4 Unleashed claims to be the #1 WPF book.
Matthew MacDonalds Pro .Net 2.0 Windows Forms has been a solid reference of mine for many years. He is well known for his Pro series and I have many of his books.
I wouldn’t have noticed this if I was reading the books separately but Apress uses thicker pages than Sams. Pro Silverlight 4 is about the same number of pages (874) as WPF4(824) but it is much fatter and it’s not due to the 50 page difference. Pro WPF in C# 2010 is a monster with 1180 pages. Carrying all 3 books in a backpack adds just over 10 pounds. I really did weigh them on a bathroom scale by subtracting my weight and, yes, I did brush my teeth while waiting for the digital scale to reset.
WPF4 and Pro Silverlight both are colorized. Pro WPF is not. I must say I do like the color.
Apress has a special through March 11 where you can buy the eBook for $10.
Sams offers a free 30 pass to Safari Books Online
Chapter 1 and The Intros
Mathew MacDonald immediately devotes 3 pages to WPF graphics in Pro WPF.
I’ve been working in the corporate world where cheap underpowered video cards are the norm. While I was reading the new amazing world that WPF opens up , I couldn’t help but ponder the sad reality that developing and then delivering WPF sizzle is going to suffer somewhat for the near future. Not from what WPF can do, but that the WPF Wow factor will be stuck in Rendering Tier 0 until the corporate world catches up to Windows 7 , the corporate bean counters get sold on spending $50 more per desktop for a passable DirectX card, and that network support decision makers get on board with updating video drivers on locked down systems. Change can be hard and effecting change in the Fortune 500 world can move at glacial speed.
See Rendering Tiers
Dxdiag.exe is the DirectX Diagnostic Tool. 

WPF provides an interoperabilty layer between WPF and Windows Forms that allows each to run the other.
WPF only runs on Windows.
MacDonald specifically states on page 7 of Pro WPF that the ultimate goal of Silverlight is to be a competitor to Flash.
WPF scales on the system DPI and not the physical display device.
WPF uses device-independent images for everything it displays.
Architecture
- PresentationFramework.dll – most classes you use come from PresentationFramework.dll

- PresentationCore.dll – base types


- milcore.dll -core of WPF rendering system (managed graphics)
- windowscodecs.dll – low-level API for imaging
- Direct3D – low-level API for all graphics
- User32 – controls what program gets what real estate
Class Hierarchy

- System.Threading.DispatcherObject – Abstract class. WPF uses STA so, like winforms, the entire UI is on a single thread.
- System.Windows.DepenencyObject – Change notification, inherited default values, property storage.
- System.Windows.Media.Visual - Abstract class for drawing instructions and drawing functionality.
- System.Widows.UIElement – LIFE- layout,input,focus and events.
- System.Windows.FrameworkElement – Implements from UIElement. Adds data binding, animation and styles.
- System.Windows.Shapes.Shape – Abstract class. Basic shapes
- System.Windows.Controls.Control – Elements that can interact with the user.
- System.Windows.Controls.ContentControl – Base class for all controls that have a single piece of content.
- System.Windows.Controls.ItemsControl – Base class for all controls that show a collection of items.
- System.Windows.Controls.Panel – Base class for all layout containers.
WPF 3.5 SP1 added the WPF datagrid control.
WPF Toolkit
Visual Studio 2010 allows building (2) profiles. One is the full .NET 4.0 framework and the other is the .NET Client profile which is more lightweight and is about 30 megs.
The Client profile is the default.
5 Key Standoput Principles
- Hardware Acceleration – It’s all DirectX
- Resolution Independence – Scales up or down
- No fixed control appeareance – Same rendering engine for everything
- Declarative user interface – XAML
- Object-based drawing – No need to work with Paint and pixels
Pro Silverlight 4 quickly gets to Flash, discussing that Silverlight is a browser plug-in and making clear that Flash does not have a modern programming environment. Of note is the statement that it is estimated that circa 2010 Silverlight is installed on 53 per cent of internet connected computers. Silverlight runs on MACS with OS X 10.4.8 or newer, if they have the newer Intel hardware. For Linux, Moonlight 2 was released on Dec 17, 2009 and based on the Moonlight Roadmap, seems to be stalled on Silverlight 2.0.
I just watched the Dec 2, 2010 Silverlight Firestarter 2010. Wow! Absolutely amazing. I’ll be watching for how Silverlight 5 goes with beta the 2011 H1 release and for the release of Silverlight 5 at the end of 2011.
Cool Silverlight 3 App WorldwideTelescope.Org