Windows Presentation Foundation

libreria di classi del Framework .NET proprietarie Microsoft

Windows Presentation Foundation (o WPF), nome in codice Avalon, è una libreria di classi del Framework .NET proprietarie Microsoft (introdotta con la versione 3.0) per lo sviluppo dell'interfaccia grafica delle applicazioni in ambienti Windows.

L'innovazione principale di WPF è la rimozione di ogni legame con il modello di sviluppo tradizionale di Windows, introdotto con la versione 1.0 del sistema operativo. Tutti i controlli sono stati riscritti (non si appoggiano più a quelli della libreria “user”) e lo stesso meccanismo basato su scambio di messaggi, cuore del modello di programmazione di Windows, è stato abbandonato.

WPF è basato su un sistema di grafica vettoriale che si appoggia alle DirectX per sfruttare l'accelerazione hardware delle moderne schede grafiche. WPF può essere impiegato per realizzare applicativi eseguibili anche all'interno del browser Microsoft Internet Explorer o di altri browser avanzati, purché sia presente il Framework. Il linguaggio usato per la creazione di una interfaccia utente in WPF è l'XAML (eXtensible Application Markup Language), basato su XML.

Architettura

L'architettura di Windows Presentation Foundation si basa sia su codice gestito che su codice nativo. Comunque, le API pubbliche esposte sono disponibili soltato come codice gestito. Mentre la maggior parte di WPF è in codice gestito, il motore di composizione che renderizza le applicazioni WPF è un componente nativo. Il suo nome è Media Integration Layer (MIL) e risiede in "milcore.dll". Esso si interfaccia direttamente con DirectX e provvede il supporto di base per le superfici 2D e 3D, la manipolazione controllata nel tempo dei contenuti di una superfice con una vista per esporre animazioni costruite ad alto livello, componendo gli elementi individuali di una applicazione WPF nella scena finale 3D che rappresenta la UI dell'applicazione e la renderizza sullo schermo. I media codec sono anche implemtntati come codice non gestito, e sono forniti da "windowscodecs.dll". Nella parte gestita PresentationCore ("presentationcore.dll") fornisce un wrapper per MIL e implementa il cuore dei servizi per WPF, includendo un gestore delle proprietà che è consapevole delle dipendenze che esistono tra chi produce e chi consuma determinate proprietà, un sistema di dispatching per mezzo di un oggetto Dispatcher per implementare un sistema ad eventi specializzato e servizi i quali possono implementare un sistema di impaginazione legato alla dimensione degli elementi della UI. PresentationFramework ("presentationframework.dll") implementa le novità incluse layouts, time-dependent, story-board based animations, and data binding.