新しいプロジェクトを開始しています。私はDDDのアプローチに従いたいと思っています。私たちはビジネスと話し、ドメインについてある程度の詳細な洞察を得ることができました (インターネット TV)。
チームは 5 人で分散しています。データアクセスにはリポジトリパターンを採用しています。私たちは全体的にサービスベースのアプローチに従っています。一部の操作は REST API を介して公開し、一部は独自のクライアント アプリケーションを介して公開します。
ORM の経験がない人 (私も現時点では大量に持っているわけではありません) は、エンティティ間の関係を持たないエンティティをモデル化したいと考えています。これは、リポジトリを使用する開発者が ORM がどのような影響を与えるかを正確に知る必要があるという理論的根拠があります。データベースに持っています。私が指摘したいのは、これは非常におしゃべりな一連のサービス、維持およびテストするコードの増加、そして根本的に要点を逃したドメイン モデルになるということです。私はこれが良いアプローチだとは思いませんし、私が話をした人もそうではありません。
このアプローチの実装に対する彼らの望みは、リポジトリ ファサードの下の Linq2SQL です。これには、2 番目のモデル、モデルとドメイン モデル間のマッピング クラス/レイヤー、および汎用リポジトリを作成することが (これまで見てきたように) 不可能であるように見えるため、リポジトリ内で多くの複製が必要です。また、継承を利用する L2S エンティティをマップすることもできません (つまり、すべてのエンティティには、作成者、作成者などのプロパティが必要です)。
1 番目の質問: 考えを変える方法について誰かアドバイスをもらえますか? 私は、NHibernate を使用するサイド プロジェクトを作成中です。これはもちろん DDD アプローチをサポートしていますが、これは「コードを見せてください」が強力な議論であることに基づいています。
2 番目の質問: NHibernate を使用した on-my-own-time サイド プロジェクトで、どのようなことをデモンストレーションする必要がありますか? 私はそれに慣れていません。彼らが NHibernate を嫌う理由の 1 つは、学習曲線と XML の要件です。私の反論は、これは強力なツールであり、Fluent NHibernate は XML の必要性を排除するというものです。彼らはまだそれが好きではありません。