データベースにSQLサーバーを使用するデスクトップアプリケーション(C#.NET 3.5)があります。しかし、クライアントから、データベースをそのままエクスポートして、接続せずにラップトップで使用できるようにするように要求されました。彼らは、親サーバーへの更新がこれらのオフラインクライアントに反映されないことを理解しています。
DataSetをバイナリ形式で保存してディスクに書き込み、それらのファイルをオフラインクライアントに送信する方法はありますか?
データベースにSQLサーバーを使用するデスクトップアプリケーション(C#.NET 3.5)があります。しかし、クライアントから、データベースをそのままエクスポートして、接続せずにラップトップで使用できるようにするように要求されました。彼らは、親サーバーへの更新がこれらのオフラインクライアントに反映されないことを理解しています。
DataSetをバイナリ形式で保存してディスクに書き込み、それらのファイルをオフラインクライアントに送信する方法はありますか?
このケースをカバーするツールとテクノロジーの全ライン、つまりSynchFrameworkがあります。データベースの同期を参照してください。SQLServer中央データベースと同期されるクライアント上のSQLServerCompact Editionファイル(.SDFファイル)を含む開始例については、 「はじめに:クライアントとサーバーの同期」を参照してください。クライアントはアプリケーション以外のものをインストールしないことに注意してください。SQLServerCEは、アプリとともに配布するインプロセスDLLのほんの一部であり、クライアント上のSQLExpressエディションほど複雑ではありません。
幸いなことに、Synch Frameworkを使用すると、クライアントはデータベースの外出先で独自のスナップショットを取得できるだけでなく、切断中に適用された変更を中央サイトにマージして戻すことができます。
Compact Edition(別名SDFファイル)を使用するか、組み込みの方法を使用してデータセットをXMLとして保存することができます。
SQL Serverレベルのバックアップを取り、ラップトップにSQL Server Expressなどをインストールして、そこでデータベースを復元することはできませんか?
そうすれば、アプリで特別なことをする必要はまったくありません。接続文字列をローカルのSQL Server Expressインスタンスを指すように変更するだけで、すぐに使用できます。シリアル化されたデータセットなどをいじくり回す必要はありません......