2011-07-16 17 views
5

Bu, en iyi kodlama uygulamalarıyla ilgili bir sorudur. Bir .NET uygulamasında sabit kod dizeleri ve değerlerinden en iyi şekilde nasıl kaçınılacağı konusunda fikir birliği sağlamak istiyorum. Ben daha önce çalışmış nerede gördüm Ne:Sert kodlama dizgileri nasıl önlenir

  • kullanarak kaynak .resx dosyalar statik sınıf ApplicationStrings yapma bu değerleri ve dizeleri App.config veya web.config
  • depolanması

  • ve orada tüm dizeleri ve değerleri ilan:

    public static class ApplicationStrings 
    { 
        #region constants 
        public const string APPLICATION_NAME = "X"; 
        public const string APPLICATION_RESOURCEMANAGER_NAME = "ResourceManagerX"; 
        public const string APPLICATION_DEFAULT_LOGFILENAME = "log.txt"; 
    } 
    

Ancak değil 3 yöntem, sadece başka hardcode? Böyle bir sınıfa sahip olmak mantıklı mı? Fayda, tüm dizelerin tek bir yerde olması olabilir, ancak bu gerçekten bir koddan kaçınmak mı?

Ayrıca, bu durum için başka alışkanlıklar geliştirdiyseniz, göndermekten çekinmeyin.

+1

Burada sabitler üzerinden statik okuma alanları tercih ediyorum. Sabitler, sonsuza kadar aynı değere sahip olacak şeyler için daha fazladır. Hangi ikili sürümleri semantik yapar biraz can sıkıcı. – CodesInChaos

cevap

4

Asıl avantaj, tüm dizeleri tek bir yerde bulundurmaktır ve yalnızca tüm programı güncellemek için orada değiştirmeniz gerekir. Programınızın farklı bölümleri aynı dizeyi kullanıyorsa ve bir örnek güncellendiyse, ancak diğeri değilse, bir sorunla karşılaşırsınız. Bu arada, tüm hazırlıklar için geçerlidir.

Ve kaynak dosyalarında i18n ve l10n'nin yararı vardır. İhtiyacın varsa, ancak birçok büyük uygulama gerekir.

+1

Kaynak dosyalarının avantajı, gerektiğinde başka sürümlerle değiştirilebilmesidir. Tabii ki, kaynak kod dosyaları ile bunu yapın, ama bir şekilde farklı işlevler değil, farklı veri (i18n ve l10n) olduğu daha nettir. – MRAB

0

Eh, ApplicationStrings iyi bir çözüm

1

ben tüm verilerin tek bir yerde ve diğeri tarafından paylaşılabilir böylece merkezi bir yapılandırma dosyasında tüm yapılandırılabilir veri depolamak için iyi bir uygulama olduğuna inanıyoruz genelde olduğunu düşünüyorum apps

+0

Beni app.config ve web.config dosyalarını hatırlattığınız için teşekkür ederim, ilk sorumu güncelledim. –

1

Benim düşünceme göre, ApplicationSettings yalnızca ayarlarınız (i) gerçekten sabitler ve (ii) elbette gerçekten kamusal ise faydalıdır. Bu durumlardan biri doğru değilse, bu ideal değildir ve seçiminiz .config dosyasına geri döndürülür.