Recentemente ho avuto un'intervista per una posizione .NET. Per quanto riguarda le domande poste, ho avuto dei grossi problemi nel rispondere a una domanda. Spero che qualcuno possa aiutarmi in questo.Applicare l'aggiornamento senza riavviare l'applicazione
Scenario (domanda): La prima versione di un'applicazione (che potrebbe essere l'applicazione UI winform/wpf) è già disponibile per il client e hanno iniziato a utilizzare l'applicazione. Sfortunatamente, il team di controllo qualità ha in seguito trovato un problema serio nella versione corrente. Ora la sfida è che dovremmo essere in grado di inviare e applicare la patch (correzione) senza forzare il riavvio dell'applicazione. L'assunto è che l'applicazione è un'applicazione in tempo reale che non può essere riavviata per applicare le patch.
Personalmente, ho avuto problemi a dare una risposta convincente che non influisce sull'applicazione in esecuzione mentre viene applicata la patch.
Risposta:
Grazie per aver contribuito finora. Sono riuscito a ottenere una soluzione per questo problema. Non sono sicuro se questo è ciò che l'intervistatore ha chiesto. Tuttavia, mi ha fatto piacere leggere su ClickOnce di microsoft, che fa quasi quello che volevo ..
Quale parte del programma si applica la correzione? Solo l'interfaccia utente? Immagino che potresti usare qualcosa come MEF per scaricare e ricaricare il codice aggiornato. – eandersson
Questa domanda potrebbe essere interpretata come consentire l'aggiornamento (es. Sovrascrivere i file) senza forzare una chiusura ma l'app non deve riflettere le modifiche fino a quando non viene chiusa e chiusa facoltativamente, il che è molto più semplice nella maggior parte dei casi dell'applicazione un percorso per un programma in esecuzione che dovrebbe essere visto immediatamente senza rieseguire il programma. –
@eandersson: la posizione non era esplicita. Tuttavia, come ci si accosterà se si tratta di una correzione dell'interfaccia utente o di una correzione in una DLL che è già nello spazio virtuale del processo? – sophieJ