2009-04-17 5 views
3

私は現在、型付きテーブルオブジェクトにLinq-to-SQLを使用し、豊富なCRUDストアドプロシージャを外部サーバー上のMS SQLデータベースにラップするWPFクライアントアプリケーションを開発中です。コンテキストを介して直接データを操作することは予期しておらず、ストアドプロシージャだけです。WPFデータアクセスレイヤーアーキテクチャ

私の2つの最大の懸念は、次のとおりです。 1)データベースのセキュリティ 2)柔軟なアーキテクチャ私の知る限り

、アプリケーションがデータベース接続情報を格納し、インターネット経由でダウンロードすることが容易に利用できるようになりますので、アプリケーション自体はオプションではありません(セキュリティ上の理由から)。唯一の選択肢は、DALをWebサービスに入れていることだと思います。

ユーザー資格情報は操作単位で渡すことができ、データベース接続情報は安全なWebサーバーに安全に保存されます。

これはメソッドが有効かどうかが不思議ですが、そうであれば最適ですか? Linq-to-SQLオブジェクト(テーブルとストアドプロシージャの結果)を簡単にシリアル化して、クライアントとWebサービスの間でやりとりすることはできますか?

ありがとうございます。

答えて

3

あなたのアプリケーションがインターネット上で使用されている場合は、かなり中間層を配置する必要があります。

あなたがしていることが主にCRUDの場合は、ADO .Net Data Servicesをご覧ください。これは、RESTインタフェースを介してデータを公開する効率的な方法であり、クライアント側で型付きの方法でデータにアクセスするためのクライアントライブラリを取得します。

これは、ユーザーの資格情報に基づいてアクセスポイントを保護できるように(フォーム認証、メンバーシッププロバイダーなどの)通常のASP.Netセキュリティーメカニズムをサポートしています(そのためには、Client Servicesあなたのアプリとあなたのサーバーの間の認証のケア)。

これらのポインタが役立つことを願っています。