Stepping through the examples
The easiest example to test is the ConnectionManagement quick start. This sample application allows you to simulate going on and off line. However, it only exercises the Connection management portion of the SCOAB. A more complete example is the Insurance Claims Client.
In the Insurance Claims example, rather than just testing for the presence of a network connection, you can actually see how changes to data are cached locally for transmission when the application can once again connect. The application allows you to download data to use locally while connected and then allows you to force the application offline, edit data and then reconnect and synchronize the changed data. Figure 2 shows the screen as an address is edited offline.

Figure 2. The Insurance Claims form while editing address offline
Given the current implementation of this example, if you were to exit the application before going online again, the changes would be lost. Again, it is important to remember that this is an implementation detail and not a limitation of the SCOAB. In the Insurance Claims example, the data on the "server" (the data that the application "downloads") is in an XML file. There is nothing preventing a program using the SCOAB from storing the changes in an XML file or even a database in the file system local to the application.Some of the files used to download data in this example are:
App.Config � Specifies configuration information for the application. This is an interesting file, in that it exposes a number of the details of how the system can be expanded. One thing that is obvious is the extensive use of the Provider model.
Controller.cs - Manages the interaction between the connection manager and the service agents. It registers itself to get notification of connection state change. It also creates an InsuranceClaimsClientServiceAgent and registers with it to initiate the transfer of work items.
InsuranceClaimsClientServiceAgent.cs - Initiates upload and download of the Work item information.
OnlineProxy.cs - Interacts with the remote service. In the Insurance Claims example, this is a Web Service.
I looked at the C# version. There are corresponding Visual Basic.Net files as well.
The Web Service used by this example exposes two Web methods, DownloadWorkItems(), which returns a DataSet, and UpdateWorkItem(), which expects a DataSet as a parameter. The UpdateWorkItem() method uses the Update method on a DataSet with the server-side rows, passing in the modified work items. This is a reasonably simple implementation, and again, in the real world, you would need to provide a more robust solution. The Web.Config file has an appSettings section that allows the connection string to be configured.
Exploring ways to expand the Smart Client Online Application Block
As previously mentioned, the SCOAB makes extensive use of the provider model. There are a number of providers that can be written to allow different behaviors.
![]()
![]() | Primer: Developing Multithreaded Applications This 106-page paper is a must-have reference for developing efficient ... |
![]() | WinFX: the new Windows API in Longhorn from Intel Corp. The introduction of WinFX API in Longhorn has so... |
![]() | Multithreaded technology and multi-core processors by Craig Szydlowski, Infrastructure Processor Division, Intel Corp. ... |
If you're interested in this topic, these articles may be helpful:
![]() | Mobilized applications and solutions: using intelligent documents as enterprise front-ends by Chris S. Thomas. Intel Corp. A growing number of large providers... |
![]() | Fat is the New Thin - Where Clients are Concerned I sat on a panel back in 1998 that was discussing fat versus thin clie... |
![]() | Consuming WebSphere Application Server Web services from Eclipse Rich Client Platform applications This tutorial teaches you how to configure an Eclipse® Rich Client... |
![]() | Persistence pays off, part 2: the client by Michael L. Perry, president and consultant, Mallard Software Design... |
![]() | Connecting Eclipse Rich Client Platform Applications to WebSphere Application Server V6 Service Integration Bus Learn how to write and configure Eclipse® Rich Client Platform (he... |
![]()
Related Jobs:
![]() | Software Development Engineer #150815 - WA - Redmond - Microsoft Corporation The MSN Mobile Search Team needs four highly experienced software engi... |
![]() | Software Development Engineer #150816 - WA - Redmond - Microsoft Corporation The MSN Mobile Search Team needs a highly experienced SQL developer an... |
![]() | Software Development Engineer in Test #146606 - WA - Redmond - Microsoft Corporation Are you looking for an exciting opportunity on a fast-paced and fun te... |
![]() | Program Manager #150742 - WA - Redmond - Microsoft Corporation The MSN Mobile Search Team needs several seasoned program managers wit... |
![]() | Software Development Engineer #150812 - WA - Redmond - Microsoft Corporation The MSN Mobile Search Team needs two highly experienced software engin... |
![]() | Software QA Engineer #57515 - CA - San Rafael - Autodesk, Inc. Software QA Engineer Location: San Rafael, California Autodesk... |
![]() | Program Manager #150741 - WA - Redmond - Microsoft Corporation The MSN Mobile Search Team needs several seasoned program managers wit... |
![]() | Network Technology Consultant - DC - Washington - PACCAR Inc Network Technology Consultant - 1 opening This position is responsi... |
![]() | Software Development Engineer in Test #141922 - WA - Redmond - Microsoft Corporation Are you looking for an exciting opportunity on a fast-paced and fun te... |
![]() | Software Development Engineer #150818 - WA - Redmond - Microsoft Corporation The MSN Mobile Search Team needs two highly experienced software engin... |


