2

まず、この問題について彼女に関連するすべてのトピックを調べました。しかし、それらのどれも私の質問に完全に答えることに成功しませんでした。

現在、C#/ wpfでコード化されたデスクトップアプリに取り組んでおり、認証とユーザーカスタムリストの保存などの両方にMySQL接続が必要です。

ただし、問題は、明らかにすべての人がMySQLデータベースにリモート接続できるようにすることは良い習慣ではないということです。また、現在のホストでは、データベースに接続する前にIPをホワイトリストに登録する必要があります。

これに関する私のオプションは何ですか?

前もって感謝します

4

2 に答える 2

4

データ ストレージを抽象化するために、Web サービス (SOAP)、http Web-api (REST)、またはその他のミドルウェアの作成を検討する必要があります。

これには次の利点があります。

  • 多くのビジネス ロジックをデスクトップ アプリからミドルウェアに移動できます。
  • ボトルネックになる可能性のあるビジネス ロジックを SQL から除外できます。
  • デスクトップ アプリを再配布せずにビジネス ロジックを更新できます (すべてのデスクトップを直接制御できない場合は簡単です)。
  • 認証を制御できます (多くの Web サーバーには、独自のモジュールと認証方法があります)。アプリは、独自のサービス アカウントでアクセスを制御し、ストレージにアクセスします。
  • データ ストレージを完全に変更できます (将来的には、一部を SQL に保存し、一部を mongodb に保存し、一部をクラウド ストレージに保存するとします。繰り返しになりますが、すべてのデスクトップを更新する必要はありません。
  • フロントエンドをスケールアウトし、場合によってはバックエンド ストレージをスケールアウトすることもできます (たとえば、読み取り/書き込み DB レプリカ)

既に C# を使用している場合は、新しい MVC4 web-api が最適です。ここでもっと読む:

http://www.asp.net/web-api

そのルートに進むと、サービスでアクセスを制御し、接続文字列の資格情報を介して、または IIS を使用する場合はサイトにマップされたアプリケーション プールの資格情報を介して、サービスにデータベースにアクセスさせることができます。

デスクトップ アプリを出荷している場合 (DB をホストしていない場合)、顧客が IIS をインストール/管理したくない場合は、独自の exe で web-api をセルフ ホストすることもできます。

最後に、mysql がオンラインの場合、ミドルウェアはクラウド (Azure など...) にある可能性があります。

于 2012-08-17T11:45:49.777 に答える
2

WCF や MVC Web API などを使用して、アプリが資格情報を通過して認証できる Web サービスを作成します。トランスポート セキュリティのために https をお勧めします。

于 2012-08-17T11:56:40.507 に答える