I’m invited by Microsoft Norway to be a speaker at the MSDN Live event this fall. We are going to visit Oslo, Stavanger, Bergen and Trondheim. The theme this time is Visual Studio 2008 (Orcas) and .NET 3.5.
I’m going to give a speech on a new technology in .NET 3.5 called Microsoft Synchronization Services for ADO.NET. It’s a framework for developing Occasionally Connected Clients. An Occasionally Connected Client is a term used when we talk about applications (clients) that relay on server side infrastructure (servers), and the client cannot interact with the servers over a network in a timely manner.
A Occasionally Connected Client scenario
I couldn’t really find a more suitable scenario than this one. In the first project I worked on as a consultant for Abeo, I was hired out to a large project for a regional energy production company in Trondheim. They needed a computer system to manage their field working engineers. So they equipped their engineers with a tablet PC. This tablet had a 3G card installed for mobile network communication. On this tablet we deployed a Smart Client application for integration with their legacy systems using Web Services.
With this tablet and the Smart Client the engineers could receive daily work orders (instructions) with addresses to the locations, detailed description of the work items and much more. I’m not going to detail it more than that, but you get the picture. They wanted to manage their field workers by equipping them with a pc enabled for mobile communication.
One of the biggest challenges was to design the client application so it would adapt into its environment. An environment there the client was integrating into the legacy systems over a mobile network (3G). The engineers are often working in basements of buildings or they are at the move while driving a car to their next work location. We could not trust that the network connection had 100% uptime, even not 50% uptime.
We developed lots of nice mechanisms to synchronize the client with the server while the network was available. So the client had all the data needed to work without a network connection. If the users stored new data or made some changes to existing data, these were propagated to the server when the network connection was available again. It works a lot like Outlook. You don’t need a network connection to write an e-mail. You just write it and hit the send button. When a network is available, Outlook detects it and sends the e-mail for you.
In my speech I’m going to draw parallels with our challenges and how the Microsoft ADO.NET Synchronization services could have solved many of them for us. And of course, I will have lots of demos and not so many slides. If you are curious about this technology you should check out Rafik Robeals article on CodeProject.
By the way, this project was implemented back in spring 2005 using .NET 1.1.
Looking forward to talk at MSDN Live!
Resources