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
Disabilitare le run concorrenti di una pipeline di Azure DevOps
Gestire eccezioni nei plugin di Semantic Kernel in ASP.NET Core Web API
Utilizzare il metodo Index di LINQ per scorrere una lista sapendo anche l'indice dell'elemento
Usare le navigation property in QuickGrid di Blazor
Gestione file Javascript in Blazor con .NET 9
Generare HTML a runtime a partire da un componente Razor in ASP.NET Core
Gestione CSS in Blazor con .NET 9
Creare una libreria CSS universale: Cards
Estrarre dati randomici da una lista di oggetti in C#
Configurare e gestire sidecar container in Azure App Service
Aprire una finestra di dialogo per selezionare una directory in WPF e .NET 8
Utilizzare QuickGrid di Blazor con Entity Framework
I più letti di oggi
- Eseguire una chiamata AJAX per inviare dati al server in Angular 2
- Formati per l'impostazione del colore in CSS3
- .NET Conference Italia 2024 - Milano
- Gestione CSS in Blazor con .NET 9
- build 7712 per #wp7 #mango riservata agli sviluppatori, con refresh dei tool su connect. info su http://aspitalia.com/y6
- oggi a partire dalle 16:00, non perdere #connect. tutto sul futuro di #vs, #azure, #aspnet https://aspit.co/azk