Silverlight: applicazioni esterne al browser

Esploreremo ora il supporto di Silverlight per le applicazioni che possono essere installate sul computer dell'utente finale per essere eseguite al di fuori del browser Web come una normale applicazione Windows. Ci sono tre ragioni principali per cui potresti volere che la tua applicazione sia in grado di funzionare fuori dal browser:

  • Interaction
  • Offline
  • Elevata fiducia

Interazione

Può consentire una migliore progettazione dell'interazione. Un modello di navigazione del Web non è particolarmente adatto per alcune applicazioni. Ad esempio, la barra degli indirizzi e il pulsante Indietro possono essere uno spreco di spazio e inutili.

L'importanza di Silverlight qui è come indicato di seguito:

  • Le applicazioni Web possono utilizzare tecnologie lato client, come Silverlight, Flash o AJAX per fornire aggiornamenti continui a una singola pagina, forse eliminando qualsiasi necessità di passare ad altre pagine.

  • In alcune applicazioni, un utente può dedicare molti minuti o addirittura ore a quella che il browser considera una singola pagina.

  • Per questo tipo di applicazione, il Back Il pulsante può finire per avere un effetto piuttosto sorprendente di uscire dall'applicazione perché ti scaricherà di nuovo su qualsiasi pagina in cui ti trovavi prima di entrare nell'applicazione.

  • Chiaramente, le applicazioni non simili al web sono generalmente servite meglio esaurendo il browser, perché questo elimina il browser Chrome. In generale, l'usabilità non è l'unico motivo per esaurire il browser.

disconnesso

Un altro motivo per utilizzare questa funzione è abilitare l'esecuzione offline. Quando un'applicazione Silverlight viene installata per operazioni fuori browser, viene copiata in un repository per utente sul computer locale e diventa disponibile tramite i normali meccanismi del sistema operativo per l'avvio delle applicazioni, come il menu Start su Windows, ad esempio.

  • L'applicazione sarà quindi disponibile anche se l'utente non dispone di connettività Internet.

  • Ovviamente, questo è utile solo per le applicazioni che non dipendono interamente dalle informazioni lato server.

  • Ad esempio, un'applicazione di tracciamento automatico per un servizio di consegna pacchi non sarebbe di grande utilità senza la connettività di rete.

  • Per alcune applicazioni, la possibilità di continuare a lavorare durante gli occasionali errori di connettività è molto utile.

Elevata fiducia

La versione 4 di Silverlight ha aggiunto il supporto per le applicazioni affidabili. La sandbox di sicurezza di Silverlight normalmente blocca alcune operazioni privilegiate, come l'accesso ai file dell'utente.

Tuttavia, un'applicazione esterna al browser potrebbe richiedere l'elevazione. Se l'utente concede tale richiesta, l'applicazione è in grado di eseguire più del tipo di lavoro che qualsiasi normale applicazione Windows sarà in grado di eseguire, ad esempio utilizzare l'automazione COM o personalizzare il bordo della finestra.

Le applicazioni che vengono eseguite all'interno del browser non sono mai attendibili, quindi è necessario scrivere un'applicazione fuori dal browser se si desidera utilizzare queste funzionalità.

Abilitazione di OOB

Come scriviamo un'applicazione fuori dal browser? È molto facile. Dobbiamo modificare una singola impostazione nelle proprietà del progetto di Silverlight e aggiunge semplicemente un'impostazione adatta al fileAppManifest.xaml.

Vediamo come funziona.

  • Quando il file manifest indica che è supportata l'esecuzione fuori dal browser, ciò non ha effetto iniziale. L'applicazione verrà eseguita nel browser come al solito.

  • Tuttavia, se l'utente fa clic con il pulsante destro del mouse, il file Silverlight standard ContextMenu offre un elemento aggiuntivo per installare l'applicazione sul computer.

  • Se l'utente seleziona tale elemento, viene visualizzata una finestra di dialogo che richiede la conferma. Chiede inoltre se l'applicazione deve essere accessibile dal menu Start, dal desktop o da entrambi.

  • Non devi fare affidamento sul menu contestuale. Potresti anche offrire un pulsante su cui l'utente può fare clic per installare l'applicazione, poiché è presente un'API, che puoi chiamare per avviare l'installazione.

  • Quando si avvia l'installazione a livello di codice, l'utente vede ancora la finestra di dialogo. Non puoi installare la tua app senza il consenso dell'utente.

Un'applicazione Silverlight

Ecco un'applicazione Silverlight molto semplice. Di seguito è riportato il suo codice XAML.

