Windows Presentation Foundation - Windows Presentation Foundation

Windows Presentation Foundation (WPF)
Autori originali Microsoft
Sviluppatore/i Fondazione .NET
Versione iniziale 21 novembre 2006 ; 14 anni fa ( 2006-11-21 )
Rilascio stabile
v5.0.6 / 21 aprile 2021 ; 3 mesi fa ( 2021-04-21 )
Repository Modificalo su Wikidata
Scritto in C# , C++ , C
Sistema operativo Microsoft Windows
piattaforma .NET Framework , .NET
Tipo Struttura software
Licenza Licenza MIT
Sito web docs .microsoft .com /en-us /dotnet /framework /wpf /index

Windows Presentation Foundation ( WPF ) è un sottosistema grafico gratuito e open source (simile a WinForms ) originariamente sviluppato da Microsoft per il rendering delle interfacce utente nelle applicazioni basate su Windows. WPF, precedentemente noto come "Avalon", è stato inizialmente rilasciato come parte di .NET Framework 3.0 nel 2006. WPF utilizza DirectX e tenta di fornire un modello di programmazione coerente per la creazione di applicazioni. Separa l'interfaccia utente dalla logica di business e assomiglia a modelli di oggetti orientati a XML simili , come quelli implementati in XUL e SVG .

Panoramica

diagramma dello stack di finestre punto netto tre punti zero
Questo sottosistema fa parte di .NET Framework 3.0 .

WPF utilizza XAML , un linguaggio basato su XML , per definire e collegare vari elementi dell'interfaccia. Le applicazioni WPF possono essere distribuite come programmi desktop autonomi o ospitate come oggetto incorporato in un sito Web. WPF mira a unificare una serie di elementi comuni dell'interfaccia utente , come il rendering 2D/3D, i documenti fissi e adattivi , la tipografia , la grafica vettoriale , l' animazione di runtime e i media pre-renderizzati. Questi elementi possono quindi essere collegati e manipolati in base a vari eventi, interazioni dell'utente e associazioni di dati .

Le librerie di runtime WPF sono incluse in tutte le versioni di Microsoft Windows da Windows Vista e Windows Server 2008 . Gli utenti di Windows XP SP2/SP3 e Windows Server 2003 possono installare facoltativamente le librerie necessarie.

Microsoft Silverlight ha fornito funzionalità che sono principalmente un sottoinsieme di WPF per fornire controlli Web incorporati paragonabili ad Adobe Flash . Il rendering 3D runtime è stato supportato in Silverlight da Silverlight 5.

All'evento Microsoft Connect del 4 dicembre 2018, Microsoft ha annunciato il rilascio di WPF come progetto open source su GitHub . È rilasciato sotto la licenza MIT . Windows Presentation Foundation è diventato disponibile per i progetti destinati al framework software .NET , tuttavia, il sistema non è multipiattaforma ed è ancora disponibile solo su Windows.

Caratteristiche

Direct3D

La grafica, inclusi gli elementi del desktop come Windows, viene renderizzata utilizzando Direct3D . Ciò consente la visualizzazione di grafici più complessi e temi personalizzati, a scapito della più ampia gamma di supporto e di temi di controllo uniformi di GDI . Consente a Windows di scaricare alcune attività grafiche sulla GPU . Ciò riduce il carico di lavoro sulla CPU del computer . Le GPU sono ottimizzate per i calcoli di pixel paralleli. Ciò tende ad accelerare gli aggiornamenti dello schermo a scapito della ridotta compatibilità nei mercati in cui le GPU non sono necessariamente così potenti, come il mercato dei netbook .

L'enfasi di WPF sulla grafica vettoriale consente di ridimensionare la maggior parte dei controlli e degli elementi senza perdita di qualità o pixelizzazione , aumentando così l'accessibilità. Ad eccezione di Silverlight, l'integrazione Direct3D consente un rendering 3D ottimizzato. Inoltre, i contenuti 2D interattivi possono essere sovrapposti a superfici 3D in modo nativo.

