2

私は現在、大規模なWebプロジェクトを構築しており、すべての正しいことをしようとしており、物事をファサード、サービス、DAO(リポジトリ)、ヘルパーなどに分割しています

NinjectでDIも使用

さて、これはプロジェクトの開始が近づいているためかもしれませんが、データベースで単純な呼び出しをセットアップするだけで永遠にかかるように感じますか?

新しい呼び出しを行うか、何かを実行するたびに、各サービス レイヤーを介して少なくとも 4 つのメソッドを記述し、すべての方法を元に戻す必要があります。db レイヤーで何かを変更するたびに、ドメイン オブジェクトを介して変更を手動でレプリケートし、DAO オブジェクトをドメイン オブジェクトに手動で変換するメソッドを更新します (部分クラスを使用して、DaoObject のコンストラクターで DomainObjects を受け入れ、各 DaoObject で ToDomainObject メソッドを使用します)。

各 DaoObject をループして、DAO メソッドを読み取るたびにそれをドメイン オブジェクトに変換するのは面倒です。

エンティティ フレームワークである DBfirst を使用しています。このプロセスをより DRY にするためにできる賢い方法はありますか、それとも、アプリの基本的な土台が構築されるまで待つだけでよいのでしょうか?特に、既存のサービスを組み合わせて新しいサービスを作りたい場合に有効です。

特に、ビジネスロジックレイヤーでのDAOオブジェクトの手動再作成は肥大化したように感じますが、実際の考え方は、DAOレイヤーが実際にビジネスレイヤーにマッピングされているということだと理解できます.コンテキストデザイナー。つまり、ビジネス層は、実際にどこから来るかを気にせずに、必要なデータを決定します。

どんな助けでも感謝します。

4

2 に答える 2

1

新しい機能を追加する時間を確実に短縮する方法の 1 つは、AutoMapperを使用して DAO をドメイン オブジェクトに自動的に変換することです。退屈な手動プロパティ マッピングはもう必要ありません。

すべてのレイヤーを適切に分離すると、追加の配管作業が必要になりますが、すべての論理コンポーネントがきれいに分離され、テストと交換が容易になります。大規模なプロジェクトであるため、オーバーヘッドは長期的には間違いなく報われると思います。

于 2012-05-10T09:10:32.470 に答える
0

T4 テンプレート生成機能を見てください。DAO への変更に基づいてエンティティを生成/再生成するために使用できます。

http://www.blogfor.net/2009/09/03/generating-business-layer-code-t4-against-a-linq-to-sql-dal/を見てください。

http://imaginarydevelopment.blogspot.in/2010/01/t4-generates-my-business-objects-for-me.html

いくつかのアイデアを得るために。

于 2012-05-10T11:46:24.863 に答える