WPF Architecture

Every Technology has a architecture and so of WPF. Before learning any technology it is important to have some idea about its architecture, what are the main building blocks which constitute that technology. So through this article, I am trying to shed some light on its architecture, how this programming model is constructed with various subsystems.

WPF contains a set of Assemblies. Based on the Assemblies we can categorize the entire WPF Framework in three sections :

  • Managed Layer
  • Unmanaged Layes
  • Operating System Core Elements

Architecture



Managed Layer

This layer constitutes a number of assemblies. Following are the three major assemblies which does all the major code portion of WPF. This layer provides various UI Framework elements, panels, controls, Dependency, Dispatcher objects etc and it also communicate with the unmanaged layer to render the WPF content.

  1. PresentationFramework
  2. This dll help us to build the application by providing many high level elements like Panels, Framework Elements like Textbox, Buttons etc, Styles, Templates, Bindings etc.

  3. PresentationCore
  4. It contains more basic classes like UIElement, Visual. Visual is a class that provide rendering support in WPF.

  5. WindowsBase
  6. This dll contains the more basic classes like Dispatcher and Dependency.

Unmanaged Layer

  • Milcore
  • Milcore provides a tight integration of Managed Code with the DirectX. DirectX engine is responsible for all the rendering of WPF in a very efficient manner by using both hardware and software rendering.

Core Operating System Elements

These are the components specific to the Operating System that help the application to communicate with the low level APIs. Some of them are – Kernel, DirectX, User32, GDI, Drivers, Graphic Card, etc.

Important Classes that contribute to the object hierarchy of WPF Architecture are

  • Object
  • DispatcherObject
  • DependencyObject
  • Visual
  • UIElement
  • FrameworkElement
  • Control

Leave a Reply

Your email address will not be published. Required fields are marked *