3

私は完全に興奮しているアプリケーションを開発するプロジェクトを手渡されています。問題は、ある特定の要件を実装する方法が完全にわからないことです。

アプリケーションはクライアント側のアプリケーションである必要があり (そのため、WPF を使用して開発しています)、リモート サーバーに対して CRUD 操作を実行する必要があります (他のユーザーもこのデータにアクセスできるようにするため)。私が立ち往生している主な問題は、このクライアント アプリケーションが特定のネットワークから実行されるだけでなく、コア ユーザーの 1 人が自宅からも使用することです。データを安全にインターネットに公開する方法がわかりません。

私はもともと LINQ 2 SQL だけを使用してアプリを開発していましたが、SQL Server を実行している専用のマシンにポートを転送するだけだと想像していましたが、それはおそらく恐ろしい考えです。いくつかの調査を行うと、WCF を使用してサービスを作成し、それをマシンで実行することになっているようです。代わりに、WPF クライアント アプリケーションにそれを使用させます。

特に、このプロジェクトを使用してWPFを学習しているので、これは少し余分な作業のように感じます。私はまだWCFを調べていません。別の選択肢はありますか?SQL Server をインターネットに公開するという当初のコンセプトは本当に悪いのでしょうか?

ありがとう!

4

4 に答える 4

1

SQL Serverをインターネットに公開するという私の当初の概念は本当にひどいものですか?

はい。多くの 警告があり、あなたは単にそうすべきではありません(私はその文のすべての単語を別のソースにリンクしたかったのですが、あなたは私のドリフトを捕らえます)。

WCFは、それを保護するための多くのオプションがあり、WPF内から簡単に使用できるため、間違いなくここに行く方法です。

データベースを公開して直接アクセスするのが最も簡単な解決策のように思えますが、それが最善の解決策とは言えません。いくつかの新しいテクニックを学ぶ必要がありますが、長期的にはそれから恩恵を受けるでしょう。

于 2012-04-25T10:04:02.333 に答える
1

まず、データベースをインターネットに公開することは避けるべきだという意見に同意します... それは、赤ん坊を森の中に一晩放置するようなものです (スポーツや利益のために徘徊する生き物がいます)。

ただし、いくつかのオプションがあります。たとえば、会社にネットワーク管理者がいる場合は、VPN をセットアップすることを検討できます。そうすれば、従業員はファイアウォール内の自宅から SQL Server に直接接続できます。

それができない場合、Linq-to-SQL を使用した WCF は悪い選択肢ではないと思います。私はこれら 2 つのアプリケーションを構築しましたが、それらはうまく連携して動作します。Linq-to-SQL テーブル エンティティ自体を WCF データ コントラクトとして使用しました。1 つお勧めしたいのは、CRUD 操作に単純なデザイン パターンを選択し、可能な限りそれに固執することです。つまり、Load、Find、InsertOrUpdate、および Save を使用するリポジトリ パターンです。

于 2012-04-25T02:20:45.397 に答える
0

WCFデータサービスを使用しない理由-http://msdn.microsoft.com/en-us/library/cc668772(v= vs.103 ).aspx 。安全である必要がある場合は、こちらのhttp://msdn.microsoft.com/en-us/library/dd728284.aspxを参照してください。

于 2012-04-25T09:56:12.597 に答える
0

この質問にはさまざまな角度がありますが、あなたが何を求めているのか理解できれば...

リモート ユーザーの問題を解決するには: SQL Server は、サービス アプリケーションとしてのソフトウェアが接続するためにインターネットに公開されるように安全に構成できます。または、SQL サーバーが存在するネットワークにリモート ユーザー VPN を接続することもできます。

開発アプローチについては、MVVM をお勧めします。WPF とうまく連携し、独自のカスタム データ レイヤーで最初に WPF を学ぶことができます。その後、慣れてきたら、リファクタリングして WCF を使用し、高品質のアプリを配信できます。

于 2012-04-25T02:16:13.007 に答える