5

ドメイン駆動開発、デザインパターン、依存関係注入、ORMなどのエンティティフレームワークのような異なるアプローチを使用して、ASP.NET MVC4で新しいアプリケーションを開始したい。どのようにasp.net mvc4でドメイン駆動型開発を効果的に活用するには?

開発の出発点?私はクラスの最初の関係から始めなければならないのでしょうか、伝統的なアプローチから始めるべきですか?たとえば、モジュールが3つあります。

  1. ユーザー管理。
  2. ロギング。
  3. エラーログ。

ドメインクラスのようなユーザー管理とそのサービス、そして実際のWebアプリケーションのCRUD操作を最初に完了する必要がありますか?その後は...ロギングから始まります(ユーザー管理と同じプロセス)。エラーロギングにも使用されます。

だから、こうしたコンセプトやツールを使って開発を始めるベストプラクティスは何ですか?

答えて

10

ASP.NET MVC4は、ソリューションのプレゼンテーションの一部にすぎません。ドメイン駆動型アプローチでは、ドメイン(通常は別個のライブラリプロジェクト)から始めて、プレゼンテーション(Webサイト、デスクトップアプリケーションなど)と永続性(あなたのドメインで宣言されたリポジトリとUIインタフェースの実装)を追加します。

ドメインモデルの作成から始まります(全体ではなく、その一部です)。次に、任意の順序でドメインモデルを使用するUIを作成し、Entity Frameworkを使用してドメインモデルを永続化するためのリポジトリを実装します。実際には、ViewModelsを使用する必要があります(そうしないと、POCOドメインオブジェクトはData Annotations属性などで汚染されます)。これは、ドメインモデルを使用するコントローラの一部です。また、依存性注入を介してコントローラにリポジトリ実装を注入します。

+0

ですから、まず私たちはすべてのモジュールのドメインモデルを作成し、プレゼンテーションの一部にそれらのドメインモデルを使用する必要があることを言おうとしています? –

+2

@DharmikBhandariはすべてのモジュールに必要ではありません(あなたが滝のDDDに行く場合のみ)。アプリケーションを繰り返し作成します。例えば。いくつかの集約ルートを作成します。次に、その集合体のリポジトリを作成します。次に、そのルートにCRUD操作のUIを追加します。この繰り返しの後、あなたはアプリケーションの作業スライスを持っています。その後、新しいオブジェクトやサービスでドメインを拡張し、永続性とUIを作成します。 –

+1

@ lazyberezosky:これはすばらしい答えでなければなりません。それは私の多くを助けます。どうもありがとうございます –

5

まず、システムのビジネス機能要件を調べて、まず価値の高い要件に焦点を当てます。要件を提供することに基づいて、必要に応じてビジネスドメインを記入して実装します。 BDDスタイルのプロセスに従えば、単体テストを使用してビジネス機能を追い出すことができ、ビジネス要件が進化するにつれてドメインが進化します。各ビジネス要件にはUIとデータアクセスコンポーネントが必要です。そのため、ドメインが進化するにつれてプレゼンテーションレイヤーとデータアクセスレイヤーにEntity Frameworkを記入することができます。ここではBDDに関する有用な記事のカップルです:

関連する問題