SORU
14 Kasım 2008, Cuma


Depo Desen vs DAL

Aynı şey mi bunlar? Sadece Rob Connery'nin Mağazası öğretici izlemek bitmiş ve benzer teknikleri gibi görünüyor. Ben bir DAL uygulamak nesne GetStuff var, Sil vb Eklemek/ve ben her zaman db daha sonra geçiş yapabilirsiniz, böylece ilk arayüz yazmak yani.

Kafa karıştırıcı şeyler mıyım?

CEVAP
15 Kasım 2008, CUMARTESİ


Kesinlikle bir şeyler karıştıran sen değilsin. :-)

Bu sorunun cevabı olmak istiyorum ne kadar bağlıdır sanırım.

Görünüm sıkı DDD noktası istiyorsan, seni alaşağı edecek bir yol. Eğer bize hizmet arasındaki ayıran katman arayüzü ve veritabanı standardize yardımcı olan bir desen olarak depo bakarsanız başka bir yere sürer.

Benim açımdan depoyu sadece veri erişim açıkça belirtilen bir tabakadır.Ya da diğer bir deyişle standart bir şekilde Veri Erişim Katmanı uygulamak için. Farklı depo uygulamaları arasında bazı farklar var, ama mantık aynı.

Bazı insanlar diğerlerine veritabanı ve servis katmanı arasında uygun bir arabulucu olarak depoyu kullanacak ise depoyu hakkında daha fazla DDD kısıtlamalar koyacağız. Bir DAL gibi bir depo veri erişimi özellikleri, hizmet tabakası ayırır.

Onları farklı yapmak gibi görünüyor bir uygulama sorunu bir depo genellikle bir belirtim yöntemleri ile oluşturulur. Depoyu bu şartname karşılayan veri döndürür. Gördüğüm en geleneksel Hasta, yöntem parametreleri herhangi bir sayı alacak yöntemler daha büyük bir set var. Bu küçük bir fark gibi görünse de, Seri ve İfadeler alemlerine girdiğiniz zaman büyük bir sorundur. Varsayılan depo arayüz bu gibi görünüyor:

public interface IRepository : IDisposable
{
    T[] GetAll<T>();
    T[] GetAll<T>(Expression<Func<T, bool>> filter);
    T GetSingle<T>(Expression<Func<T, bool>> filter);
    T GetSingle<T>(Expression<Func<T, bool>> filter, List<Expression<Func<T, object>>> subSelectors);
    void Delete<T>(T entity);
    void Add<T>(T entity);
    int SaveChanges();
    DbTransaction BeginTransaction();
}

Bu bir DAL veya bir depo? Bu durumda hem onun sanırım.

Kim

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • Matt Davis

    Matt Davis

    4 ŞUBAT 2006
  • max2sims2

    max2sims2

    19 Kasım 2008
  • Stanislav Petrov

    Stanislav Pe

    7 ŞUBAT 2009