ASP.NET アプリケーションは本当にクライアント データベースに接続する必要がありますか? これは良い考えとは思えません。
- 反対側のネットワークを制御することはできません
- クライアントは、データベースなどを削除/変更/削除することができます
- 通常、ほとんどの人は、データベースがファイアウォール ルールや VPN で保護されていても、インターネット経由でデータベースへの接続を許可することを快く思わないでしょう。
- 外部ソースから内部リソースへの認証を許可することに消極的
いくつかの代替ソリューションは次のとおりです。
ポーリング:
クライアント側で実行され、ASP.NET アプリケーションに接続し、データを受信してデータベースに挿入するアプリケーション。これは最初の意図と似ていますが、若干の違いがあります。クライアントが通信を開始するため、接続について心配する必要はありません。ローカル アプリケーションは、データベースのチェック、ビジネス ルール、ASP.NET アプリとの HTTPS 通信などのセキュリティの適用も実行できます。
クライアント/サーバー:
ポーリング ソリューションと同様に、クライアント側に通信をセットアップする別のアプリケーション (WCF net TCP / http SOAP など) を用意し、クライアントを ASP.NET アプリケーションに登録してから、データを送信することができます。プッシュ アーキテクチャで必要なときにいつでも。
上記の両方のソリューションは単純なアイデアであり、完全な実装ガイドラインではありませんが、他の方法を検討するのに役立つ場合があります。
サービス:
データをローカルに保存し、クライアントがデータベースに直接書き込むのではなく、データを受け取る方法を提供できますか? たとえば、各クライアントの RSS / XML フィードですか?
代替案が実装要件に適さず、多くのクライアント インフラストラクチャに接続する必要がある場合、内部の IT ポリシーに応じて、上記のすべてのオプションをサポートする必要があると思います (外部接続を受け入れることさえ許可されている場合)。 )どちらを好むかを規定する場合があります。