I am developing an accounting system for a customer. This application has some special requirements. I leave the accounting system detail which are specific to accounts. I mention those points which are confusing me.
The application should work in Online and Offline environment. If user is working and suddenly Application goes offline User should be able to work offline. All offline work is stored in local database and sync next time to central database when Application connects to the internet.This application has many users and all will work at same time on same information.
For Example If a user enters an inventory item it is possible that another user also enter the same item at that time. Application should be able to validate correct information and prohibits user to duplication.
User local database must be updated all times either other users are working or not. If other users are working all updated information should be available in local database to ensure when user goes offline all information is updated.
The question is How to develop this kind of application? Is there any standard way to achieve this target? Is there any standard or non standard pattern to build this kind of software?
Please note I am using C# Dot Net and Intend to use .NET Remoting or WCF or ASP.NET MVC for this application.
Any kind of help will be appreciated. Thanks.