顧客向けの会計システムを開発しています。このアプリケーションには、いくつかの特別な要件があります。アカウントに固有の会計システムの詳細を残します。私を混乱させている点について言及します。
アプリケーションは、オンラインおよびオフライン環境で動作する必要があります。ユーザーが作業中に突然アプリケーションがオフラインになった場合、ユーザーはオフラインで作業できるはずです。すべてのオフライン作業はローカル データベースに保存され、次回アプリケーションがインターネットに接続したときに中央データベースに同期されます。このアプリケーションには多くのユーザーがいて、すべてが同じ情報で同時に動作します。
たとえば、あるユーザーが在庫品目を入力すると、別のユーザーもその時点で同じ品目を入力する可能性があります。アプリケーションは正しい情報を検証できる必要があり、ユーザーが複製することを禁止します。
ユーザーローカルデータベースは、他のユーザーが作業しているかどうかに関係なく、常に更新する必要があります。他のユーザーが作業している場合、ユーザーがオフラインになったときにすべての情報が更新されるように、更新されたすべての情報をローカル データベースで利用できるようにする必要があります。
問題は、この種のアプリケーションをどのように開発するかです。この目標を達成するための標準的な方法はありますか? この種のソフトウェアを構築するための標準または非標準のパターンはありますか?
私は C# Dot Net を使用しており、このアプリケーションには .NET Remoting または WCF または ASP.NET MVC を使用するつもりであることに注意してください。
あらゆる種類の助けをいただければ幸いです。ありがとう。