Associazione dati

  • WPF dispone di un set predefinito di servizi dati per consentire agli sviluppatori di applicazioni di associare e manipolare i dati all'interno delle applicazioni. Supporta quattro tipi di associazione dati:
    1. una volta: dove il client ignora gli aggiornamenti sul server.
    2. one way: dove il client ha accesso in sola lettura ai dati.
    3. due modi: dove il client può leggere e scrivere dati sul server
    4. un modo per l'origine: dove il client ha accesso in sola scrittura ai dati
  • Le query LINQ , incluso LINQ to XML , possono anche fungere da origini dati per il data binding.
  • Il legame dei dati non ha alcuna influenza sulla loro presentazione. WPF fornisce modelli di dati per controllare la presentazione dei dati.
  • Come parte di WPF viene fornito un set di controlli incorporati, contenente elementi quali pulsante, menu, griglie e casella di riepilogo.
  • Le proprietà di dipendenza possono essere aggiunte ai comportamenti o alle proprietà associate per aggiungere proprietà di associazione personalizzate.
  • Un concetto potente nel WPF è la separazione logica di un controllo dal suo aspetto.
    • Il modello di un controllo può essere sovrascritto per cambiarne completamente l'aspetto visivo.
    • Un controllo può contenere qualsiasi altro controllo o layout, consentendo un alto grado di controllo sulla composizione.
  • Dispone di grafica in modalità conservata . Non sempre è necessario ridipingere il display.

Servizi multimediali

  • Il WPF fornisce un sistema integrato per la creazione di interfacce utente con elementi multimediali comuni come immagini vettoriali e raster, audio e video. WPF fornisce anche un sistema di animazione e un sistema di rendering 2D/3D.
  • WPF fornisce primitive di forma per la grafica 2D insieme a un set predefinito di pennelli, penne, geometrie e trasformazioni.
  • Le funzionalità 3D in WPF sono un sottoinsieme del set completo di funzionalità fornito da Direct3D. Tuttavia, WPF fornisce un'integrazione più stretta con altre funzionalità come interfacce utente, documenti e contenuti multimediali. Ciò rende possibile disporre di interfacce utente 3D, documenti 3D o media 3D.
  • È disponibile il supporto per i formati di immagine più comuni: BMP, JPEG, PNG, TIFF, Windows Media Photo , GIF e ICON.
  • WPF supporta i formati video WMV , MPEG e alcuni file AVI per impostazione predefinita, ma poiché ha Windows Media Player in esecuzione sotto, WPF può utilizzare tutti i codec installati per esso.

Modelli

  • In WPF puoi definire l'aspetto di un elemento direttamente, tramite le sue proprietà, o indirettamente con un modello o uno stile. Nella sua forma più semplice, uno stile è una combinazione di impostazioni di proprietà che possono essere applicate a un elemento dell'interfaccia utente con un singolo attributo di proprietà. I modelli sono un meccanismo per definire un'interfaccia utente alternativa per parti dell'applicazione WPF. Sono disponibili diversi tipi di modello in WPF (ControlTemplate, DataTemplate, HierarchicalDataTemplate e ItemsPanelTemplate).

Modelli di controllo

  • Alla base di tutti i controlli dell'interfaccia utente in WPF c'è un nuovo modello di composizione. Ogni controllo è composto da uno o più "visual". Questi sottoelementi visivi vengono trasformati in un albero visivo gerarchico da WPF e infine resi dalla GPU. Poiché i controlli WPF non sono wrapper per i controlli Windows standard, la loro interfaccia utente può essere modificata radicalmente senza influire sul normale comportamento del controllo.
  • Ogni controllo in WPF ha un "modello" predefinito che definisce il relativo albero visivo. Il modello predefinito viene creato dall'autore del controllo ed è sostituibile da altri sviluppatori e designer. L'interfaccia utente sostitutiva viene inserita all'interno di un ControlTemplate.

Modelli di dati

  • WPF ha un sistema di associazione dati flessibile. Gli elementi dell'interfaccia utente possono essere popolati e sincronizzati con i dati di un modello di dati sottostante. Anziché mostrare un testo semplice per i dati associati, WPF può applicare un modello di dati (interfaccia utente sostituibile per i tipi .NET) prima del rendering nell'albero visivo.

