Sin dalla versione 3.0 le applicazioni Silverlight possono essere installate in locale con molta facilità, in modo che possano essere eseguite fuori dal browser, come se fossero applicazioni desktop tradizionali.
Nonostante il file XAP venga copiato ed eseguito in locale, tali applicazioni mantengono comunque un legame con il sito web dal quale sono state installate; questo ci permette di avere un modello estremamente semplice di deploy degli aggiornamenti sulle varie installazioni, con una modalità concettualmente simile a ClickOnce
(https://www.winfxitalia.com/script/165/Personalizzare-Installazione-Applicazioni-ClickOnce.aspx).
In Silverlight è sufficiente registrarsi all'evento CheckAndDownloadUpdateCompleted di Application ed utilizzare il metodo CheckAndDownloadUpdateAsync allo startup dell'applicazione.
public App() { this.Startup += this.Application_Startup; this.Exit += this.Application_Exit; this.UnhandledException += this.Application_UnhandledException; InitializeComponent(); Application.Current.CheckAndDownloadUpdateCompleted += new CheckAndDownloadUpdateCompletedEventHandler(Current_CheckAndDownloadUpdateCompleted); } void Current_CheckAndDownloadUpdateCompleted(object sender, CheckAndDownloadUpdateCompletedEventArgs e) { if (e.UpdateAvailable) MessageBox.Show("Aggiornamento disponibile. Riavviare l'applicazione"); } private void Application_Startup(object sender, StartupEventArgs e) { Application.Current.CheckAndDownloadUpdateAsync(); this.RootVisual = new Main(); }
Nel CheckAndDownloadUpdateCompleted abbiamo a disposizione il parametro CheckAndDownloadUpdateCompletedEventArgs la cui proprietà UpdateAvailable assume il valore True nel caso lo XAP presente sul sito web di origine sia più recente dell'attuale in esecuzione.
La chiamata del metodo CheckAndDownloadUpdateAsync attiva immediatamente il download del nuovo XAP senza la possibilità di controllo per l'utente; inoltre è a nostra cura implementare le dovute strategie per inibire o meno l'utilizzo dell'applicazione corrente nel caso questa sia stata aggiornata: per eseguire la nuova versione, infatti, l'app corrente deve essere necessariamente chiusa e riavviata manualmente dall'utente
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Rinnovare il token di una GitHub App durante l'esecuzione di un workflow
Gestione dei nomi con le regole @layer in CSS
Eseguire i worklow di GitHub su runner potenziati
Eliminare una project wiki di Azure DevOps
Migliorare la scalabilità delle Azure Function con il Flex Consumption
La gestione della riconnessione al server di Blazor in .NET 9
Collegare applicazioni server e client con .NET Aspire
Utilizzare DeepSeek R1 con Azure AI
Eseguire una ricerca avanzata per recuperare le issue di GitHub
Creare una libreria CSS universale: Clip-path
Cambiare la chiave di partizionamento di Azure Cosmos DB
Ordine e importanza per @layer in CSS
I più letti di oggi
- Autorizzazione basata su policy in ASP.NET Core
- Passare dati in binding a un Component in Angular2
- Speciale per il lancio di Visual Studio 2008, SQL Server 2008 e Windows Server 2008 dal 25/02 al 07/03
- Mono 1.9 in versione stabile
- Microsoft Security Bulletin MS04-039
- Nuova preview per Expression Interactive Designer
- Tech-ed 2007: annunciati Visual Studio 2008 e Sql Server 2008
- ASP.NET vNext
- Data access with LiteDB in Blazor