1

デスクトップ ユーザー向けの別の Access フロントエンドおよびバックエンドである DMZ で SQL Server を使用して、公開 Web サイトとして現在存在する単純なアプリケーションを再開発しています。また、ネットワーク アクセス (またはインターネット アクセス) のないフィールド クルー用のアクセス バージョンをローカルにインストールする必要があります。

3 つの使用シナリオすべてを達成できるアプリケーションをゼロから開発しようとしています。

  1. ネットワークに接続しているデスクトップ ユーザー
  2. ネットワーク接続やインターネットを持たないラップトップ ユーザー
  3. 公開 Web ページのユーザー

アプリケーションについて少し。ファイル システム上の 100,000 以上の tiff イメージで構成されます。データベースには、画像に関するメタデータと、画像への相対 URL が格納されます。画像テーブル、ユーザー テーブル (誰がそれを使用してパーミッションを追跡するため)、および履歴テーブル (誰が画像テーブルで何を編集したかを追跡するため) があります。このシステムは、ネットワークに接続されている約 3 人だけで編集されています。これは主に検索システムです。

私はwinformsとEF 4から始めましたが、それは私のニーズに対してかなりやり過ぎであることに気付きました. 質問は次のとおりです。実行時にデータベースとファイルをローカルにキャッシュして「アプリをオフラインにする」ことをサポートし、オフィスに戻ったときに同期する方法はありますか? (ある場合、そのオプションを選択しない場合は、インストール時に空のSQLデータベースをPCに配置しないことをお勧めします。これは、各ラップトップにデータベースを事前にインストールできるためです。必要になるのはラップトップのみであるため)

データベースとして ADO.net を使用するだけで、クエリは簡単に実行できますか? EF から得られるものはありますか? 関係はほとんどなく、ビジネス ロジックなどが異なります。唯一の複雑なクエリは、AND/OR のフィールド値のリストなどを使用してファイルのメタデータを検索する検索です。

4

1 に答える 1

0

あなたのシナリオでは、優れたNoSQLデータベースに一致するDBだと思います。CouchDBを見て、同期(レプリケーション)を備えたストレージのように使用します。

CouchDBについての引用:

CouchDBは、異なるマシンで実行される複数のDBレプリカをサポートし、それらのデータを同期するメカニズムを提供します。これは、時々接続されるアプリケーション(PDAなど)で役立ちます。この場合、ユーザーは切断モードで一定期間作業し、データの変更をローカルに保存できます。後で企業ネットワークに接続し直すときに、変更を企業DBに同期することができます。

ここまたはCouchDbサイトの本「CouchDB:TheDefinitiveGuide」で詳しく読むことができます。

CouchDbにはRESTAPIがあるため、任意のRESTクライアント(WebClient / HttpWeRequestも含む)またはRestSharpライブラリなどを使用できます。

または、 MongoNoSQLデータベースの側面を見てください。これには、GridFS(分散ファイルストレージ)と呼ばれる優れた機能があり、大量のバイナリデータを処理するのに役立ちます。そして、ほぼ同じですが、Mongoレプリケーション機能を使用します。

于 2012-05-11T19:11:27.190 に答える