何度も 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つの関連する質問:
上記の優先順位を考えると、データベースと通信するための最良の方法は何ですか? 私が見つけた唯一の2つのオプションは排他的です。WCF サービスまたは VPN 経由で直接。
繰り返しますが、上記の優先順位を考えると、データ ファイルをアップロード/ダウンロードする最良の方法は何ですか? これには、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.