2009-06-16 5 views
3

これは恥ずかしくて基本的なnティアの質問です。亜音速:ティアに私を連れてください

私はVS2008で亜音速でDALプロジェクトを作成しました。ウィジェットクラス、ウィジェットコレクションクラス、ウィジェットコントローラクラスを持っています。

私はビジネスロジックプロジェクトを作成しましたが(同じ階層に置くことはできません)、それを参照しています。特定のビジネス基準を使用して、ウィジェットコレクションを返す関数内のウィジェットのコレクションを選択します。

私の質問は、私のGUIレイヤーがコレクションをグリッドにどのようにバインドするのですか?私はwidgetcollectionがデータグリッドの有効なデータソースだと知っていますが、どのようにGUIレイヤーがありますかどのようなウィジェットとwidgetcollectionはですか?確かに、GUIからDALを参照する必要はなく、その点を否定します。

+0

私はあなたの問題を解決することはできませんが、私は主題が大好き! – davidsleeps

+0

+1ロッキンのタイトル。 –

+0

これを見たときに私はほとんど泣いた... ...( –

答えて

0

まず、私はこれは厄介な基本的な階層型の質問ではないと思います。 これは非常に興味深いテーマです。私は古い亜音速フォーラムで議論を刺激しようとしました。

私は、自分のGUI層をDALに公開することを躊躇しています。

私のGUIレイヤーは、自分自身のエンティティモデルのボキャブラリとトピックを使用してBLLにしか話しません。自分のエンティティまたはリスト、場合によってはデータテーブルのみを返します。

私のBLLはフェッチ、セーブなどを適切なDAL CRUDメソッドにマッピングするMAPpingレイヤーとのみ話し、返されたサブソニックタイプを自分のエンティティタイプに変換します。

私はSubsonicのどれくらい複製しなければならなかったのかと驚いていました。間違った道を歩いていると感じていましたが、まだリファクタリングと洗練が必要ですが、今はもっと快適です。

たとえば、BLLに私が望んでいた行をフェッチで返したことを示すための柔軟性のある一般的な手段を見つけることは、私が期待していなかった難題でした。そして、流暢なインターフェースを備えた一般的なqueryClassサブソニックセレクトのようなものです。

FWIW、あなたは正しい軌道に向かっていると思いますが、どのようにしてSubsonicタイプをあなたのGUIに定義したいのか決めています。

ロブは、あなたがに興味がある可能性がありinteresting discussionを持っている。

0

(Using SubSonic 2.x)私のBLLクラスには、関連するDALクラスへのオブジェクト参照を与えるプロパティがあります。私のUIフォームはBLLクラスへの参照を持っているので、.BLL.DAL.xxxxを介してDALプロパティとメソッドを扱うことができます。

FWIW、私はDataGridViewにSubSonicコレクションを正常にバインドできませんでした。代わりに、ときどきコレクションの.ToTable()メソッドを使用してDataTableを作成し、それにバインドするか、または.AddRow()を使用して手動でバインドします。

+0

INotifyPropertyChangedハンドラを次のように追加した場合: http://code.google.com/p/subsonicproject/issues/detail?id=73 グリッド内のセルが変更されたとき(リストがプロパティ変更イベントを発生させるとき)に、グリッドの基本接続のSaveAll()を呼び出します。 –

0

MSDNのIBindingListインターフェイスのドキュメントを参照してください。かなり良いサンプル。 たとえば、BLLでCustomerクラスを使用する、CustomersListクラスをモデル内に作成します。グリッドをCustomersListクラスのインスタンスにバインドします。プレゼンテーション層には、亜音速の表のクラスについての知識はありません。

0

おそらくインターフェイスを使用する必要があります。 Dalのウィジェットに基づいてインターフェイスを簡単に作成することができます(クラスを右クリックし、クラスからインターフェイスを作成します)。次にInterfaceを取ってBusiness Logic Layerに追加するか、インターフェースのためだけに別のプロジェクトに追加します。これを済ませたら、DALとGUIの両方でインターフェースへの参照を追加することができます。これは、データベースからXMLなどにデータ記憶域を変更する場合にも役立ちます。

関連する問題