<UserControl x:Class = "SimpleOob.MainPage" 
   xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
   xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml" 
   xmlns:d = "http://schemas.microsoft.com/expression/blend/2008" 
   xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006" 
   mc:Ignorable = "d" 
   d:DesignHeight = "300" d:DesignWidth = "400">
   
   <Grid x:Name = "LayoutRoot" Background = "White"> 
	
      <Border BorderBrush = "Blue" BorderThickness = "4" CornerRadius = "20" >
		
         <Border.Background>
			
            <LinearGradientBrush StartPoint = "0,0" EndPoint = "0,1"> 
               <GradientStop Offset = "0.0" Color = "White" /> 
               <GradientStop Offset = "0.15" Color = "#cef" /> 
               <GradientStop Offset = "1.0" Color = "White" /> 
            </LinearGradientBrush> 
				
         </Border.Background> 
			
         <TextBlock HorizontalAlignment = "Center" VerticalAlignment = "Center" 
            Text = "Silverlight Application" TextOptions.TextHintingMode = "Animated" 
            TextAlignment = "Center" TextWrapping = "Wrap" 
            FontSize = "72" FontFamily = "Trebuchet MS" > 
					 
               <TextBlock.Effect> 
                  <DropShadowEffect Color = "#888" /> 
               </TextBlock.Effect> 
				
         </TextBlock>
			
      </Border> 
		
   </Grid>
	
</UserControl>

Step 1 - Per abilitare l'esecuzione fuori dal browser, vai al progetto Propertiese fare clic sulla scheda Silverlight. Tutto quello che dobbiamo fare è controllare il fileEnable running application out of the browser casella di controllo.

Se esegui questa applicazione, noterai che non otterrai affatto un browser web.

In effetti, Visual Studio ha preso una decisione per tuo conto. Quando hai abilitatoout-of-browser esecuzione, ha modificato ingiustamente le impostazioni di debug.

Step 2 - Quindi, qui nel Solution Explorer, notare che il progetto Silverlight è ora in grassetto, a indicare che si tratta di un progetto di avvio.

Prima non era così. Era stato il progetto web. In questo momento, non lo vogliamo, perché vogliamo mostrare come quella casella di controllo cambia le cose per l'utente finale.

Step 3 - Riporteremo il progetto web ad essere il progetto StartUp.

Step 4 - Esegui di nuovo l'applicazione e vedrai che l'applicazione è tornata nel browser ora.

Step 5- Fare clic con il pulsante destro del mouse sulla pagina Web. Noterai la solita voce Silverlight nel menu contestuale e un elemento aggiuntivo da installare.

Step 6 - Quando si seleziona la seconda opzione, viene visualizzata la finestra di dialogo Installa applicazione come mostrato di seguito.

Si noti che mostra l'URL principale del sito Web da cui proviene l'applicazione. Stiamo usando il server web di debug locale fornito da Visual Studio, motivo per cui dice localhost.

Step 7 - Fare clic su OKe l'applicazione viene eseguita in una finestra separata dal browser.

Potrebbe essere naturale pensare che questa finestra sia in qualche modo posseduta o collegata al browser, ma non lo è. Puoi chiudere il browser e questa finestra rimane aperta. Ancora più importante, è possibile chiudere questa finestra e quindi eseguire nuovamente l'applicazione senza utilizzare affatto il browser.

Step 8 - Se apri il file Search finestra di dialogo nel file Start menu e inizia a digitare il nome dell'applicazione, si presenta proprio come qualsiasi normale applicazione Windows.

Step 9 - Puoi eseguirlo senza che il browser sia in vista.

Per disinstallare l'applicazione

Il menu contestuale predefinito dell'applicazione fornisce un modo semplice per farlo. Un utente potrebbe ragionevolmente aspettarsi di disinstallarlo allo stesso modo di qualsiasi altra applicazione.

È inoltre possibile rimuovere facendo clic con il pulsante destro del mouse sulla pagina Web e selezionando Remove this application….

Impostazioni OOB

Sebbene avessimo dovuto modificare solo una singola impostazione per abilitare il funzionamento fuori dal browser, in pratica, normalmente vorrai fare qualcosa di più. IlAppManifest.xaml file può contenere diverse impostazioni relative a out-of-browser operazione, che di solito configuriamo tramite Visual Studio.

Come avrai notato, quando hai selezionato la casella di controllo per abilitare running out-ofbrowser, Visual Studio ha abilitato un pulsante etichettato Out-of-Browser Settings.

Vediamolo facendo clic sul pulsante. Produrrà la seguente finestra di dialogo.

  • La prima cosa che possiamo configurare è il testo che appare come Window Title.

  • Abbiamo anche la possibilità di correggere le dimensioni e le posizioni delle finestre, ma per ora le lasceremo in automatico.

  • Il nome del collegamento viene visualizzato nel file Start menu e il collegamento Desktop per l'app una volta installata.

  • È anche il testo che appare nel menu contestuale e la finestra di dialogo di installazione dell'applicazione.

  • Questa descrizione dell'applicazione appare nella descrizione comandi quando passo il mouse sulle scorciatoie.

  • Forniamo icone di varie dimensioni. Questi devono essere integrati nel tuo progetto.