This section provides a brief description of the
architecture of WPF which spreads across both managed code and native code
components. The managed code only provides the publicly exposed API. The major
code portions of WPF are the PresentationFramework, PresentationCore, and milcore.
The composition engine of WPF is a native component and is known as MIL (Media
Integration Layer) and resides in the milcore.dll. Milcore is written in
unmanaged code and the interfacing is done with DirectX at this level for
providing support for 2D and 3D surfaces. WPF displays are done through the
DirectX engine. The composition engine in WPF is highly performance sensitive
and demands forsaking of several CLR advantages for enhancing performance.
PresentationCore (presentationcore.dll) implements the core services for WPF
and the PresentationFramework (presentationframework.dll) is responsible for
the presentation features of the end users. The major WPF subsystems are as
follows; Object, Threading.DispatcherObject, Windows.DependancyObject, Windows.Media.Visual,
Windows.UIElement, Windows.FrameworkElement, Windows.Controls.Control. Details
of the WPF architecture are beyond the scope of this article.