Accesso disconnesso ai dati 1 Agenda 2 La gestione delle informazioni 3 Quando “offline” ha senso… 4 Dove mantenere i dati in locale? • Environment.SpecialFolder.LocalApplicationData 5 Alcune possibili soluzioni 6 Approccio custom: quale strategia? 7 Store locale dei dati <Serializable()> Public Class UserSettings Private m_username As String Private m_password As String Public Property Username() As String Get Return m_username End Get Set(ByVal Value As String) m_username = Value End Set End Property ... 8 Gestione della concorrenza 9 Riconciliazione delle modifiche 10 Demo: IssueVision (http://www.windowsforms.net) 11 Obiezione: bello, flessibile, ma molto impegnativo da sviluppare se la soluzione è complessa! 12 Quando i dati in locale crescono 13 SQL Server Replication • Diversi tipi di replica secondo la natura dei dati – Merge, Transactional, Snapshot • Programmabile per setup e sincronizzazione – Trasparente 14 Obiezione: bello, molto potente, ma occorre SQL Server sul back-end, inoltre temo possa non coprire tutti gli scenari applicativi che devo gestire! 15 Offline Application Block 16 Offline Application Block 17 Lesson learned in Microsoft 18 Una slide per Andrea • Patterns utilizzati 19 Terminologia dell’Offline Block • Offline Mode: La connettività di rete non è disponibile • Reference Data: Dati che sono tipicamente read-only e disponibili in cache locale per varie attività – Es. Tabelle di decodifica • Message Data 20 Offline Application Block 21 Offline Application Block: componenti 22 Componenti • Application: l’applicazione • Service Agent: fornisce il punto di accesso alle funzionalità offline • Service Request: tutti i dettagli di una richiesta sono incapsulati in un service request object • Queue: fornisce uno storage persistente per i service request objects • Executor: prende le richieste dalla coda e invoca il servizio quando la connessione ritorna disponibile • Service 23 Sottosistemi • Connection State Management: rileva lo stato della connessione di rete • Service Agent Management: gestisce i diversi service agent e restituisce i risultati dell’esecuzione di particolari servizi • Reference Data Management: gestisce il download dei dati utilizzati come cache sul client • Message Data Management 24 Service Agent Management • Service Agent Manager: gestisce il risultato restituito da un Service Agent • Service Agent: classe base per le diverse tipologie di servizi • Application Service Agent: creato dallo sviluppatore dell’applicazione per inviare e ricevere i messaggi • Online Proxy 25 Reference Data Management • Data Loader Manager: consente all’applicazione di scaricare i dati in cache • Reference Data Cache: interfaccia per gli utilizzatori delle funzionalità di caching • Caching Block 26 Message Data Management • Queue Manager: gestisce i diversi provider per le code di messaggi • Queue Storage: fornisce l’accesso ai diversi data store – In-memory, Isolated Storage, MSDE, MSMQ • Executor 27 Preparazione della cache locale 12 1 11 2 3 4 10 5 6 7 8 9 28 Rilevazione della connettività 1 2 29 Inserimento dei comandi nella coda 1 2 3 4 30 Sincronizzazione dei dati 5 4 6 7 2 1 3 31 Refresh della cache locale 32 Ciclo completo di richiesta-risposta 33 Demo: Insurance Claims 34 In sintesi 35 Riferimenti 36 © 2003-2004 Microsoft Corporation. All rights reserved. This presentation is for informational purposes only. Microsoft makes no warranties, express or implied, in this summary. 37