4

現在、アプリケーションのアーキテクチャとデザインを刷新しています。XML とリフレクションを使用してデータを永続化するという意味で汎用的なデータ アクセス レイヤーの設計が完了しました。

いずれにせよ、今はビジネス層を設計する段階にあります。エンタープライズ アーキテクチャとデザインに関連する本を何冊か読んだので、ビジネス レイヤーに適用できるパターンはほとんどないことがわかりました。テーブル パターンとドメイン モデルは、そのようなパターンの例です。また、ドメイン駆動設計も発見しました。

前に、テーブル オブジェクトに対してエンティティを構築することにしました。しかし、DDD に関しては、エンティティと値オブジェクトに違いがあることがわかりました。そんなデザインを経験したあなたへ。パターン、練習、サンプルについて教えてください。

前もって感謝します!また、私の意見が通らなかった場合は、お気軽にご相談ください。

4

3 に答える 3

3

@Adil、これは元の質問に対する回答ではありませんが、独自のデータ アクセス レイヤーを展開するという決定を修正することをお勧めします。あなたは NHibernate に行きたいと言いました: すぐに実行してください。

IMO、非常に具体的な制限がない限り、ORM を書くのは時間の無駄です。そこには豊富なオプションがあり、それらにはすでに何百時間もの労力が注がれています. それを活用してください!LINQ2SQL、エンティティ フレームワーク、NHibernate、Subsonic、LLBLGen はすべて優れており、他にもあります。

また、自分で作成した場合、LINQ の優れた機能を十分に活用することはできません。

レイヤー化に関する限り、気を抜かないようにしてください。レイヤーの数を抑え、代わりにレイヤー間の価値のあるインターフェースを構築して、抽象化の漏洩を防ぐことに集中してください。

非常に「パターン化された」美しく階層化されたプロジェクトを数多く見てきましたが、使用中にロジックがどこにでもあり、永続化の抽象化がいたるところに漏れていました。複雑にしないでおく!

于 2010-06-10T02:57:12.463 に答える
0

CSLA.NETは、ビジネスレイヤーのベースとして非常にうまく機能します。

于 2010-05-25T05:30:44.093 に答える
0

@アディル、

とにかく、私はあまり経験豊富なユーザーではありません。これは私が使用している種類のモデルです (NHibernate でも)。

GUI - すべての Web フォームなど BLL - 新しいオブジェクトのインスタンスの作成を担当するカタログ DAL - NHibernate との対話を担当するクラスが実装される場所。NHibernate マッピング ファイルはここにあります。

モデル - BLL と DAL の間でオブジェクトを転送するために使用されるクラス ライブラリ。

さまざまなパターンが使用されます。たとえば、BLL と DAL には、インターフェイスへのアクセスを許可する Factory クラスがあります。カタログは Singleton クラスです。すべてのカタログは、ビジネス ロジックの最上位オブジェクトを表すマスター シングルトン クラスを使用してアクセスできます (たとえば、"Enterprise" => "Enterprise.PeopleCatalog".

とにかく、それが役に立てば幸いです...

@AngryHacker、ヒントをありがとう、CSLA.NETの例を教えてください。

于 2010-05-25T08:57:40.923 に答える