WPF (Windows Presentation Foundation)
WPF is a UI framework used for developing Windows or desktop client applications. It is the latest approach to the GUI framework being used with the .NET framework. It was introduced to develop Windows client apps that run on the Windows operating system, and the next generation of Windows forms. It has all the functionality that is being required to develop, run, execute, manage, and handle Windows client applications.
It generally provides holistic means for combining or integrating UI, 2D and 3D graphics, digital media, and documents. It is responsible for developing, displaying, and manipulating UI, documents, images, etc., in Windows 7 and later operating systems. It is the current platform for developing windows applications.
Powerful styling and skinning structure
Easy to create an own look and feel
It’s very flexible so you can re design your own controls without buying new controls
It's newer and thereby more in tune with current standards of technology
Does support Windows Forms
XAML makes it easy to create and edit your GUI, and allows the work to be split between a designer (XAML) and a programmer
Highly advanced data binding possible.
Uses hardware acceleration for drawing the GUI, for better performance
The ability to reuse existing code
Declarative vs. procedural code
Requires .NET Framework 3.0
Compared to Windows Forms, still in evolving phases.
Requires Dx9 compatible video card for advanced graphics
WinForms (Windows Forms)
WinForms is a GUI-based approach introduced to the .NET framework. Prior to WPF and Silverlight, it was the main API for .NET that is being used to build GUI. It does not require any type of support other than runtime and OS for developing a standalone application.
One can develop apps that are easy to deploy, update, manage, and work offline while connected to the Internet. The development of WinForms is very simple as it is only based on the drag and drop placement of UI controls on canvas. It is the old platform for developing desktop applications.
Extensive documentation can be found on the Internet
Plenty of examples and tested thoroughly for years
There are lot of 3rd party controls in the market to make the job easier
The designer in Visual Studio is still, as of writing, better for WinForms than for WPF, where you will have to do more of the work yourself with WPF
Designing your own look and feel in an application is a lot of work
Extra cost incurred to buy third party controls
Difference Between WinForms vs WPF
Windows form is an old concept for developing desktop applications
WPF is an advance or latest concept for developing the applications
Windows forms are simple to use as controls can be easily used.
WPF is complex to use as compared to Windows Forms.
Windows forms are less scalable if the UI element needs to be extended later on.
WPF is extensively scalable for the UI elements in application
Windows forms have less secure features
WPF has enhanced security features.
Windows forms are not be used where designing is required
WPF is mainly used for designing the UI part of the application
In windows forms, things are achieved at a slower rate.
In WPF, things are mainly achieved at a very fast rate comparatively.
It takes a smaller memory footprint.
It takes up more RAM than WinForms.
It is considered good if you want to develop an application without much added modern functionality, more online resources.
It is considered good when the application requires many media types, create a skinned UI, bind to XML, develop a desktop application having a web-like navigation style.
The Tech Platform