12
5/30/2005 10:44 AM 1 Smart Client Offline Data Caching and Synchronization Brian Noyes Principal Software Architect IDesign, Inc.(www.idesign.net ) About Brian Principal Software Architect, IDesign Inc. (www.idesign.net ) Microsoft MVP in ASP.NET Writing MSDN Magazine, MSDN Online, The Server Side.NET, CoDe Magazine, asp.netPRO, Visual Studio Magazine Data Binding in Windows Forms 2.0, Addison-Wesley, expected release fall 2005 Speaking Microsoft TechEd US, Europe, Malaysia, SDC, Visual Studio Connections, DevTeach, VSLive!, INETA Speakers Bureau Participate in Microsoft design reviews E-mail: [email protected] Blog: http://www.softinsight.com/bnoyes

Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

1

Smart Client Offline Data Caching and Synchronization

Brian NoyesPrincipal Software ArchitectIDesign, Inc.(www.idesign.net)

About Brian• Principal Software Architect, IDesign Inc.

(www.idesign.net) • Microsoft MVP in ASP.NET• Writing

– MSDN Magazine, MSDN Online, The Server Side.NET, CoDeMagazine, asp.netPRO, Visual Studio Magazine

– Data Binding in Windows Forms 2.0, Addison-Wesley, expected release fall 2005

• Speaking– Microsoft TechEd US, Europe, Malaysia, SDC, Visual Studio

Connections, DevTeach, VSLive!, INETA Speakers Bureau• Participate in Microsoft design reviews• E-mail: [email protected]• Blog: http://www.softinsight.com/bnoyes

Page 2: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

2

Agenda• What is a Smart Client?• Offline Operations Challenges• Data Communications Strategies• Connection Management• Client Side Data Caching and

Synchronization• Offline Application Block

What is a Smart Client• Rich user interface (Windows Forms)• Connects to back-end services• Runs securely on the client• Supports auto-deployment and update over

the network• Supports disconnected operations

Page 3: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

3

Agenda• What is a Smart Client?• Offline Operations Challenges• Data Communications Strategies• Connection Management• Client Side Data Caching and

Synchronization• Offline Application Block

Offline OperationsChallenges• Offline use case identification• Online communications transport• Connection management• Client-side caching approach• Offline data synchronization• Security

Page 4: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

4

Data TierData Tier

ClientClient

The Big Picture

Data CacheData CacheC

omm

unic

atio

ns L

ayer

Com

mun

icat

ions

Lay

er

ServerServer

DatabaseDatabaseC

omm

unic

atio

ns L

ayer

Com

mun

icat

ions

Lay

er

??

BusinessBusinessLayerLayer

Data AccessData AccessLayerLayer

Agenda• What is a Smart Client?• Disconnected Operations Challenges• Data Communications Strategies• Connection Management• Client Side Data Caching and

Synchronization• Offline Application Block

Page 5: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

5

Communications Strategies• Database• .NET Remoting• Enterprise Services (COM+)• MSMQ• Web Services• Indigo

Data Transfer Strategies• Object-Oriented

– Pass a Data Transfer Object via a method call or property

• DataSet or custom business entity

• Service-Oriented– Invoke operation, passing or receiving parameters– Deliver message containing data

• Data-Oriented– Query execution / Replication / Queues

Page 6: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

6

Agenda• What is a Smart Client?• Disconnected Operations Challenges• Data Communications Strategies• Connection Management• Client Side Data Caching and

Synchronization• Offline Application Block

Connection Management• Detect and control online vs. offline

operations– Modify UI / Functionality

• Detection techniques– Try connected operation – handle failure– WinInet API– Offline Block Connection Management– NetworkChange/NetworkInterface classes

(.NET 2.0)

Page 7: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

7

Demo: Connection Detection

Brian NoyesIDesign, Inc.www.idesign.net

Agenda• What is a Smart Client?• Disconnected Operations Challenges• Data Communications Strategies• Connection Management• Client Side Data Caching and

Synchronization• Offline Application Block

Page 8: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

8

Client Data Caching• Memory• Saved Data Transfer Object• Database

– MSDE, SQL Express, SQL Mobile• Message Queues

– MSMQ– Database

• Custom, SQL Service Broker

– Enterprise Services

Data Synchronization• Reference data vs. operational data• Data oriented

– Merge replication• Service oriented

– Remote method invocation– Message delivery

• Confirmation return message• Poll for completion

Page 9: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

9

Data Synchronization• Concurrency resolution

– ADO.NET detection / exception propogation– Distributed transactions

• Enterprise Services• Indigo

Demo: Client Data Caching and Synchronization OptionsBrian NoyesIDesign, Inc.www.idesign.net

Page 10: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

10

Agenda• What is a Smart Client?• Disconnected Operations Challenges• Data Communications Strategies• Connection Management• Client Side Data Caching and

Synchronization• Offline Application Block

Offline Application Block• Connection State Detection / Control• Download / Upload Data • Queued data requests• Reference Data Caching• Asynchronous request processing• Encryption / signing of stored data• Provider model for connection detection, data

request queuing, data caching, service agents

Page 11: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

11

Offline Application BlockApplicationApplication

Application Service Application Service

Online ProxyOnline Proxy

Connection ManagerConnection Manager

Service Agent ManagerService Agent Manager

Data Loader ManagerData Loader Manager

Queue ManagerQueue Manager

ExecutorExecutor

Reference Data CacheReference Data Cache

Service AgentService Agent

Cache BlockCache Block

Queue ManagerQueue Manager

Connection DetectionConnection DetectionStrategyStrategy

Agent Agent

Application CodeApplication Code

Block ComponentsBlock Components

Block provides some components Block provides some components

Demo: Offline Application Block Client

Brian NoyesIDesign, Inc.www.idesign.net

Page 12: Smart Client Offline Data Caching and Synchronizationsoftinsight.com/downloads/SDC2005/SmartClientOfflineData... · 2015-02-22 · 5/30/2005 10:44 AM 1 Smart Client Offline Data Caching

5/30/2005 10:44 AM

12

Summary• Design for disconnected operations early

– Identify offline use cases– Pick data communications technology– Select caching and synchronization mechanism

• Prefer decoupled, service oriented approaches for enterprise applications

• Simplest option: Isolated Storage caching of DataSets passed through Web Services

• Explore the Offline Application Block for maximum flexibility

• Email: [email protected]• Blog: http://www.softinsight.com/bnoyes

Resources

COM and .NET Component Services, Juval Lowy, O’Reilly & Assoc: http://www.oreilly.com/catalog/comdotnetsvs/

Smart Client Architecture and Design Guide: http://www.msdn.microsoft.com/smartclient/default.aspx?pull=/library/en-us/dnpag/html/scag.asp

Smart Client Offline Application Block: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag/html/offline.asp

SQL Express: http://msdn.microsoft.com/express/sql/