Windows Presentation Foundation (or WPF) is a graphical subsystem for rendering user interfaces in Windows-based applications by Microsoft. WPF, previously known as “Avalon”. WPF employs XAML, an XML-based language, to define and link various interface elements. WPF applications can also be deployed as standalone desktop programs, or hosted as an embedded object in a website.
WPF aims to unify a number of common user interface elements, such as 2D/3D rendering, fixed and adaptive documents, typography, vector graphics, runtime animation, and pre-rendered media. These elements can then be linked and manipulated based on various events, user interactions, and data bindings. WPF uses DirectX. WPF attempts to provide a consistent programming model for building applications and separates the user interface from business logic. It resembles similar XML-oriented object models, such as those implemented in XUL and SVG.
By using Direct 3D, Graphics that includes desktop items like windows are rendered. Thereby allowing the display of custom themes and complex graphics, at the cost of a wider range of support of GDI and uniform control theming. It allows Windows to offload some graphics tasks to the GPU. This decreases the workload on the CPU. GPUs are optimized for parallel pixel computations. This tends to speed up screen refreshes at the cost of decreased compatibility in markets where GPUs are not necessarily much powerful, such as the netbook market. The Windows Presentation Foundation (WPF) is Microsoft’s UI framework to create applications with a great user experience. WPF is a fragment of the .NET framework 3.0 and higher. WPF emphasis on vector graphics that allows most controls and elements to be scaled without loss in quality or pixels, thus increasing its accessibility. With the exception of Silverlight, Direct3D integration allows for streamlined 3D rendering. In addition, interactive 2D content can be covered on 3D surfaces natively.
WPF contains built-in sets of data services that are responsible for enabling application developers. This is done to bind and manipulate data within the applications.
It supports four types of data binding, these are:
LINQ queries for data binding (including LINQ to XML) can also behave as data sources. Data binding has no bearing on its presentation. To control the presentation of data, WPF provides data templates.
The WPF provides a coherent system for building user interfaces with common media elements such as vector and raster images, audio, and video. WPF also provides a 2D/3D rendering system and an animation system. WPF provides shape primitives for 2D graphics along with built-in set of brushes, pens, geometries, and transforms. The WPF 3D capabilities are a sub part of the full-feature set provided by Direct3D. However, WPF provides tighter integration with other features such as user interfaces, documents, and media. This makes it possible to have 3D user interfaces, 3D documents, or 3D media. It provides support for most common image formats viz. BMP, JPEG, PNG, TIFF, Windows Media Photo, GIF, and ICON. WPF supports the video formats by default: WMV, MPEG and some AVI files, but since it has Windows Media Player that runs beneath it, WPF can use all the codecs installed for it.
In WPF you can define the look of an element directly, via its properties, or indirectly with a Template or Style. At its simplest a style is a combination of property settings that can be applied to a UI element with a single property attribute. Templates are a mechanism for defining alternate UI for portions of your WPF application. There are several template types available in WPF (ControlTemplate, DataTemplate, HierarchicalDataTemplate and ItemsPanelTemplate).
Underlying all UI controls in WPF is a new composition model. Every control is composed of one or more ‘visuals’. These visual sub-elements turn into a hierarchical Visual Tree by WPF and eventually rendered by the GPU. Because WPF controls are not wrappers for standard Windows controls their UI can be radically changed without affecting the normal behavior of the control. Every control in WPF has a default ‘template’ that defines its visual tree. The default template is created by the control author and is replaceable by other developers and designers. The substitute UI is placed within a ControlTemplate.
WPF has a flexible data binding system. UI elements can be populated and synchronized with data from an underlying data model. Rather than showing the simple text for the bound data WPF can apply a Data Template (replaceable UI for .NET types) before rendering to the Visual Tree.
In contrast to the frame-based approach, WPF supports time-based animations. This separates the speed of the animation from the way system is performing. WPF supports low level animation through timers. And higher level abstractions of animations through the Animation classes. Any WPF element property can be animated as long as it is registered as a Dependency Property. Animation classes are based on the .NET type of property to be animated. For instance, changing the color of an element is performed by the ColorAnimation class and animating the Width of an element (which is typed as a Double) is performed by the DoubleAnimation class.
WPF can natively access Windows Imaging Component (WIC) code. APIs allows developers to write image codecs for their particular image file formats.
WPF 3.0 provides for Bitmap effects (BitmapEffect class), which are raster effects applied to a Visual. These raster effects are written in unmanaged code and force rendering of the Visual to be performed on the CPU and not hardware accelerated by the GPU. BitmapEffects were deprecated in .NET 3.5 SP 1.
I am really happy with the solution provided by Dotsquares. My solution was delivered on time and I was kept updated on each and every stage of my product development. Before coming to Dotsquares I was not sure about what technology I should use for my e-commerce application. I was explained in detail about pros and cons of the technology and they convinced me to use ASP.NET. Five stars to them from my side. Keep up the good work.
Venu. M. Nandamuri - Global Leadership Team
I’m very happy to write this testimonial for the services I have purchased through Dotsquares. I have used this service three times now and I have found them remarkably quick and efficient. They are very clear about the service they can provide. Their charges are very fair and competitive.
Valerie Richards - VAR Associates
I just wanted to send you a quick note to say thanks to you and your team for all of the fine work they have been providing for us. Project Manager has been a shining star in understanding our programs and vision and always has excellent input, suggestions and guidance in to what we are aiming to accomplish. He truly ‘gets’ what we’re doing. Additionally, Developers have been working diligently to meet deadlines under Project Manager’s guidance. The entire team has gone above and beyond to make last minute changes for us, even when it means sticking around a little later in the day when necessary to meet our requests and deadlines. I just though you should know. Thanks again and have a nice weekend.
Tom Atto - Director
Hole in One Prize Packages - J. Ryder Group
Dotsquares have an excellent approach to web development, they pay close attention to the brief, they add their own ideas and then involve the client at every stage of the creative process. It Works!!
Tim Hayes - CEO
The Peoples Web
Dotsquares has enabled us to achieve our goal of providing a fully interactive wedding gift list site – the first of its kind. Due to the nature of providing a new service, it is always reassuring to have dependable, competent coders behind you, which was definitely the case with Dotsquares.
Also, being prone to early mornings, I’ve found it incredibly useful to have a framework to post comments / documentation and discuss any issues with the developers before the rest of the UK wakes up.
Tim Buick - Director
I am very pleased with the service I have received from “Dotsquares” in building my website. I was initially a bit sceptical and concerned, as I have a fairly specialist “niche” market, and had very clear ideas about how I wanted the website to look and I was not convinced that Dotsquares understood my needs sufficiently . However he was very “persuasive” and reassured me, and has proved that my fears were unfounded!
I was also very pleased with the speed with which he worked on the website and how promptly he responded to my queries – always with great courtesy. I have a very limited knowledge of computer technology, but he showed a lot of patience and understanding, and explained procedures to me in simple, non-technical language.
I think he and the team have produced a really high quality website at a very affordable cost. I have already had several very complimentary remarks made about it.
I won’t hesitate to use “Dotsquares” services again in the future, and would recommend them to others.
Sue Williams - The Pink House, Brighton