1
Smart Clientdistribuzione e aggiornamento
Fabio Santini
2
Agenda
• Le 3 regole per la distribuzione• Scegliere la modalità di distribuzione
– No-Touch Deployment– Installare .NET Framework insieme alla
propria applicazione• Sceglire la modalità di aggiornamento
– Componente AppUpdater– Application Updater Block
• Uno sguardo al futuro– Click Once
3
#1 Evitare i conflitti
Eliminare i conflitti tra applicazioni diverse o versioni diverse della stessa applicazione!– L’installazione dell’ applicazione B non deve
condizionare il funzionamento dell’ applicazione A
• Isolamento delle applicazioni .NET– Distribuzione privata per default
• Per default le applicazioni .NET utilizzano gli assembly con i quali sono state sviluppate e non i più recenti
– Coesistenza di più versioni• Installazione “Side-by-Side”• La condivisione se necessaria è controllata e dichiarata• Gli assembly posso essere condivisi utilizzando la Global
Assembly Cache (GAC)– Nessuna registrazione di DLL
• XCopy
4
#2 Proteggere le risorse e i dati
Stabilire e controllare le risorse e i dati locali necessari alla propria applicazione!
• .NET Code Access Security– L’accesso alle risorse è controllato tramite
evidence• Chi a creato il programma (code signing)• Da dove proviene l’applicazione
– Intranet, un fornitore specifico, un sito web, etc.
– Con .NET la sicurezza delle risorse può essere controllata e garantita in fase di distribuzione
• Strumenti com CASPOL e le Group Policy possono aiutare gli amministratori a gestire le policy di sicurezza
5
#3 Controllo dei costi
Controllare i costi di distribuzione e aggiornamento!– Semplice installazione “self-service”– Gestione automatica delle installazioni e degli
aggioramenti
• .NET ha un basso costo per l’installazione e l’aggiornamento– Basta copiare i file
6
Scegliere la modalità di distribuzione
• Esecuzione da Web
• Download del codice
• File di configurazione
• MSI (Microsoft Installer)
• Installare .NET Framework
7
Opzioni di deployment
• .NET offre molte opzioni per la distribuzione e l’installazione di applicazioni “smart client”
• Quattro possibili opzioni:– Eseguire il codice da Web
• L’utente esegue l’applicazione semplicemente selezionando un link su una pagina Web
– Download del codice• L’utente esegue un applicazione di “bootstrap” dal
proprio computer che automaticamente scarica dal Web il codice necessario (o dalla intranet)
– File di configurazione• L’utente esegue un applicazione locale che scarica gli
assembly a seconda delle impostazioni nel file di configurazione
– MSI• L’utente installa localmente l’applicazione e gli
aggiornamenti vengono scaricati in automatico dal Web (o dalla intranet)
8
Eseguire da Web
• L’intera applicazione viene scaricata nella Assembly Download Cache– Il processo IEExec esegue l’applicazione
creando un appdomain con permessi ridotti
• Vantaggi– Molto semplice da distribuire e aggiornare
• Limiti– Funziona solo con Microsoft Internet
Explorer 5.01 o superiori– Le applicazioni sono semi-trusted– L’utente fa fatica a trovare l’applicazione
9
Download del codice
• L’applicazione è suddivisa in assembly differenti che vengono scaricati quando necessario– L’exe iniziale è installato localmente– L’applicazione scarica ed esegue gli assembly
dal web o dalla intranet utilizzando Assembly.LoadFrom()
• Vantaggi– Installazione iniziale minima e aggiornamenti
incrementali– Eseguita da My Programs– Semplice da aggiornare (pubblicazione sul
server)
10
Download del codice (continua)
• Limiti– L’applicazione deve essere progettata
appositamente– E’ necessaria comunque una prima installazione
locale– Non funziona in modalità offline– Non supporta il side-by-side– Gli aggiornamenti avvengono solo quando
l’applicazione e i moduli vengono caricati– I permessi sono comunque legati alla provenienza
degli assembly– La connessione è necessaria
• Utilizzato per ..– Applicazioni che sono già divise in moduli distinti – Applicazione che posso accettare lo scarico
continuo degli assembly (banda larga)
11
File di configurazione
• <fileexe>.exe.config• Vantaggi
– Installazione iniziale minima e aggiornamenti incrementali
– Eseguita da My Programs– Tutte le impostazioni in un file– Utilizzabile anche offline– Supporta il side-by-side
12
File di configurazione (continua)
• Limiti– L’applicazione deve essere progettata
appositamente– E’ necessaria comunque una prima
installazione locale– I permessi sono comunque legati alla
provenienza degli assembly– E’ necessario modificare un file di
configurazione presente sul client
13
Installazione con MSI
• Distribuzione sul pc dell’utente da Web, da uno share UNC, o dal disco– Come la maggior parte delle applicazioni
Microsoft®
• Vantaggi– Supporta tutte le funzionalità smart client
come per esempio la gestione offline– Migliori prestazioni– Migliore integrazione con la shell Windows
• Shortcuts in My Programs, Add/Remove– Supporta tecnologie di
autoaggiornamento
14
Installazione con MSI (continua)
• Limiti– Richiede un processo di installazione completo
• ci siamo dimenticati qualche cosa ?
• Utilizzato per– Applicazioni che necessitano delle migliori
prestazioni– Per applicazioni che lavorano per la maggior
parte del tempo offline– Applicazioni che devono accedere
continuamente a differenti risorse locali– Applicazioni che necessitano della possibilità di
esecuzione side-by-side
15
Installazione con MSI
16
Quale scelgo ?
Run From Web Code Download MSI/Client
Reach Basso impatto sul sistema Moduli dinamici Auto-Deployment Auto-Update Installazione e esecuzione per utente Migliore User Experience Migliori prestazioni Modalità Offline Integrazione con la Windows Shell Miglior accesso alle risorse locali Installazione senza restrizioni
17
Installare .NET Framework
• Versione distribuibile di .NET Framework– dotnetfx.exe – Distribuibile tramite Microsoft Systems
Management Server (SMS), Microsoft Active Directory®, or insieme al setup della propria applicazione
– Informazioni su:• http://msdn.microsoft.com/library/en-us/dnnetdep/html
/redistdeploy1_1.asp– Progetto di esempio da MSDN®
• http://www.microsoft.com/downloads/details.aspx?FamilyId=BF253CFD-1EFC-4FC5-BA7E-6A6F21403495
– Microsoft Visual Studio .NET 2003 Bootstrapper Plug-In
• http://www.microsoft.com/downloads/details.aspx?FamilyId=627921A0-D9E7-43D6-A293-72F9C370BD19&displaylang=en
18
Scegliere la modalità di aggiornamento
• Inviare un dischetto
• Aggiornamento automatico
• Application Updater
19
Opzioni di aggiornamento
• Sempre “Up-to-Date”– Eseguire da Web o scaricare il codice assicura
un aggiornamento continuo– Non possiamo avere side-by-side
• Application Updater– Due “code blocks” per mantenere aggiornate
le proprie applicazioni– Il componente AppUpdater
• Facile da implementare
– Updater Application Block• La scelta migliore per applicazioni enterprise
20
Application Updater
• Come funziona– Controlla costantemente la presenza di
aggiornamenti• Utilizza Web service, file di tipo manifest, o
controlla folder e file– Scarica gli aggiornamenti in background– Applica gli aggiornamenti– Eventualmente riavvia l’applicazione
• Componente AppUpdater– http://www.windowsforms.net
• Application Updater Block from Patterns & Practices– http://msdn.microsoft.com/library/en-us/dnbda/html/update
r.asp
21
22
23
24
25
26
27
28
29
30
Application Updater Block from Patterns & Practices
31
Click Once
Esegue da web Code Download MSI/Client ClickOnce
Reach Basso impatto sul sistema Moduli dinamici Auto-Deployment Auto-Update Installazione e esecuzione per utente Migliore User Experience Migliori prestazioni Modalità Offline Integrazione con la Windows Shell Miglior accesso alle risorse locali Installazione senza restrizioni
32
Risorse
• Overview su Deploying e Distributinghttp://msdn.microsoft.com/vbasic/using/deploying/
• Patterns & Practiceshttp://www.microsoft.com/resources/practices/patterns.mspx
• .NET Framework 1.1 guida al deployment msdn.microsoft.com/library/default.asp?url=/library/en-us/dnnetdep/html/dotnetframedepguid1_1.asp?_r=1
• Microsoft Visual Studio .NET 2003 Bootstrapper Plug-In
• http://www.microsoft.com/downloads/details.aspx?FamilyId=627921A0-D9E7-43D6-A293-72F9C370BD19&displaylang=en
33
© 2003-2004 Microsoft Corporation. All rights reserved.This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary.