What is the Architecture of WPF Application and it Works?
Meesha Goyal
WPF Architecture – To know more about the WPF, one must have a clear idea about the architecture of WPF. The architecture of WPF is actually multilayered architecture. It spans across three layers – Managed code, Unmanaged code and Core operating system, we can call these layers as set of assemblies that built up the entire framework.Managed Layer:- The public API exposed is only via this layer. Majority of WPF is in managed code. 1)PresentationFramework.dll:- It holds the top level WPF elements, including those that represents Windows, panels, controls, styles etc. It also implements the end-user presentation features including time-dependent, story-based animations and data binding. 2) PresentationCore.dll:- Presentation Core provides a managed wrapper for MIL and implements the core services for WPF such as UI Element and visual from which all shapes and controls derived inPresentationFramework.dll. 3) WindowsBase.dll:- Holds more basic elements which are capable to be reused outside the WPF environment like Dispatcher objects and Dependency objects.UnManaged Layer 1) milCore.dll:- While the majority of WPF is in managed layer, the composition engine which renders the WPF application is a native component. It is called as Media Integration Layer (MIL) and resides in milCore.dll. The purpose of the milCore is to interface directly with DirectX and provide basic support for 2D and 3D surface. It is the main rendering engine of WPF and is interface between DirectX and CLR.2) WindowsCodecs.dll:- WindowsCodecs is another low level API which is used for imaging support in WPF applications like image processing, image displaying and scaling etc. It comprises of a number of codecs which encode/decodes images into vector graphics that would be rendered into WPF screen. Core operating System Layer (Kernel): 1) DirectX: - DirectX is the low level API through which WPF renders all graphics.2) User32:- It the primary core API which every application uses. User32 actually manages memory and process separation.