Project Description
Application demoed during the 2011 TechEd North America presentation on creating "Occasionally Disconnected" applications.  Click HERE to download the slides shown at the presentation.

PreReqs:

  1. Visual Studio 2010 SP1
  2. SQL Express install and accessible as “.\sqlexpress”
    1. You can also edit the database setup scripts and web config files
  3. Silverlight 5 Beta
  4. Silverlight Toolkit April 2010 Installed
  5. RIA Services Toolkit April 2011 Installed

Setup Steps:

  1. Go to \Lib\DatabaseSetup and run ResetDatabase.bat
  2. Load the Solution, InsuranceAdjuster.sln
  3. Set your startup project to be InsuranceAdjuster.Web
    1. Right-click on the project and select “Set as Startup Project”
  4. Set your start page to be Default.aspx
    1. Right-click on the file and select “Set as Start Page”
  5. Start the application (F5)

If there are any bugs, questions, or comments, please let me know via the Discussions page.

Jason R. Shaver
Silverlight Program Manager

Core Features:

Below lists some of the core features demoed at TechEd and some files you can look at to see how we did it.  

The main design goals of our architecture is:

  • Developers should code the same way without regard to being online or offline
  • Developers should not have to worry about the current 'state' of an object (is it dirty, syncing, downloading)
  • Developers should be able to choose how to handle data changes and conflicts
  • The system should support any data layer such as POCO, CLSA, RIA Services, etc.

Local Entity Storage

InsuranceAdjuster\OccasionallyConnected\ObjectStores\IObjectStore.cs
InsuranceAdjuster\OccasionallyConnected\ObjectStores\SterlingObjectStore.cs

Entity Syncing

InsuranceAdjuster\OccasionallyConnected\CacheMonitors\ICacheMonitor.cs
InsuranceAdjuster\OccasionallyConnected\CacheMonitors\PollingCacheMonitor.cs
InsuranceAdjuster\OccasionallyConnected\Messages\SyncMessageBase.cs
InsuranceAdjuster\OccasionallyConnected\Messages\SyncClaimsMessage.cs

Message based Communication

InsuranceAdjuster\OccasionallyConnected\Message.cs
InsuranceAdjuster\OccasionallyConnected\Message.static.cs
InsuranceAdjuster\OccasionallyConnected\Messages\SyncMessageBase.cs
InsuranceAdjuster\OccasionallyConnected\Messages\GetClaimMessage.cs

Durable Messaging

InsuranceAdjuster\OccasionallyConnected\Messages\SaveClaimMessage.cs
InsuranceAdjuster\OccasionallyConnected\ObjectStores\IObjectStore.cs

MVVM Light ViewModel Base Classes

InsuranceAdjuster\ViewModels\ViewModelBase.cs
InsuranceAdjuster\ViewModels\ViewModelBaseOfT.cs

Loading an Entity Via Messages

InsuranceAdjuster\ViewModels\ClaimViewModel.cs
InsuranceAdjuster\ViewModels\ViewModelBaseOfT.cs
InsuranceAdjuster\OccasionallyConnected\Messages\GetClaimMessage.cs

Last edited Oct 7, 2011 at 7:14 PM by jasonrshaver, version 11