Animazioni

  • WPF supporta animazioni basate sul tempo, in contrasto con l'approccio basato su frame. Questo disaccoppia la velocità dell'animazione dalle prestazioni del sistema.
  • WPF supporta animazioni di basso livello tramite timer e astrazioni di animazioni di livello superiore tramite le classi Animation.
    • Qualsiasi proprietà dell'elemento WPF può essere animata purché sia ​​registrata come proprietà di dipendenza.
    • Le classi di animazione si basano sul tipo di proprietà .NET da animare. Ad esempio, la modifica del colore di un elemento viene eseguita con la classe ColorAnimation e l'animazione della larghezza di un elemento (che viene digitato come double) viene eseguita con la classe DoubleAnimation.
  • Le animazioni possono essere raggruppate in Storyboard.
    • Gli storyboard sono il modo principale per avviare, interrompere, mettere in pausa e manipolare in altro modo le animazioni.
  • Le animazioni possono essere attivate da eventi esterni, inclusa l'azione dell'utente.
  • Il ridisegno della scena viene attivato in base al tempo.
  • I timer di presentazione sono inizializzati e gestiti da WPF.
  • Gli effetti di animazione possono essere definiti per oggetto, a cui è possibile accedere direttamente dal markup XAML .

Imaging

  • WPF può accedere in modo nativo al codice e alle API di Windows Imaging Component (WIC) consentendo agli sviluppatori di scrivere codec di immagine per i loro formati di file di immagine specifici.

Effetti

  • WPF 3.0 fornisce effetti Bitmap (classe BitmapEffect), che sono effetti raster applicati a un oggetto Visual. Questi effetti raster sono scritti in codice non gestito e forzano il rendering del Visual da eseguire sulla CPU e non sull'hardware accelerato dalla GPU. BitmapEffects è stato deprecato in .NET 3.5 SP 1.
  • .NET Framework 3.5 SP1 aggiunge la classe Effect, che è un effetto Pixel-Shader 2.0 che può essere applicato a un oggetto visivo, che consente a tutto il rendering di rimanere sulla GPU.
  • La classe Effect è estensibile, consentendo alle applicazioni di specificare i propri effetti shader.
  • La classe Effect, in .NET 3.5 SP1 e 4.0, viene fornita con due effetti incorporati, BlurEffect e DropShadowEffect. Non esistono sostituzioni dirette per OuterGlowBitmapEffect, EmbossBitmapEffect e BevelBitmapEffect, precedentemente forniti dalla classe BitmapEffect deprecata. Tuttavia, ci sono altri modi per ottenere gli stessi risultati con la classe Effect. Ad esempio, gli sviluppatori possono ottenere un effetto bagliore esterno utilizzando DropShadowEffect con ShadowDepth impostato su 0.
  • Sebbene la classe BitmapEffect sia stata contrassegnata come deprecata in .Net Framework 3.5 SP1, il suo utilizzo era ancora consentito e questi effetti venivano comunque visualizzati correttamente. In .Net Framework 4.0 la classe BitmapEffect è stata effettivamente deprecata: il codice che fa riferimento a BitmapEffect viene ancora compilato senza errori, ma nessun effetto viene effettivamente visualizzato.

Documenti

  • WPF supporta nativamente i documenti impaginati. Fornisce la DocumentViewerclasse, che serve per leggere documenti a layout fisso. La FlowDocumentReaderclasse offre diverse modalità di visualizzazione come per pagina o scorrevole e ridispone anche il testo se l'area di visualizzazione viene ridimensionata.
  • Supporta nativamente documenti XML Paper Specification .
  • Supporta la lettura e la scrittura di documenti impaginati utilizzando le convenzioni Open Packaging .

