2008-09-10 10 views
4

Çok fazla .NET programlama yapmamıştım, ancak Microsoft'un Desen ve Uygulamaları grubunun yayınladığı uygulama bloklarından birkaçını inceledim. belki uygulamaya özel kod yazarken referans olarak kullanılan bazı özelleştirme en Microsoft'un Uygulama Bloklarını Kullanma

  • Numune koduyla,
  • Kaynak uygulamalarına ilave uygulamalarına doğrudan Bağlantılı

    • ve onlarla inşa: Bunları genellikle nasıl kullanıldığını merak

    Bu kullanımların üçünün ortak olduğundan eminim, ancak en tipik kullanım biçimleri nelerdir?

    "Herkes" tarafından kullanılan birkaç özel uygulama bloğu var mı?

    Not: Bu soru, ancak Enterprise Library Application Blocks OR Home Grown Framework? ile aynıdır.

  • cevap

    2

    Genellikle kaynağı projeme dahil ediyorum ve daha iyi bir intellisense (ve daha iyi bir anlayış) elde edebilirim. Yine de onları kişiselleştirme eğiliminde değilim. Stoklarımın olmasını isterim, böylece ihtiyaç duyduğum her zaman stok ikili dosyalarını dağıtabilirim.

    3

    Enterprise Lib 3.1 (Mayıs 2007) birkaç Uygulama Blokları denedim ve burada bazı yorumlar:

    Caching Application Block: In-Memory önbelleğe alma gibi (basit senaryolarda System.Web.Caching daha az ilginç İstisna İşleme & Günlüğe kaydetme: Aşırı karmaşık. NLog veya Log4Net daha iyi çözümler.

    Diğer Bloklara baktım ama projelerimiz için uygun görünmediler.

    Son olarak, EntLib'i tamamen özelleştirdik çünkü özelleştirmek için ağrılıydı ... EntLib'den daha düşük bir monolitik çözümü düşünmenizi öneririm.

    1

    En uygun yol, uygulama blokları/EntLib'i bir çözüm öğesi olarak eklemektir. Bu şekilde, projenizi oluşturduğunuzda her zaman yeniden derlenmeyeceklerdir (kaynak oluşturma sürecine katılamazlar) ve kaynak kodlarına kolayca erişebilirsiniz \ set kesme noktası vb.

    +0

    FYI: Bunları eksiksiz ekleyebilir ve çözümle oluşturmamaları için yapılandırma yöneticisinde belirtebilirsiniz. – GEOCHET

    +0

    Çözüm öğeleri kullanmayı tercih ediyorum, entlib projeleri eksik olsa bile çözüm üretmemi sağlıyor – aku

    2

    Sadece EntLib 3.1 ikili dosyalarını küresel meclis önbellek ve projelerimize referanslar ekleyin. Ancak, genellikle sadece günlük çerçevesini kullanırız.

    3

    Microsoft'un Enterprise Library'sini yaygın olarak kullandım. Mümkünse genellikle projenize asla dahil edilmemelidirler. Eklemenin ek maliyeti ağır olabilir. Ek olarak, projenizde kaynak kodunun sınıfları kullanmasına gerek yok. Projelerinizde DLL'lere bir başvuru eklediğiniz sürece kodlama sırasında hala akıllılık kazanacaksınız. Geliştirici ortamınızın etrafında yüzen çok sayıda kod tabanından kaçınmanız da önerilir. Sınıfları özelleştirmeniz gerekiyorsa, bunları kendi çözümlerinde açın ve bir sürümü etkin tutun. Tabi ki değişiklikleri geri almanız gerektiğinde, her zaman sürüm kontrolünü (VSS veya Subversion) kullanmanızı şiddetle tavsiye ederim. Genellikle daha iyi kodlanmış Microsoft sınıfları için açık kaynak alternatifleri de vardır (örn. Log4Net, nUnit, vb.) .Microsoft kodu şişirilmiş ve verimsiz olma eğilimindedir.

    0

    DLL'lere başvuru ekleyerek, "yerel kopyala" uygulamasının uygulamanın bin klasörüne uygulanacak şekilde ayarlandığından emin olarak blokları kullanırız. Bu, GAC ile uğraşmak zorunda olmadığımız anlamına gelir - çok daha basit!

    Hata ayıklama yaparken, Visual Studio sabit diskinizde bir yere EntLib kaynak kodunuz olduğu sürece, doğrudan projenize dahil edilmemiş olsa bile kaynak koduna girebilir. İlk kullanımda size bilgi verecek ve daha sonra hatırlayacaktır.

    Şu anda Önbelleğe Alma, İstisna ve Günlük bloklarını kullanıyoruz. Henüz dinlenme için bir kullanım vakası düşünmedik.