2009-03-17 10 views
0

ここでは、Newbieから.NETへのデータアプリケーションは、Visual Foxproのバックグラウンドから来ています。データアクセスレイヤーnewbie

私は、ASP.NETやSilverlightのUI、さらにはWPFクライアントの情報もLAN上に用意していますので、これらすべてのフロントエンドをサポートできるデータアクセスレイヤーを作りたいと思っています。

私のデータはSQLサーバーにあります。私はFoxProからSQL Server 2005にデータをプッシュするテストを既に行っています。うまくいっています。それは私にSQLサーバーデータストアを提供してくれました。

さて、ここでの.NETデータアクセスに精通取得しようと、私はこれまでと遊んだデータツールです:

  1. 私は、LINQのツーSQLで演奏し、テストフォームを作りましたタイプされたオブジェクトとL2Sのコレクションを使用して、WPFのリストビューやその他のUIコントロールを設定します。それはクールでした。 Linqはクールです! WPFはクールです。ここのフォームのスクリーンショットをご覧ください:http://twitpic.com/26w26/full

  2. 私は古典的なADO.Netデータセットと呼んでいただろうと思います。男は、データセットは A SQLConncetion A SqlCommandオブジェクト AのDataSet A TableAdapterの

...多くの作業のように見える...とすべての最悪、私は絶対に、引用符でSQLコードを入力しなければなりませんでしたIDEからの入力エラーを防ぐための助けがない、あるいは間違ったSQLコードを書いているだけで、毎回私のデータテーブルの列名を知っていなければなりませんでした。エラーの多くの部屋!クエリのパラメータ、yuck。

.NETの開発者コミュニティは実際にSQLCmds、DataSets、およびDataTableを使用してデータを読み書きしますか?それはどういう仕組みですか?

O/RMの戦いとEFについても知っています。

ASP.NET/Silverlight/WPF/WinFormsのUIコントロールのいずれかをオブジェクトコレクション(OR/M経由)またはDataSets/DataTablesのいずれかに接続できますか?それはいつもそれらの2つの間の選択ですか?

だから、それは私の決定時間ですが、私はそれを選択するのか分かりません。それらはすべて動作するように見えますが、DataSetのことはちょっと恐ろしいようですが、どういうわけか、一般的に使用されているようです。

答えて

1

私は古典的な古いADO.NETを長年使用してきました。大規模なアプリケーションでは、データレイヤーを作成してから、他の多くのビジネスオブジェクトで再利用することができます。

その他のオプションのカップル:

  1. 強く型付けされたデータセット。データベースオブジェクトをドラッグアンドドロップすることができる厳密に型指定されたデータセットを作成し、多くの配管コードを生成することができます。

2 linqデザイナーにオブジェクトをドラッグアンドドロップすることもでき、データの接続や操作に使用するdbmlファイルを生成します。

私は最近、Linqのバンドワゴンに乗りました。データをオブジェクトとして扱うと、あなたの人生は単純化されます。

幸運を祈る!

0

ADO.NETの「クラシック」(DataSet/DataTable API)には何も問題はなく、少なくとも1回はORMではなくむしろ使用することにしました。つまり、ADO.NETの「クラシック」がよく使用されるという事実は、主に歴史の成果物です。長い間、これは唯一実行可能な選択肢でした。特に、Microsoftのみのソリューションを採用したい場合は特にそうです。

0

実際にデータセットを使用する人は、IDEを使用して厳密に型指定されたデータセットを作成します。

これを使用すると、SQL Management Studioのクエリビルダに似たビジュアルクエリビルダーが作成されます。パラメータを使用して、ロード/保存などの機能を生成します。

データセットがどこからでも見えるという事実は、現在までに利用可能な唯一のソリューションであり、どこでもSQLを手でコーディングすることができなかったことが主な原因です。

最近のORMはすべて激怒し、本当に素晴らしい抽象レイヤーを提供します。

2

まず、SilverLightにデータを取得する唯一の方法は、WCF Webサービスを経由することです。 Silverlightではデータベースへの直接アクセスが許可されていません(後でブラウザを実行しています)

2番目:データセットは悪です。悪魔の直接の産卵。誰かがあなたの頭に銃を持っていない限り、すべての費用を避けてください。問題1はパフォーマンスです:何もありません。問題2はデータ消費です:1kは自動的に3kに変わります。デスクトップアプリケーションにとって大きな問題ではありませんが、Webアプリケーションにとっては大きな問題です。

第3:ドメインオブジェクトを作成することが何を意味するのかを学びます。そこから、EFまたはNHibernateを使用することができます。私はNHibernateが好きですが、学習曲線があります。良いドメインオブジェクトを取得したら、それを指定したクライアントに渡すことができます。

関連する問題