2017-08-31 15 views
0

こんにちは私は最近のWeb API 2を学んだと私はnow.I流れリポジトリパターンとWeb APIを

コントローラ=>ビジネス・レイヤー=>データ私のproject.Thisにおける階層化アーキテクチャされ、次の午前サンプルプロジェクトに取り組んでいますレイヤー

今、私は最近よく聞こえるリポジトリパターンについての記事を読んでいます。

私は

コントローラ=>サービス=>リポジトリ

のような流れは二つの流れとの間の有意な差はありましたか? どのスタイルのアーキテクチャーを流すべきですか? 誰かが私にこれらのパターンを理解するのを助けることができますか?

+0

リポジトリがDataAccessLayerを実装するだけで、別の方法です。データアクセス層では、ADO.NETクラスを使用する代わりに、Entity FrameworkやNHibernateなどのORMによってバックアップされたリポジトリを使用できます。同じように、サービスレイヤーは、マネージャークラスではなくサービスクラスを持つビジネスレイヤーと呼ぶことができます。しかし両方とも、検証などのビジネスロジックを表すコードを持ち、DALまたはリポジトリと統合されてデータの取得と保存を行います。 –

+0

どのようなアプローチを選択しても、基本的な原則のいくつかは、契約による設計、制御の逆転、依存関係注入などの両方に適用されます。 –

+0

サービス=ビジネス層とリポジトリ=データ層?エンティティフレームワークを使用しているので、私が言及した第2のフローに変更すればどのような利点がありますか? –

答えて

0

サービスをリポジトリで使用するときは、一般的なものにしてUnit of Work(UOW)を使用して、すべてのエンティティでCRUDアクションを繰り返さないようにする必要があります。次に、Entity Frameworkのようなオブジェクトリレーショナルマッパー(ORM)を追加します。また、ドメインオブジェクトを使用してロジックを格納し、サービスをデータ転送オブジェクト(DTO)に戻すことをお勧めします。これは、サービスを小さくしてきれいに保つことです。次に、DTOをDomainオブジェクトにマッピングするためのマッピングツール/ロジックを追加する必要があります。

あなたはこれがどこにあるのかを見ています。突然、必要以上の複雑さと障害があります。顧客が気にすることは、あなたの製品の品質であり、派手なアーキテクチャではないからです。

しかし、プロジェクトが成長するにつれ、適切なアーキテクチャや自動テストなどが重要になり、大規模プロジェクトでは有効です。実験して勉強したいのであれば、それは素晴らしいチャンスだと思いますが、プロダクションでアプリケーションを実行していれば、大きな変化はしません。

TLDR:彼らは両方とも有効

関連する問題