Monday, 3 March 2014

What is WPF and its Architecture

What is WPF………………………………

Windows Presentation Foundation is nothing but a Graphical subsystem which provides visually stunning user interfaces in Windows based applications. WPF is based on XAML which is a XML based language. WPF application uses hardware acceleration of graphic cards so it will improve your application performance. WPF introduced new markup language called XAML which allows you to keep separate UI and code behind. So designer and developers both can work together. WPF has rich control set and all controls are highly customizable using control templates and different styles. WPF supports Vector based graphic system. So you can easily scale your UI elements.  You can create Standalone Application and Browser Hosted Applications (XBAP) using WPF.

  • WPF is essentially a new API for creating a Graphical User Interfaces for the Windows Platform.
  • WPF is more than just a next-generation presentation system for building Windows Client application along with visually stunning user interfaces.
  • WPF is builds on top of the DirectX (Direct3D), instead of relying on the older GDI/GDI+ subsystem.
  • The most important feature of the WPF is – extended DataBinding. With WPF, you can perform data manipulation using .Net Framework Code, XAML or a combination of both. You can bind to controls, public properties, XML or objects, making data binding quick, flexible and easier than ever.
  • WPF provides a consistent programming model for building applications and a clean separation between the user interfaces and the business logic. You may now separate the function of a control from its appearance.
  • With WPF, you can build up complex UI elements from simpler one. Now you can build a new control which may have controls inside a control.
  • With WPF, you can create a wide range of both stand-alone and browser-hosted application
  • WPF is a vector graphics based UI presentation layer and being vector based it allows the presentation layer to smoothly scale UI elements to any size without distortion.
  • WPF is "skin-able" and "theme-able". It means WPF allows changing the look and feel of any UI control.
  • The core of WPF is a resolution independent and the vector based rendering engine takes the advantages of modern graphics hardware.
  • The core of WPF is extended with a comprehensive set of application development features that includes Extensible Application Markup Language (XAML), controls, data binding, layout, 3D graphics, animations along with rich visual effects, templates, media, text etc.
 Major features of WPF shown in below figure.




What is WPF Architecture
The Major components of WPF Architecture are Presentation Framework, Presentation Core and Media Integration Layer. The architecture divides in three major groups Managed Layer, which have Managed, Unmanaged and Core API layers as shown in below fig.



Managed layer contains WindowsBase, Presentation Framework and Presentation Core assembly. Media Integration Layer contains Milcore(Media Integration Library Core)  and WindowsCodecs modules and both are unmanaged code. Media Integration Layer interacts with Direct3D and Direct3D interacts with Device Driver.


Managed Layer: It has two main components – Presentation Framework and Presentation Core. Managed layer contains WindowsBase, Presentation Framework and Presentation Core assembly
·         Presentation Framework provides the required functionalities that we need to build the WPF applications such as controls, data bindings, styling, shapes, media, documents, annotations, animation and more. PresentationFamework.dll is responsible for this purpose.
·         Presentation Core acts as a managed wrapper around MILCore and provides public interface for MIL. Presentation Core is the home for WPF Visual System and provides classes for creating application visual tree. The Visual System creates visual tree which contains applications Visual Elements and rendering instructions. PresentationCore.dll is responsible for this purpose.
Unmanaged Layer
Media Integration Library is core rendering system. MIL is unmanaged code.  MilCore is written in unmanaged code in order to enable tight integration with DirectX. DirectX engine is underlying technology used in WPF to display all graphics, allowing for efficient hardware and software rendering. MIL has Composition System that receives rendering instructions from Visual System and translates into data that can be understood by DirectX to render user interface.
Core API Layer
This layer has OS core components like Kernel, User32, GDI, Device Drivers, Graphic cards etc. These components are used by the application to access low level APIs. User32 manages memory and process separation.






0 comments:

Post a Comment