データストレージを抽象化するには、Webサービス(SOAP)、http web-api(REST)、またはその他のミドルウェアの作成を検討する必要があります。
これには次の利点があります:
- ビジネスロジックの多くをデスクトップアプリからミドルウェアに移行できます
- ボトルネックになる可能性のあるSQLからビジネスロジックを除外できます
- デスクトップアプリを再配布せずにビジネスロジックを更新できます(すべてのデスクトップを直接制御できない場合は簡単です)。
- 認証を制御できるようにします(多くのWebサーバーには独自のモジュール、認証方法があります)。アプリは、独自のサービスアカウントでアクセスを制御し、ストレージにアクセスします。
- データストレージを完全に変更できます(たとえば、将来的には、すべてのデスクトップを更新しなくても、一部をsql、一部をmongodb、一部をクラウドストレージに保存するとします。
- フロントエンドをスケールアウトし、場合によってはバックエンドストレージ(たとえば、DBレプリカの読み取り/書き込み)をスケールアウトすることもできます。
すでにC#を使用している場合は、新しいMVC4WebAPIが適しているはずです。詳細はこちら:
そのルートを使用すると、サービスのアクセスを制御し、接続文字列のクレデンシャルを介して、またはIISを使用している場合は、サイトにマップされたアプリケーションプールのクレデンシャルを介してサービスにデータベースにアクセスさせることができます。
デスクトップアプリを出荷している場合(DBをホストしていない場合)、顧客がIISをインストール/管理したくない場合は、独自のexeでweb-apiをセルフホストすることもできます。
最後に、mysqlがオンラインの場合、ミドルウェアはクラウドにある可能性があります(azureなど)