私は、データ、ビジネス、およびプレゼンテーション層で構成される最初のレイヤードアプリケーションを設計しています。
私のビジネスコンポーネント(たとえば、Business.Components.UserComponent)には、現在次のメソッドがあります。
public void Create(User entity)
{
using (DataContext ctx = new DataContext())
{
ctx.Users.AddObject(entity);
ctx.SaveChanges();
}
}
私はこのデザインが好きです。ただし、次の実装を推奨するいくつかの例をオンラインで見つけました。
public void Create(User entity)
{
// Instanciate the User Data Access Component
UserDAC dac = new UserDAC();
dac.InsertUser(entity);
}
これにより、すべてのエンティティのデータアクセスコンポーネントが作成され、それぞれに基本的なメソッド(作成、編集、削除など)が含まれます。
基本的なメソッドと、データアクセスコンポーネントのメソッドを呼び出すだけのビジネスコンポーネントを使用してデータアクセスコンポーネントを作成する必要があるため、これは二重の作業のように見えます。
レイヤードアプリケーションで基本的なCRUD機能を適切に実装するためのベストプラクティスと見なされるものは何ですか?それらはビジネスコンポーネントまたはデータアクセスコンポーネントで「コーディング」する必要がありますか?