I completely agree that we live in connected world. Now-a-days everything is connected, we cannot even imagine smart phone without internet connectivity. However, in many case we cannot expect connectivity to server. Even in some case the nature of application itself demands to work in disconnected mode especially desktop application. Say for example, there is an application which uses large resources like high resolution images and high definition video files and these resources are needed frequently. Now every time downloading resources from server is not advisable architecture. We need to store those resources in local system and application should access only local resource for better performance and better usability. Another real time example would be for sales representative where he is on client side and could not connect to server even though he needed latest prices and catalogues to close the deal.
There are multiple examples of applications where occasionally connected smart clients are required which download needed data in local and do synchronization with server whenever necessary. Synchronizing between two applications in such architecture is crucial part. Microsoft itself provides practices for th
is type of application. But for a small and simple application designing such architecture is overkill.
This type of application should be developed to take maximum advantage of connectivity when it is available to make sure that both applications and data are as up to date as possible, without compromising performance of the application.