Testo

  • WPF include una serie di funzionalità di rendering del testo che non erano disponibili in GDI . Questa è la prima interfaccia di programmazione Microsoft ad esporre le funzionalità OpenType agli sviluppatori di software, supportando i caratteri OpenType, TrueType e OpenType CFF ( Compact Font Format ).
  • Il supporto per le funzionalità tipografiche OpenType include:
  • WPF gestisce i testi in Unicode e gestisce i testi indipendentemente dalle impostazioni globali, come le impostazioni internazionali del sistema. Inoltre, sono forniti meccanismi di fallback per consentire la gestione della direzione di scrittura (orizzontale contro verticale) indipendentemente dal nome del font; costruire caratteri internazionali da caratteri compositi, utilizzando un gruppo di caratteri in una sola lingua; incorporamento di caratteri compositi. Il collegamento dei font e le informazioni di fallback dei font vengono archiviate in un file XML portatile, utilizzando la tecnologia dei font compositi. Il file XML ha estensione .CompositeFont .
  • Il motore di testo WPF supporta anche il controllo ortografico integrato . Supporta anche funzionalità come l'interlinea automatica, testo internazionale migliorato, interruzione di riga guidata dalla lingua, sillabazione e giustificazione, effetti bitmap, trasformazioni ed effetti di testo come ombre, sfocatura, bagliore, rotazione ecc. È supportato anche il testo animato; questo si riferisce a glifi animati, nonché a modifiche in tempo reale di posizione, dimensione, colore e opacità del testo.
  • Il rendering del testo WPF sfrutta i progressi della tecnologia ClearType , come il posizionamento dei pixel secondari, le larghezze naturali di avanzamento, l'anti-aliasing nella direzione Y , il rendering del testo con accelerazione hardware e la memorizzazione nella cache del testo pre-renderizzato nella memoria video. ClearType non può essere disattivato nelle applicazioni WPF 3.x precedenti. A differenza di ClearType in GDI o GDI+, WPF ClearType non aggancia i glifi ai pixel orizzontalmente, causando una perdita di contrasto non gradita ad alcuni utenti. Il motore di rendering del testo è stato riscritto in WPF 4.0, correggendo questo problema.
  • La misura in cui i glifi vengono memorizzati nella cache dipende dalla scheda video. Le schede DirectX 10 sono in grado di memorizzare nella cache i glifi dei caratteri nella memoria video , quindi eseguire la composizione (assemblaggio dei glifi dei caratteri nell'ordine corretto, con la spaziatura corretta), alpha-blending (applicazione dell'anti-aliasing) e miscelazione RGB (ClearType's calcoli dei colori sub-pixel), interamente in hardware. Ciò significa che solo i glifi originali devono essere archiviati nella memoria video una volta per carattere (Microsoft stima che ciò richiederebbe 2 MB di memoria video per carattere) e altre operazioni come la visualizzazione del testo con anti-alias sopra altri elementi grafici —incluso il video—può essere eseguito anche senza alcuno sforzo di calcolo da parte della CPU. Le schede DirectX 9 sono solo in grado di memorizzare nella cache i glifi alfa-blended in memoria, richiedendo così alla CPU di gestire la composizione dei glifi e l'alpha-blending prima di passarli alla scheda video. La memorizzazione nella cache di questi glifi parzialmente renderizzati richiede molta più memoria (Microsoft stima 5 MB per processo). Le schede che non supportano DirectX 9 non hanno capacità di rendering del testo con accelerazione hardware.

Interoperabilità

  • Windows Forms è possibile anche tramite l'uso delle classi ElementHoste WindowsFormsHost.

Per abilitare l'uso di WinForms, lo sviluppatore lo esegue dal proprio codice WPF C#:

 System.Windows.Forms.Integration.WindowsFormsHost.EnableWindowsFormsInterop();

Ingresso alternativo

Accessibilità

  • WPF supporta Microsoft UI Automation per consentire agli sviluppatori di creare interfacce accessibili.
  • Questa API consente inoltre agli script di test automatizzati di interagire con l'interfaccia utente.

XAML

Dopo il successo di linguaggi di markup per lo sviluppo web, WPF introduce eXtensible Application Markup Language ( XAML ; / z Æ m əl / ), che si basa su XML . XAML è progettato come un metodo più efficiente per lo sviluppo di interfacce utente delle applicazioni. Il vantaggio specifico che XAML apporta a WPF è che XAML è un linguaggio completamente dichiarativo , che consente allo sviluppatore (o al progettista) di descrivere il comportamento e l'integrazione dei componenti senza l'uso della programmazione procedurale . Sebbene sia raro che un'intera applicazione venga compilata completamente in XAML, l'introduzione di XAML consente ai progettisti di applicazioni di contribuire in modo più efficace al ciclo di sviluppo dell'applicazione. L'uso di XAML per sviluppare interfacce utente consente anche la separazione di modello e vista, che è considerato un buon principio dell'architettura. In XAML, gli elementi e gli attributi vengono mappati a classi e proprietà nelle API sottostanti.

Come nello sviluppo Web, sia i layout che i temi specifici sono adatti al markup, ma XAML non è richiesto per nessuno dei due. Infatti, tutti gli elementi di WPF possono essere codificati in un linguaggio .NET ( C# , VB.NET ). Il codice XAML può essere infine compilato in un assembly gestito allo stesso modo di tutti i linguaggi .NET.

Architettura

L'architettura WPF. Gli elementi blu sono componenti di Windows; quelli marroni sono componenti WPF.

L'architettura di WPF comprende sia il codice gestito che i componenti del codice nativo . Tuttavia, l' API pubblica esposta è disponibile solo tramite codice gestito. Sebbene la maggior parte di WPF sia in codice gestito, il motore di composizione che esegue il rendering delle applicazioni WPF è un componente nativo. Si chiama Media Integration Layer (MIL) e risiede in milcore.dll. Si interfaccia direttamente con DirectX e fornisce supporto di base per superfici 2D e 3D, manipolazione controllata da timer dei contenuti di una superficie al fine di esporre costrutti di animazione a un livello superiore e compositing dei singoli elementi di un'applicazione WPF in un 3D finale " scene" che rappresenta l'interfaccia utente dell'applicazione e la visualizza sullo schermo. Il Desktop Window Manager utilizza anche il MIL per la composizione del desktop e della finestra. I codec multimediali sono implementati anche in codice non gestito e vengono forniti come windowscodecs.dll. Nel mondo gestito, PresentationCore ( presentationcore.dll) fornisce un wrapper gestito per MIL e implementa i servizi principali per WPF, incluso un sistema di proprietà consapevole delle dipendenze tra i setter e i consumatori della proprietà, un sistema di invio dei messaggi tramite un Dispatcheroggetto per implementare un sistema di eventi e servizi specializzati in grado di implementare un sistema di layout come la misurazione per gli elementi dell'interfaccia utente. PresentationFramework ( presentationframework.dll) implementa le funzionalità di presentazione dell'utente finale, inclusi layout, animazioni dipendenti dal tempo, basate su storyboard e associazione di dati.

WPF espone un sistema di proprietà per gli oggetti che ereditano da DependencyObject, che è consapevole delle dipendenze tra i consumatori della proprietà e può attivare azioni in base alle modifiche nelle proprietà. Le proprietà possono essere valori codificati o espressioni, che sono espressioni specifiche che restituiscono un risultato. Nella versione iniziale, invece, l'insieme di espressioni supportate è chiuso. Il valore delle proprietà può essere ereditato anche dagli oggetti padre. Le proprietà WPF supportano le notifiche di modifica , che richiamano comportamenti associati ogni volta che viene modificata una proprietà di un elemento. È possibile usare comportamenti personalizzati per propagare una notifica di modifica della proprietà in un set di oggetti WPF. Questo viene utilizzato dal sistema di layout per attivare un ricalcolo del layout sulle modifiche alle proprietà, esponendo così uno stile di programmazione dichiarativo per WPF, per cui quasi tutto, dall'impostazione dei colori e delle posizioni all'animazione degli elementi, può essere ottenuto impostando le proprietà. Ciò consente di scrivere le applicazioni WPF in XAML , che è un linguaggio di markup dichiarativo, associando le parole chiave e gli attributi direttamente alle classi e alle proprietà WPF.

Gli elementi dell'interfaccia di un'applicazione WPF vengono mantenuti come una classe di Visualoggetti. Gli oggetti visivi forniscono un'interfaccia gestita a un albero di composizione gestito da Media Integration Layer (MIL). Ogni elemento di WPF crea e aggiunge uno o più nodi di composizione all'albero. I nodi di composizione contengono istruzioni di rendering, come istruzioni di ritaglio e trasformazione, insieme ad altri attributi visivi. Quindi l'intera applicazione è rappresentata come una raccolta di nodi di composizione, che sono memorizzati in un buffer nella memoria del sistema. Periodicamente, MIL percorre l'albero ed esegue le istruzioni di rendering in ciascun nodo, componendo così ogni elemento su una superficie DirectX, che viene quindi visualizzata sullo schermo. MIL utilizza l' algoritmo del pittore , in cui tutti i componenti vengono renderizzati dal retro dello schermo alla parte anteriore, che consente di ottenere facilmente effetti complessi come le trasparenze. Questo processo di rendering è accelerato dall'hardware utilizzando la GPU. L'albero di composizione è memorizzato nella cache da MIL, creando una modalità grafica conservata , in modo che qualsiasi modifica all'albero di composizione debba essere comunicata solo in modo incrementale a MIL. Questo libera anche le applicazioni di gestione della riverniciatura dello schermo; MIL può farlo da solo in quanto dispone di tutte le informazioni necessarie. Le animazioni possono essere implementate come modifiche temporizzate all'albero di composizione. Dal lato visibile dell'utente, le animazioni sono specificate in modo dichiarativo, impostando un effetto di animazione su un elemento tramite una proprietà e specificando la durata. Il code-behind aggiorna i nodi specifici dell'albero, tramite Visualoggetti, per rappresentare sia gli stati intermedi a intervalli di tempo specificati, sia lo stato finale dell'elemento. MIL renderà automaticamente le modifiche all'elemento. Tutte le applicazioni WPF iniziano con due thread: uno per la gestione dell'interfaccia utente e un altro thread in background per la gestione del rendering e del repainting. Il rendering e il repaining sono gestiti dallo stesso WPF, senza alcun intervento da parte dello sviluppatore. Il thread dell'interfaccia utente ospita il Dispatcher (tramite un'istanza di DispatcherObject), che mantiene una coda di operazioni dell'interfaccia utente che devono essere eseguite (come un albero di Visualoggetti), ordinate per priorità. Gli eventi dell'interfaccia utente, inclusa la modifica di una proprietà che influisce sul layout, e gli eventi di interazione dell'utente generati vengono accodati nel dispatcher, che richiama i gestori per gli eventi. Microsoft consiglia che i gestori di eventi aggiornino solo le proprietà per riflettere il nuovo contenuto per la reattività dell'applicazione, con il nuovo contenuto generato o recuperato in un thread in background. Il thread di rendering preleva una copia dell'albero visivo e percorre l'albero calcolando quali componenti saranno visibili e ne esegue il rendering su superfici Direct3D. Il thread di rendering memorizza anche l'albero visivo nella cache, quindi è necessario comunicare solo le modifiche all'albero, il che risulterà nell'aggiornamento solo dei pixel modificati. WPF supporta un modello di layout estensibile. Il layout si divide in due fasi: Misura ; e Disponi . La fase Misura chiama ricorsivamente tutti gli elementi e determina la dimensione che assumeranno. Nella fase Arrange , gli elementi figlio vengono disposti in modo ricorsivo dai loro genitori, richiamando l' algoritmo di layout del modulo di layout in uso.

Strumenti

Sono disponibili numerosi strumenti di sviluppo per lo sviluppo di applicazioni Windows Presentation Foundation.

Strumenti Microsoft

  • Microsoft Visual Studio è un IDE orientato agli sviluppatori che contiene una combinazione di editor XAML e finestra di progettazione visiva WPF, a partire da Visual Studio 2008.
  • Prima di Visual Studio 2008, il componente aggiuntivo di progettazione WPF , nome in codice Cider, era la versione originale di un editor WYSIWYG per la creazione di finestre, pagine e controlli utente WPF. Era disponibile per Visual Studio 2005 come estensioni di Visual Studio 2005 per .NET Framework 3.0 CTP per la versione iniziale di WPF.
  • Microsoft Visual Studio Express 2008 e le edizioni successive, in particolare Visual C# Express e Visual Basic Express, hanno anche la finestra di progettazione WPF integrata.
  • Microsoft Blend è uno strumento orientato al designer che fornisce una tavola da disegno per la creazione di applicazioni WPF con grafica 2D e 3D, testo e contenuti di moduli. Genera XAML che può essere esportato in altri strumenti e condivide soluzioni (file sln) e formati di progetto (csproj, vbproj) con Microsoft Visual Studio.
  • Microsoft Expression Design è uno strumento di grafica bitmap e vettoriale 2D per l'esportazione in XAML .
  • XAMLPad è uno strumento leggero incluso in .NET Framework SDK. Può creare ed eseguire il rendering di file XAML utilizzando un layout dell'interfaccia utente a schermo diviso. Fornisce inoltre una visualizzazione ad albero del markup in un pannello.

Strumenti di terze parti

  • SharpDevelop , un IDE .NET open source, include capacità di progettazione di applicazioni WPF. È un'alternativa gratuita a Visual Studio.
  • PowerBuilder .NET di Sybase è uno strumento 4GL che traduce codice PowerBuilder, oggetti grafici in XAML e consente di distribuire l'applicazione come destinazione WPF.
  • Essential Studio for WPF di Syncfusion è un pacchetto di oltre 100 moderni controlli dell'interfaccia utente WPF per la creazione di applicazioni WPF line-of-business ad alte prestazioni.

Distribuzione

Il modello di distribuzione di WPF offre versioni sia standalone che XAML Browser Applications (XBAP, pronunciato "ex-bap"). Il modello di programmazione per la creazione di entrambi i tipi di applicazioni è simile.

Le applicazioni autonome sono quelle che sono state installate localmente sul computer utilizzando software come ClickOnce o Windows Installer (MSI) e che vengono eseguite sul desktop. Le applicazioni autonome sono considerate attendibili e hanno pieno accesso alle risorse di un computer.

Le applicazioni browser XAML ( XBAP ) sono programmi ospitati all'interno di un browser web . Le applicazioni XBAP precedenti a .NET4 vengono eseguite in un ambiente sandbox con attendibilità parziale e non hanno accesso completo alle risorse del computer e non tutte le funzionalità WPF sono disponibili. L'ambiente ospitato ha lo scopo di proteggere il computer da applicazioni dannose. Gli XBAP possono essere eseguiti come applicazioni completamente affidabili in .NET 4, con accesso completo alle risorse del computer. L'avvio di un XBAP da una pagina HTML o viceversa è senza soluzione di continuità (non esiste un prompt di sicurezza o di installazione). Sebbene si abbia la percezione dell'applicazione in esecuzione nel browser, in realtà viene eseguita in un eseguibile fuori processo diverso dal browser.

Internet Explorer

A partire dal rilascio di .NET Framework 3.0, gli XBAP verranno eseguiti solo in IE.

Supporto per Firefox

Con il rilascio di .NET Framework 3.5 SP1, XBAP viene eseguito anche in Mozilla Firefox utilizzando l'estensione inclusa. Il 16 ottobre 2009, Mozilla ha aggiunto il plug-in e l'estensione per Firefox alla sua blocklist di componenti aggiuntivi, a causa di una grave vulnerabilità di sicurezza sfruttabile in remoto, in accordo con Microsoft. Due giorni dopo, il blocco è stato rimosso. Su Windows 7, il plug-in di Firefox non viene eseguito per impostazione predefinita. Una reinstallazione di .NET Framework 3.5 SP1 installerà il plug-in e aggiungerà il supporto per le applicazioni XBAP su Firefox. In alternativa, la copia cartacea delle DLL del plug-in da un'installazione funzionante di Windows XP/Vista nella directory dei plug-in di Mozilla Firefox ripristinerà anche il supporto per le applicazioni XBAP. Le DLL del plugin WPF risiedono nelle seguenti directory (a seconda della versione del Framework):

3.5 [SP1]
C:\Windows\Microsoft.NET\Framework\v3.5\WPF\NPWPF.dll
4.0
C:\Windows\Microsoft.NET\Framework\WPF\NPWPF.dll

Microsoft Silverlight

Silverlight (nome in codice WPF/E) è un plug -in per browser cross-browser deprecato che conteneva la tecnologia basata su WPF (incluso XAML) che forniva funzionalità come video, grafica vettoriale e animazioni a più sistemi operativi tra cui Windows 7 , Windows Vista , Windows XP e Mac OS X . Microsoft ha autorizzato un numero limitato di sviluppatori di terze parti a lavorare su porte per determinate distribuzioni Linux . Nello specifico, è stato fornito come add-on per Mozilla Firefox , Internet Explorer 6 e versioni successive, Google Chrome 42 e versioni precedenti e Apple Safari .

.NET Micro Framework

Il .NET Micro Framework include un modello a oggetti GUI liberamente basato su WPF, sebbene senza supporto per XAML.

Riferimenti

Bibliografia

link esterno