Skip to content

Instantly share code, notes, and snippets.

@NWoodsman
Last active August 30, 2024 04:50
Show Gist options
  • Save NWoodsman/8ffffa031472327a08be5b32caa71e4c to your computer and use it in GitHub Desktop.
Save NWoodsman/8ffffa031472327a08be5b32caa71e4c to your computer and use it in GitHub Desktop.
A guide to understanding wpf.

WPF Guide

A high level guide to understanding and exploring WPF.

The intent of this guide is to provide a high level understanding of Microsoft's WPF.

As a mature technology, there are a decade-and-a-half of resources, how-tos, guides, and projects build on the technology; yet there is one critical, barely encountered theme absent from most documentation: the architecture.

Loosely defined, the "architecture" is the 'why" in "who,what,when,where,why."

At the most basic level, why does WPF exist? Who was involved in the development, and why? What are the concepts that WPF attempted to address, and why were those concepts important?

The desire of the author is to put the reader into the position of the architect, to envision the system from the point of view of the architect, to deduce the structure of the system, and to document the history of the development, such that a beginner, after reading this guide, can understand everything necessary to be confident upon visiting https://www.github.com/dotnet/wpf. What is PresentationBuildTasks? What is a "presentation"? If WPF stands for "Windows Presentation Foundation", shouldn't we know what that means?

Editorialization

It is this author's style to make bold loosely-founded opinionated assertions based on minimal facts. While this sounds like a negative quality, it has a purpose. Much like designing a system, or performing the scientific method, a hypothesis must be stated, the hypothesis must be tested, failure cases must be revised, and eventually the passing evidence exposes the facts. In the domain of "people" instead of science, the hypothesis is "why did you do this?" or even better, "I think you did this because of _____".

Poorly-factual-yet-tantalizing assertions tend to inspire interaction; the facts are argued, and if the journalist has done his or her job correctly, the resulting documentation captures the inner-truth.

As this applies to this document, making assertions about the development of WPF will hopefully attract the original developers, current maintainers, and passionate hobbyists to contribute their story.

Why WPF; the history, the uniqueness

WPF is unique. The uniqueness is tied to the history of UI development at Microsoft. It's a fairly short history.

GDI

GDI+

Direct__ APIs

WinForms

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment