Cenni preliminari sulle applicazioni browser XAML di Windows Presentation Foundation

Aggiornamento: Luglio 2008

Le applicazione browser XAML (XBAP) combinano le funzionalità delle applicazioni Web e delle applicazioni rich client. Analogamente alle applicazioni Web, le applicazioni XBAP possono essere pubblicate in un server Web e avviate da Internet Explorer. Analogamente alle applicazioni rich client, le applicazioni XBAP possono sfruttare le funzionalità di WPF. Anche lo sviluppo delle applicazioni XBAP è simile allo sviluppo rich client. In questo argomento viene fornita un'introduzione semplice, di alto livello allo sviluppo XBAP, sottolineando le differenze tra questo tipo di sviluppo e lo sviluppo rich client standard.

Nel presente argomento sono contenute le seguenti sezioni.

  • Implementazione di un'applicazione browser XAML (XBAP)
  • Distribuzione di un'applicazione browser XAML
  • Considerazioni sulla sicurezza delle applicazioni XBAP
  • Considerazioni sulle prestazioni dei tempi di avvio di XBAP

Implementazione di un'applicazione browser XAML (XBAP)

Il metodo più semplice per creare un nuovo progetto XBAP consiste nell'utilizzo di Microsoft Visual Studio:

  1. Scegliere Nuovo dal menu File, quindi scegliere Progetto.

  2. Nella finestra di dialogo Nuovo progetto, selezionare Visual Basic o Visual C# nel riquadro Tipi progetto. Nel riquadro Modelli scegliere Applicazione browser WPF.

  3. Assegnare un nome al progetto e scegliere OK per creare il nuovo progetto.

Il modello di progetto applicazione browser WPF crea un progetto di applicazione XBAP che include i seguenti elementi:

  • Una definizione di applicazione, Application.xaml.

  • Una pagina, Page1.xaml.

Laddove richiesto, è possibile aggiungere altri elementi.

Se si preferisce uno sviluppo mediante strumenti che richiedono la compilazione da riga di comando, vedere Compilazione di un'applicazione WPF.

Quando si esegue un'applicazione XBAP, questa viene avviata in una finestra del browser anziché in una finestra autonoma. Quando si esegue il debug di un'applicazione XBAP da Visual Studio, l'applicazione viene eseguita con le autorizzazioni dell'area Internet e, di conseguenza, genera eccezioni di sicurezza se tali autorizzazioni vengono superate. Per ulteriori informazioni, vedere la classe Compilazione di un'applicazione WPF.

Distribuzione di un'applicazione browser XAML

Quando si compila un'applicazione XBAP, Microsoft Build Engine (MSBuild) produce almeno i seguenti tre file:

  • Un file eseguibile. Contiene il codice compilato e ha un'estensione exe.

  • Un manifesto di applicazione. Contiene i metadati associati all'applicazione e ha un'estensione manifest.

  • Un manifesto di distribuzione. Contiene le informazioni utilizzate da ClickOnce per distribuire l'applicazione e ha un'estensione xbap.

Le applicazioni XBAP vengono pubblicate in un server Web (Microsoft Internet Information Services (IIS) o successivo). Non occorre installare .NET Framework sul server Web, però è necessario registrare le estensioni di file e i tipi Multipurpose Internet Mail Extensions (MIME) WPF. Per informazioni dettagliate, vedere Procedura: configurare IIS 5.0 e IIS 6.0 per distribuire applicazioni WPF.

Per preparare l'applicazione XBAP per la distribuzione, copiare il file eseguibile e i manifesti associati nel server Web. Creare un collegamento ipertestuale in una pagina Web che consenta di spostarsi sul manifesto di distribuzione. Quando l'utente fa clic sul collegamento e si sposta sul file con estensione xbap, ClickOnce gestisce automaticamente le operazioni di download e di avvio dell'applicazione.

Cancellazione di applicazioni XBAP memorizzate nella cache

In alcuni casi, dopo aver ricompilato e avviato l'applicazione XBAP, ci si accorge che l'applicazione avviata è una versione precedente. Questo può accadere, ad esempio, quando il numero di versione dell'assembly XBAP è statico e l'applicazione XBAP viene avviata dalla riga di comando. In questo caso, poiché il numero della versione memorizzata nella cache (quella precedentemente avviata) e della nuova versione coincidono, la nuova versione dell'applicazione XBAP non viene scaricata; al contrario, viene caricata la versione memorizzata nella cache.

In questi casi è possibile rimuovere la versione memorizzata nella cache utilizzando il comando Mage, installato con Windows SDK, dal prompt dei comandi:

Mage.exe -cc

In tal modo si garantisce l'avvio della versione più recente dell'applicazione XBAP, in quanto non viene trovata alcuna versione memorizzata nella cache. Se si esegue il debug mediante Visual Studio 2005, è possibile avviare la versione più recente dell'applicazione XBAP premendo F5.

In generale, occorre aggiornare il numero di versione dell'assembly a ogni compilazione.

Considerazioni sulla sicurezza delle applicazioni XBAP

Le applicazioni XBAP devono essere eseguite all'interno di una sandbox di sicurezza con attendibilità parziale ristretta al set di autorizzazioni dell'area Internet. Di conseguenza, l'implementazione deve supportare il sottoinsieme di elementi WPF supportati nell'area Internet (vedere Sicurezza di Windows Presentation Foundation).

Quando si ospita il controllo ActiveX WebBrowser (WebOC) nel processo del browser Internet Explorer, si applicano le limitazioni di sicurezza seguenti.

  • Internet Explorer blocca le finestre di dialogo modali dalla funzione alert DHTML e i controlli ActiveX ospitati in HTML. In Internet Explorer vengono eliminate le finestre di dialogo provenienti da thread diversi dal thread della scheda attiva.

  • Ospitando il controllo WebOC viene generata un'eccezione quando XBAP viene caricato tra domini in una pagina HTML.

Considerazioni sulle prestazioni dei tempi di avvio di XBAP

Un aspetto importante delle prestazioni di XBAP sono i tempi di avvio. Se XBAP è la prima applicazione WPF a essere caricata, i tempi di avvio a freddo possono essere pari a dieci secondi o più. Ciò avviene perché il rendering della pagina di avanzamento viene eseguito da WPF e sia CLR sia WPF devono essere avviati a freddo per visualizzarla. 

Se l'avvio avviene in Visual Studio 2008 SP1, XBAP i tempi di avvio a freddo vengono attenuati visualizzando una pagina di avanzamento non gestita all'inizio del ciclo di distribuzione. La pagina di avanzamento viene visualizzata subito dopo l'avvio del'applicaizone, in quanto viene visualizzata da codice ospitato in maniera nativa ed eseguendone il rendering in HTML. 

La concorrenza migliorata della sequenza di download di ClickOnce inoltre migliora i tempi di avvio del 10%. Dopo il download di ClickOnce e la convalida dei manifesti, inizia il download dell'applicazione e l'indicatore di stato comincia ad aggiornarsi. 

Cronologia delle modifiche

Date

History

Motivo

Luglio 2008

Aggiunta sezione sulle prestazioni dei tempi di avvio di XBAP.

Modifica di funzionalità in SP1.