2009-10-25 3 views
8

私はASP.NETを学ぶ過程にあります。私はその件についていくつかの本を買った。 これらのすべては、ObjectDataSource/SqlDataSourceなどのようなデータソースコントロールを使用することが進んでいることを示唆しています。さて、私は確かに、実際にはそれほど遠くない、その分野の専門家ではありません。しかし、私はこれらがおもちゃのツールであるという強い感情を持っています。私はこれらのクラスが実世界のエンタープライズグレードのアプリケーションで使用されると信じています。私は正しい?あるいは、これらのクラスは実際に大規模なWebアプリケーションの場所を持っていますか?ASP.NETでデータソースコントロールを使用するのは本当にプロフェッショナルですか?

おかげで、 アビ

+0

まあ、意見が混ざり合っているのが分かります。 私はそれを試してみると思います。ただ、私は最初の印象を受けます。 私は最後にそれを放棄する気がします。サーバー側の開発の背景から、UIレイヤーにロジックを置くことは非常に難しく、単に宣言的なものでもあります。ありがとうございました:) –

答えて

10

は、これらのコントロールは、それらを理解せずにそれらを使用するため、下手開発者に悪い評判を得ていて、プロの開発者は、結果として、それらを見下ろします。私があなたに与えることができる最高のアドバイスは、専門家が最も適切なツールを使い、途中で仕事を終わらせることです。これらのツールがあなたのために仕事をするならば、それらを使用して、人々があなたのためにあなたを置かないようにしてください。

1

カテゴリがドロップダウンリストのように、クエリが単純な場合は、バインドされたコントロールを作成するのに最適です。彼らはカスタム検索やそれに類することのためにかなり痛いです。ケースバイケースでアプローチを評価してください。

0

個人的に私は自分自身を結びつけることを好みます。格納されたprocsを実行してデータを取得し、データバインディングを使用せずにデータ入力コントロールに割り当てるのは簡単です。変更されたデータを取得し、必要に応じて追加、更新、または削除することも簡単です。データソースクラスは、不要な余分なレイヤーと思われるものを追加します。彼らが私のやり方よりもかなりシンプルであれば、私は彼らに一撃を与えるかもしれませんが、私にとってはかなり複雑なようです。そして、私がこれを証明するためのベンチマークデータを持っていなくても、それは効率が悪くなければならないようです。

1

はもっと同意できませんでした - などなどHTMLを使用して、データベース接続のもの、潜在的なビジネスロジックに混合して、ユニットテストの現代の世界では非常に悪い考えで、DDD、TDD、など

あります彼らが適切である状況(急いで行う必要のある報告作業の中で最も簡単なものかもしれませんが、一般的にはそれらを避けてください)。

2

私は、ObjectDataSourceを使用することは合理的です、実際には実際の中間層のオブジェクトと話していると仮定することができます。特に開発者がODSを拡張してミドルティアで遊ぶならば。

他のものは、私の店であなたの指が壊れてしまいます(2回目の犯罪)。

2

ASP.NETについてまず理解しなければならないのは、サーバーコントロールに関連するすべてのもの、およびWebフォームのパラダイムは、Response.Write()ほど優れたパフォーマンスを発揮しないということです。ウェブフォームのアイデアは、できるだけ早くA点からB点にあなたを導くことです。だから、WebFormsを選択する前に、自分自身に尋ねてください。これは私のアプリにとって最高のフレームワークですか?交通量の多いウェブサイトやデザインパターンを気にする人は、間違いなくMVCを選択します。

ウェブフォームを選択すると、データソースコントロールを使用することを強くお勧めします。それはあなたの人生を楽にします。私はエンタープライズグレードアプリケーションをどのように定義するのかわかりませんが、データソースコントロールは素晴らしいことを達成できます。 LinqDataSource、EntityDataSource、新しいDomainDataSource、新しいQueryExtender、およびこれらがどのIQueryableソースでもどのように機能するかを調べることをお勧めします。

3

私はWyattに同意しました。私はもう少し詳しい情報を追加しなければなりません。すべてのデータソースオブジェクト(ObjectDataSource以外)の問題は、アプリケーションを論理層(UI、ビジネスロジック、データアクセス)に分割できないことです。すべてのデータアクセスコードをUIに配置していますが、これはプロジェクトのアーキテクチャーの観点からは非常に悪いことです。

+0

返信ありがとうございましたJason。 あなたのコメントに何か質問があります。 ObjectDataSource以外の多層アプリケーションでは、すべてのデータソースコントロールが実際に問題がある可能性があると述べました。あなたは、この特定のコントロールが実際にマルチティアアプリケーションで使用できると言っていますか?可能であれば、このようなシナリオで使用することをお勧めしますか? ありがとうございました –

+0

ObjectDataSourceは、ビジネス層のオブジェクトに「フックアップ」できるため、多層アプリケーションで使用できます。これは、多層アプリケーションを使用してバインドされたデータソースのすべての機能にアクセスする方法として、間違いなく使用できます。 –

1

データソースコントロールがコードを直接フォームに挿入するというステートメントは、必ずしも正しいステートメントではありません。通常、コントローラクラスがあり、データソースコントロールをコントローラのメソッドにバインドします。

あなたはまだ中間層とそれ以外のものを持っています。 1つのポスターが記載されているように、通常、これは経験豊かな開発者で、なぜこれらのコントローラーが貴重なのかを壊してしまいます。彼らはページのすべての配管を処理し、あなたはまだUIと中間層(コントローラ)を分離しています。

しかし、これは、データセットに反対のドメインオブジェクトを好むoopプログラマの方が多いかどうかによっても異なります。

関連する問題