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
Gestione opzioni colonna nella Blazor QuickGrid
Gestire il routing HTTP in Azure Container App
Migrare applicazioni legacy nel cloud con Azure App Service Managed Instance
Rendere i propri workflow e le GitHub Action utilizzate più sicure
Esporre tool MCP con Azure Functions
Gestione degli eventi nei Web component HTML
Utilizzare Locust con Azure Load Testing
Utilizzare WhenEach per processare i risultati di una lista di task
Abilitare automaticamente il force push di un gruppo su Azure DevOps
Ridurre il reflow ottimizzando il CSS
Utilizzare i variable font nel CSS
Modificare lo stile in una QuickGrid Blazor
I più letti di oggi
- Sfruttare una CDN con i bundle di ASP.NET
- Effettuare il multi-checkout in linea nelle pipeline di Azure DevOps
- Gli oggetti CallOut di Expression Blend 4.0
- Effetto turnstile su tutte le pagine con il Windows Phone Toolkit
- Inserire le news di Punto Informatico nel proprio sito
- Alleggerire le applicazioni WPF sfruttando gli oggetti Freezable
- Le DirectInk API nella Universal Windows Platform
- Esaminare documenti XML con namespace utilizzando LINQ to XML


