2011-12-05 4 views
1

私は、Entity Frameworkデータモデルとそれらのエンティティを使用して共通の機能を提供するクラスのコレクションを含む.NET 4クラスライブラリを用意しています。これらのクラスは、さまざまな種類のアプリケーションで使用されます。他のクライアントにEntity Frameworkエンティティを公開する

私の質問は、クラスライブラリに含まれるエンティティを他のアプリケーションに公開することをお勧めしますか?

+0

なぜそうではありませんか? –

答えて

1

あなたの実体は、あなたの永続性を満たすのに十分進んでいる場合を必要としドメインニーズ(または外部アプリケーションのニーズ)とずっとまたは「クロスレイヤ公害」の低可能性はありません私はそれが良い習慣だと言う。それはまた、アジャイル開発の意味では良い練習になるかもしれません。

時間が長いと、純粋主義者があなたの傾向がより強い場合、永続性、検証に対処するために属性を追加するなど、カップリングを増やしているため、悪い習慣になり始めます。 、およびシリアル化。

影響を最小限に抑えるために、AutoMapperのようなもの、生成されたコード、または手書きのファサード、サービスレイヤー、および/またはアダプターを使用することを避けるいくつかの方法があります。

+0

ほとんどの場合、クラスなどは内部プロジェクトで使用されるので、エンティティを公開することは受け入れられると思います。他の外部チーム向けにapi/sdkを作成する計画があり、DTOやAutoMapperの候補になるように聞こえます。 – MotoSV

0

データベースが変更されるたびにエンティティフレームワークが変更されるため、適切なAPIが提供されるとは思われません。代わりに、外部コードとアクセスする必要がある各エンティティとの間の仲介者として機能するようにデータ転送オブジェクトを作成することをお勧めします。さらに、ライブラリの内部と外部の "クライアント"を仲介するFacadeクラス(サービス層)を作成することを検討してください。 DTOの良い記事:http://msdn.microsoft.com/en-us/magazine/ee236638.aspx

関連する問題