Windows Presentation Foundation (formerly code named “Avalon”) is Microsoft’s unified presentation subsystem for Windows and is exposed through .NET Framework v3.0, Windows Vista’s managed-code programming model. Windows Presentation Foundation (WPF) consists of a display engine that takes full advantage of modern graphics hardware and an extensible set of managed classes that development teams can use to create rich, visually stunning applications. WPF also introduces Extensible Application Markup Language (XAML), which enables developers and designers to use an XML-based model to declaratively specify the desired user interface (UI) behavior. Windows Presentation Foundation provides a unified approach to user interface, 2D and 3D graphics, animation, documents and media. It allows designers to be an integral part of the application development process.
Windows Presentation Foundation:
- Allows you to:
- Deliver innovative user interfaces rapidly
- Increase designer-developer productivity using XAML’s declaritive programming model and WPF tools specifically designed for this designer-developer workflow
- Leverage your existing code bases and design/development skill sets in building rich applications or controls
- Provides a managed code application development framework. Applications using Extensible Application Markup Language (XAML) currently support C# and Microsoft Visual Basic .NET. If you write a Windows Presentation Foundation application entirely in procedural code, you can use any compatible language.
- Helps you build applications that consist of an Application object and a set of pages. The Application object enables you to handle top-level events, and share code and state between pages.
- Uses XAML, a declarative markup language, to implement the user interface (UI) of each page. The markup elements control page layout, display text and images, interact with users, and so on. As users progress through the application, they navigate from page to page, much like a Web application.
- Uses XAML to program the underlying Windows Presentation Foundation object model. Every tag maps to a class and every attribute to a property. When you compile your project, the XAML parser converts the markup into equivalent object model–based code. So, anything you do with XAML, you can also do by manipulating the object model with procedural code.
- Supports XAML pages that contain both procedural code and markup. For example, if you want to handle an event that is raised by one of the XAML elements on the page, you use XAML to attach a handler to the event. You then implement the event handler in procedural code. Windows Presentation Foundation applications usually separate design from coding by putting the procedural code in a separate code-behind file.
- Supports two types of applications:
- XAML Browser Application—Deployed from a server and hosted in the browser. This application type runs in the Internet zone, which limits its access to system resources.
- Windows Application—Hosted in a window and has full access to system resources.
You typically use the same code with either application type as long as it does not violate the Internet zone permission set.