« Support for VB6 is not ending | Main | Granular late binding : VB Whidbey Fun »

March 15, 2005

Smart Client Offline Application Block (SCOAB) Demo

A while back, I put together a demonstration the shows the basics of using the Smart Client Offline Application Block (SCOAB). I've posted it to my web site. Enjoy.


Posted on March 15, 2005 at 11:19 AM | Permalink


i'd like to show demo...

Posted by: taeho kim | Mar 15, 2005 9:59:36 PM

What? All in C#? No VB?? And after your comment about the Enterprise Library being C# only I thought you might be a little more pro-VB... geesh!

Posted by: Pro-VB | Mar 17, 2005 8:10:48 AM

That's the funny thing, you can be pro-VB without being anti-C#. I guess I'm one of those people who goes both ways.

Posted by: Scott Swigart | Mar 17, 2005 8:40:32 AM

You mean you can use both? It's OK for me to use C# too? ;-)

Posted by: Pro-VB | Mar 17, 2005 10:01:06 AM

Thanks for Demo!
Can we get a source code for it?
Thanks again!

Posted by: Vlad | Mar 22, 2005 7:33:33 AM

1) Can the caching mechanism make use of MSMQ?
2) Ways to inspect the queue?

Posted by: Matt | Mar 23, 2005 8:21:55 AM

Awesome demo! Thanks!

Posted by: Kerry | Mar 24, 2005 10:51:40 AM

the demo was very helpful please do demos in VB Thank you

Posted by: Mr Cruz | Mar 26, 2005 12:37:02 AM

it 's a simple but great info.
hope if i could get any more info

Posted by: vamshi | Mar 28, 2005 6:11:31 AM

where can i find the offline app block . i searched everywhere

Posted by: Hussein Ahmad | Apr 24, 2005 9:39:44 AM

Hussein - you can find the Offline Application Block at the following URL:


Posted by: Paul Laudeman | May 4, 2005 7:54:06 AM

Great Demo,

C# is the future, C# has more features than VB.net and less code.

Posted by: Lawrence Thurman | Jun 21, 2005 8:27:28 PM

Oh, this is excellent... great job on the explanation... now I just gotta figure out how to get the queued data when the application is offline.

Posted by: DJ Burb | Jan 23, 2006 8:49:03 AM

Greetings Scott,
It is good to see someone is paying attention to the OAB, if only to show the "basics" of using it. However, we at Seattle Public Utilities are actually trying to use it in the real world, for a real application, and are beginning to think it is "not ready for prime time". While the basic concept may (or may not) be valid, the complexity and obscurity of all the asynchronous stuff may be more than just a nuisance. It may actually not work correctly. We are finding the following issues with the OAB:
1. We have yet to identify a single other organization using it in the real world
2. The alleged "community" sites for discussion of this block have no one talking about it.
3. While it may work in demos, and under ideal conditions, we are finding that in the real world, we are losing data when the application transitions between states. We have had none other than Eugenio Pace himself visit our facility and attempt to help us troubleshoot the application, but to no avail.

We are currently looking for ANYONE who has implemented a real-world application with this code. If you know of such, PLEASE put us in contact with them.


Posted by: Lawrence Davies | Mar 12, 2007 7:10:10 AM

Hi Lawrence,

I am the product architect of an enterprise-class application using the SCOAB as the basis for our synchronization engine. We ported the SCOAB to .NET 2.0 and implemented a bunch of our own bug fixes.

Some areas you should pay attention to:
- Lifetime of objects (service agents, etc.)
- Threading and thread synchronization

What kind of data are you losing when your application transitions from online to offline mode and back? Cached reference data? Queued messages? How did you implement your proxy to pull down updated data?

Happy to help,
Joe Mozelesky

Posted by: Joe | Mar 13, 2007 3:45:20 PM

The comments to this entry are closed.