“Ambiguous match found” hatası neden kaynaklanır, nasıl düzeltilir?

UYARI!
Bu yazı güncelliğini yitirmiştir. Okumaya devam etmeyi planlıyorsanız lütfen yazıdaki bilgilerin artık geçerli olmayabileceğini göz önünde bulundurun.

ASP.NET ile uygulama geliştirirken çok ilginç bir sorunla karşılaştım. Biraz uğraştıktan sonra sorunu çözdüm. Şansıma çok büyük bir proje değildi ve yine şansıma küçük bir değişiklik yaptığım sırada karşıma çıktı. Bu yüzden problemi çok daha kolay tanımlayabildim ve bu da çözüme daha kolay ulaşmamı sağladı.

Problem derleme sırasında karşınıza çıkmıyor. Proje sorunsuz bir şekilde yapılandırılıyor fakat problemin olduğu web sayfasını açmak istediğinizde ilk satırda belirsiz eşleşme (Ambiguous match) bulunduğu ile ilgili bir hata mesajı alıyorsunuz ve sayfa açılmıyor. Aşağıdaki ekran görüntüsüne benzer bir görüntü ortaya çıkıyor.

Bir süre webde araştırınca sorunun neden oluştuğunu, nasıl çözüleceğini burada buldum. Temel olarak problem, web sayfasında tanımlanmış bir kontrol ile aynı isme sahip bir değişken tanımlandığında ortaya çıkıyor. C# büyük/küçük harf duyarlı bir dil olsa da nedense bu durumda düzgün çalışmıyor ve hata üretiyor. Yani sayfanızda “Metin” isimli bir kontrol bulunuyorsa “metin” isimli bir değişken kullanmamanız gerekiyor.

Karşımıza açıklayıcı bir hata mesajı çıkmadığı için bu davranışın bir bug olduğunu düşünüyorum. İşin ilginç yanı konuyla ilgili bulduğum makale 2006 yılına ait, yani en az 5 senedir bu problem var ve Microsoft tarafından konu ile ilgili bir geliştirme/açıklama/düzeltme söz konusu değil…

Wordle ile web profilim

DYG için yazılım geliştirici ararken Wordle‘ı kullanmak gelmişti aklıma. Aradığımız özellikleri ağırlıklarına göre sıralasak, bir kelime bulutu oluştursak, farklı bir şekilde kimi aradığımızı göstersek diye düşünmüştüm. Nedense o sıralar bir çok kereler denememe rağmen Wordle web sitesine girememiş, dolayısıyla da bir türlü kelime bulutunu oluşturamamıştım. Bunun üzerine ben de daha basit bir yöntemle kendi kelime bulutumu oluşturmuş ve yayına almıştım. Bugün bir yerlerde Wordle yine karşıma çıkınca tekrar siteye girmeye çalıştım ve sorunsuz bir şekilde girebildim. Fırsatı değerlendirip hemen yazılım geliştirici ilanının kelime bulutunu Wordle üzerinde oluşturdum.

Asıl uzun süredir yapmak istediğim ise başka bir şeydi. Bookmarklarımı saklamak için delicious kullanıyorum. Firefox eklentisi ile beraber çok verimli çalışıyor. Bir bookmark kaydederken mümkün olduğunca ilgili etiketleri girer, daha sonra aradığımda kolay bulabilmeme olanak sağlayacak etiketleri eklerim. Bunun Wordle ile alakasına gelince; Wordle herhangi bir delicious hesabının etiketlerini kelime bulutu haline getirebiliyor. Bu sayede bir nevi web profilinizi ortaya çıkartabiliyorunuz. İşte benim profilim:

Delicious üzerinde hangi etiketleri daha sık kullandığımı görebiliyorum zaten ama bu şekilde gördüğümde çok daha farklı oldu. İlgimi çeken alanların (JavaScript, jQuery, PHP, WordPress) bu kadar ön planda olmalarına şaşırmadım ama .NET, C# vb etiketleri yeterince büyük görememek şaşırttı açıkçası. Özellikle de hayatımı .NET üzerinde uygulama geliştirerek kazandığım göz önünde bulundurulursa. Bunda .NET ile sürekli olarak uygulama geliştiriyor olmamın payı olabilir. Yaptığım araştırmalar sonucu ortaya çıkan sonuçları projelerde kullanıyorum ve gerektiğinde bu projelere geri dönüp, kendi kodumdan destek alıyorum. Bu sebeple ilgili araştırmalar bookmarklarım arasına girmiyor olabilirler.

karalamalar.net etiket bulutunun delicious etiket bulutu ile bu kadar örtüşmesinden de ilgim olan alanlarda daha çok paylaşım yaptığım sonucunu çıkartıyorum. Son zamanlarda yazmak istediğim bir kaç konu var. Bari onları yazayım da teraziyi biraz olsun dengeleyeyim. :D