“Cannot create/shadow copy ‘dll ismi’ when that file already exists” probleminin çözümü

Geçen gün uygulamalarımızın çalıştığı sunucunun olay kayıtlarını incelerken ASP.NET’in sürekli olarak bu hata ile karşılaştığını gördüm. Bunun neticesinde web siteleri kimi zaman cevap veremez duruma geliyordu. Internette biraz araştırma yaptığımda genelde geliştiricilerin Visual Studio’da çalışırken bu hatayla karşılaştıklarını gördüm. Bir süre çözüm aradıktan sonra bu yazıyı bulduk(Engin ile birlikte). Benim gibi bu problemle karşılaşmış ve çözüm yolu arayışındaki başka bir geliştiricinin bulduğu çözümü ben de sizlerle paylaşayım dedim.

web.config dosyanızda system.web elemanına aşağıdaki kod öbeğini ekleyerek sorundan kurtulabilirsiniz.

shadowCopyBinAssemblies özelliği şu şekilde tanımlanmış: Bir Boolean(Evet/Hayır) değeri ile uygulamanın Bin klasöründe yer alan bileşenlerinin, gölge kopyalarının (shadow copy) uygulamanın ASP.NET geçici dosyalar klasörüne kopyalanıp kopyalanmayacağını belirtir.

Umarım işinize yarar.

BOM karakter dizisi olmadan XmlWriter ile UTF-8 kullanımı

C# ile geliştirdiğim projelerde XML üretmem gerektiğinde, bu konuda çok becerikli olduğunu düşündüğüm XmlWriter nesnesini kullanırım. Nesneyi oluştururken aşağıdaki gibi oluştururdum;

XmlWriter writer = new XmlTextWriter(stream, Encoding.UTF8);

Bilmediğim şey ise, bu şekilde nesneyi oluştururken otomatik olarak streamin başına UTF-8 tanımlayıcısı olan üç baytlık BOM karakter dizisinin ekleniyor olduğuydu. Yazmış olduğum bir servisi kullanan firmadan gelen dönüş ile, gönderdiğim XML’de BOM olduğunu ve bu yüzden XML’i düzgün işleyemediklerini öğrendim. Bunun üzerine BOM olmadan XML’i nasıl oluştururum diye araştırdım ve buradaki makaleye ulaştım.

Yapmamız gereken çok basit. Daha önce Encoding.UTF8 ile elde ettiğimiz Encoding nesnesini bu sefer yeni bir Encoding nesnesi oluşturarak hallediyoruz. Yeni Encoding nesnemizi oluştururken de encoderShouldEmitUTF8Identifier parametresini false olarak kullanıyoruz;

XmlWriter writer = new XmlTextWriter(stream, new UTF8Encoding(false));

Ben XmlWriter kullanırken bu sorunla karşılaştığımdan yazı da bu konu etrafında şekillendi. Elbette ki Encoding kullandığınız başka durumlarda da bu şekilde Encoding nesneleri oluşturabilirsiniz.

JavaScript kapsam ve kaplamları anlamak

Bu makalenin orijinali (Explaining JavaScript scope and closures) Robert Nyman tarafından kendi blogunda yazılmıştır. Türkçe çevirisi için kendisinden izin alınmış olup, aşağıda okuyacağınız birinci tekil şahıs yine Robert Nyman’ın kendisidir;

Javascript ile uygulama geliştirirken bir çok insanın zorluk çektiği bir konuyu açıklamaya çalışmak istedim.

Okumaya devam et JavaScript kapsam ve kaplamları anlamak

Ultimate MySQL Sınıfı

Bir süredir geliştirdiğim ufak çaplı PHP + MySQL uygulamalarında Jeff Williams tarafından yazılmış olan Ultimate MySQL sınıfını kullanıyorum. En temel ihtiyaçlarımı karşılamakla beraber kolay geliştirilebilir bir yapısı olduğundan her yeni projede ihtiyaca göre üzerine bir şeyler ekleyebiliyorum.
Okumaya devam et Ultimate MySQL Sınıfı

Parça Tanımlayıcılar ile Cross Domain Frame İletişimi

Yazılarımı yazarken genelde ingilizce terimlerin varsa Türkçe karşılıklarını yoksa en yakın anlamlarını kullanmaya çalışıyorum. Ne var ki Türkçe yeterli kaynak olmadığından ve ingilizce kaynaklar çok fazla olduğundan çoğu zaman bir konu ile ilgili arama yaparken ingilizce anahtar kelimeler kullanıyorum. Bu makalenin başlığını da Parça tanımlayıcılar ile çapraz alan adı çerçeve iletişimi olarak yazmak isterdim fakat arandığında bulunabilsin diye mecburen bu şekilde yazmak durumunda kaldım.
Okumaya devam et Parça Tanımlayıcılar ile Cross Domain Frame İletişimi