1

何度も Google で検索した後、ばかげた質問をする危険を冒して、私はいくつかの助けを借りることができました. インターネット上にある SQL Server 2012 データベースからデータを読み書きするために ADO.NET を使用して C# WinForms クライアント アプリケーションを開発しています。同じアプリケーションで、データ ファイルをアップロード/ダウンロードする必要もあります。クライアント アプリケーションは、ごく少数の従業員 (これまで) のみが使用します。従業員はすべて別の場所にいます。データベースはわずか約 20 MB です。約 100 個のデータ ファイルがあり、合計で約 300 MB が定期的に個別にアクセスされます。SQL Server 2012 は、完全に制御できる (非仮想) Windows Server 2008 R2 マシンで実行されています。クライアント アプリケーションは、Win-XP および Win-7 マシンで実行されます。

優先事項は 1. インターネット セキュリティ – ハッカーを Windows Server マシンから遠ざけ、クライアント/サーバー通信から遠ざけます。2.パフォーマンス。3. シンプルさ。企業のセキュリティとスケーラビリティは問題ではありません。また、ソリューションが複雑なオーバーレイである場合、パフォーマンスはそれほど重要ではありません。

私が本当に助けを使うことができる2つの関連する質問:

  1. 上記の優先順位を考えると、データベースと通信するための最良の方法は何ですか? 私が見つけた唯一の2つのオプションは排他的です。WCF サービスまたは VPN 経由で直接。

  2. 繰り返しますが、上記の優先順位を考えると、データ ファイルをアップロード/ダウンロードする最良の方法は何ですか? これには、VPN、WCF、FTP を使用する多くのオプションがあると確信しています。しかし、私は詳細を知りません。また、SQL Server 2012 FileTable を使用することは有望に見えますが、それが Web 上でどのように機能するかはわかりません。バックアップ/復元に加えて、データに対して全文検索を実行できることは、優れた機能ですが、要件ではありません.

VPN とは何かは知っていますが、これらの目的で VPN を使用したことはありません。PPTP にはいくつかのセキュリティ上の問題があることは承知していますが、しばらくの間 XP マシンをアップグレードする予定はありません。WCF サービスが何であるかは知っていますが、作成したことはありません。この場合、SOAP と REST のどちらが優れているかもわかりません。SQL Server で FileTable を作成しましたが、データにリモートでアクセスする方法がわかりません。C#、ADO.NET、および SQL Server について十分な知識があります。

I realize these are big questions with subjective answers. Still, any ideas or a shove in the right direction would be greatly appreciated.

4

2 に答える 2

1

シンプルに保ち、標準的なメカニズムを使用してください。私の推奨事項は次のとおりです。

  • 必要な操作を実行できる WCF サービスを構築します。SOAP または RESTful サービスを構築できます。ここでの私の一般的なガイダンスは、RESTful サービスを構築することです。これは、ファイルを転送しているためであり、これは REST とより統合されています。SOAP では、大きなファイルを転送するためにいじる必要があるいくつかの設定があります。
  • SSL を使用してサービスを保護し、シンプルに保ちます。VPN は複雑さの追加レイヤーであり、このシナリオでは必要ない可能性が非常に高くなります。さらに、ユーザーの利便性を低下させるだけです。
  • ニーズに合わせて SQL Server 2012 でを使用することはお勧めしません。FileTableあなたはサーバーを所有しているので、ファイルを送受信するとき、ファイル システムを扱うのははるかに簡単です。
  • また、ユーザーのセッション キーを作成して返す単純なフォーム認証プロセスを構築することもできます。これが必要かどうかはわかりませんが、追加のレイヤーが必要な場合は、それを操作の 1 つにしてください。次に、そのセッション キーを各メソッドに渡し、操作を実行する前に検証できます。SSLを使用しているため、これは安全です。

これは、RESTful WCF サービスを構築するのに役立つチュートリアルです。これはかなり新しいものです。

于 2013-01-15T14:00:21.767 に答える
0

My recommendation would be to deploy a VPN server to provide the security you are looking for. There are a number of good VPN servers available, and a Google search should provide a number of options at varying price points.

Once you have deployed the VPN server (and clients to all computers not on your local network that you would like to be able to access the database), you can use ADO.NET to access the database. ADO.NET will work seamlessly behind the VPN.

From the context of your question I am assuming that the files are stored in a file system outside of the database, and the database merely references the files. If this is the case, you could use any number of options for downloading the files, but FTP is a time-tested, easy-to-implement solution. There are others that may or may not work better in your situation (see here for a few options).

于 2013-01-14T11:40:12.997 に答える