2016-06-23 24 views
5

Çeşitli türlerde büyük olasılıkla çok sayıda (~ 300'e kadar) komut dosyası kullanacak bir Visual Studio projesi tasarlıyorum. Bu dosyalar diğer projelerle paylaşılmayacaktır, yani bunlar projeye özeldir. çalışma zamanında bunları almak için Assembly.GetManifestResourceStream() kullanarak sonra ve (onların inşa eylemi ayarlayarak) bir gömülü kaynak gibi tüm bu dosyalar da dahil olmak üzere karşı herhangi bir iyi argüman var mı? Ya da bu, gömülü kaynakların kötüye kullanılması olabilir ve bu kaynakları dosya olarak tutan bir dosya sistemi dizini yerine kullanılmalıdır? Gömülü kaynakları kullanmanınBir projeye gömülü bir kaynak olarak çok sayıda komut dosyasını eklemek kötü bir uygulamadır mı?

faydaları gibi görünen:

  • üretilen montaj (script dosyaları veya geçersiz yolları eksik hakkında endişe etmeden tek dosya dağıtım) paylaşmak ve dağıtmak kolaydır;
  • izolasyon ve rahatlık: tüm kaynaklar VS proje içinde ulaşılabilir.

bu yaklaşıma karşı argümanlar genellikle şunlardır:

  • montajın yeniden derleme ve reorganizasyon olmadan kaynak değiştiremezsiniz. Bununla birlikte, birçok metin tabanlı kaynağa sahip bir proje için, sonuçtaki montaj oldukça küçük olacaktır ve üzerine yazma gibi yeniden dağıtmak kolay olacaktır. tek bir dosya sistemi bulunan komut dosyası olurdu. Ve teorik olarak, sadece montajın değiştirilen parçasını değiştirmek mümkün olmalıdır (bu nedenle daha küçük güncelleme), ancak mevcut herhangi bir fark/birleştirme araçlarının mevcut olup olmadığını bilmiyorum.
  • üretilen DLL sonunda belki de önemli ölçüde çok daha büyük olacak, ancak daha sonra, yerleştirilecek programın toplam boyutu, gömülü kaynaklar olmadan yalın bir derleme oluşturduysanız ve kaynakları bir dizine ayrı olarak dağıttığınızda aynı olacaktır.

orada diğer hususlar mı? Daha genel olarak, proje kaynaklarının - ne olduklarına bakılmaksızın - değiştirilmeleri durumunda gerekli montaj yeniden derlemesi dışında gömülü kaynaklar olarak dahil edilmemelerinin bir nedeni var mıdır? Bu yalnızca kendi ana bilgisayarda kullanacaksanız web projesi ise

cevap

4

Sana karmaşık bir ortam açısından bazı bilgiler verebilir. Uygulamanız kritik veya önemli bir yere yakın bir yerde bulunuyorsa ve olay yanıt süresini en aza indirmeniz gerekiyorsa, tüm komut dosyalarını ayrı dosyalar olarak kullanmak daha iyi olacaktır. Derlemenizi yeniden derlemek çok kolay olsa da, yapılandırılmış bir şirket ortamında düzeltme, genellikle bir acil durumda bile atlamak için çember sayısı gerektirir. Ayrıca, bu destekleyici bir kişi gerektirirken, destekleyici kişi bir senaryo dosyasını değiştirmek için yeterince iyi olmalıdır.

Kaynaklardan akışa alındığında betiklerin (en azından bazı) düzgün çalışmadığı durumlarda diğer hususlar söz konusu olabilir. Ara veya sonuç verisi yazmak için bir yere ihtiyaç duyabilirler. Ayrıca betikler arasında bazı bağımlılıklar da olabilir (biri başka bir çağrı vb.).

Diğer bir faktör de kaynakların ayrı olması, proje kaynağına erişiminiz olmadığında hızlı inceleme yapılmasına izin vermesidir. Bu, uygulamanıza biraz şeffaflık katar (bu istenebilir veya olmayabilir). Ayrıca, problemler durumunda uygulamanızla neler olup bittiğini belirlemenize yardımcı olabilir ve potansiyel olarak hızlı bir değişiklik/düzeltmeyi (ilk noktama biraz benzer) yapabilirsiniz.

Genel olarak gereksinimlerinize bağlı olduğunu söyleyebilirim. Komut dosyalarınızda (veya diğer karşılaştırılamaz kaynaklarda) sık sık değişiklik yapabilmeniz gerekiyorsa, bunları ayrı tutmak çok daha iyi olur. Çok sık değişmezlerse ve temiz, basit ve kompakt dosya yapısına sahip olmak istiyorsanız, yerleştirmek iyi bir seçimdir.

0

, o zaman ama her zamanki dosyaları gibi, gömülü kaynak olarak kullanmak daha iyi değil. (projeyi yalnızca bir kez kurmanız gerekir, ancak küçük güncelleştirmeleri kolayca yapmanız gerekir)

Diğer projelerde yeniden kullanılabilen bir dll oluşturmak istiyorsanız, gömülü kaynakları kullanmak daha iyidir. Bazı güncellemeleri yapın, her projede sadece bir dll güncelleyebilirsiniz.

İlgili konular