Visual Studio 2005 Gotchas!

4 05 2006

Her ne kadar piyasadaki (Java IDE leri dahil) en sağlam IDE’lerden biri olduğunu düşünsem de Visual Studio’nun yeni sürümü, eski sürüm Visual Studio 2003’e göre kesinlikle daha az stabil. Etrafımdaki bir çok kişi C# editörünün background compiling ile daha başarılı hale geldiğini söylese de genel IDE deneyimi olarak daha az verim alındığını düşünüyorum. Şimdiye kadar beni en çok rahatsız eden kusurları sıralamak gerekirse :

  • Hiding Panel’lerin hide etmemesi, daha çok sol tarafta bulunan “Solution Explorer” ve “Properties” panellerinde karşılaştığım bu sorun beni gerçekten çileden çıkarıyor. Sabitleme raptiyesi basılı değilken panel kendiliğinden kayarak hide etmesi gerekirken donup öylece kodunuzun üzerinde kalıyor. Paneli sabitleyip (raptiyeye tıklayarak) tekrar auto-hide moduna sokmak (raptiye ye bir daha tıklayarak) zorunda kalıyorsunuz. Brrr!
  • IDE’nin Bir anda kapanması, uzun süredir bir tik haline gelen CTRL+S hareketim yüzünden şimdiye kadar bir veri kaybına yol açmadı ama gerçekten rahatsız edici.
  • Toolbox’ın resetlenmesi, özellikle önceki maddede söylediğim olaydan sonra gereçekleşen ve 3rd party component kurulumları ile gelen tabların, (componentleri uninstall edip tekrar kurmaya üşenme sonucu) dandik versiyonlarının oluşturulması için gerekli .dll(ler)i bulup refere edilmesini gerektiren gerçekten rahatsız edici bir şey. Tek kaybettiğiniz 3rd party controllerin kısayolları değil ama kendi türemiş veya UserControl’lerinizin kısa yolları da ki bu bir tane daha madde demek bz. aşağı 🙂
  • Diyelim ki bir sebepten dolayı Toolbox’ınız resetlendi (!), veya yeni bir UserControl yaptınız ve bunu Toolbox’ınıza koymak istiyorsunuz. Eğer UserControl’ünüz programınızın .exe’sinin olduğu projede ise Toolbox’dan “Choose Items…” deyip kendi projenizi yine kendi projenize “Browse…” diyerek refere etmeniz gerekiyor. Ve bu işlemde gayet çalışıyor :). Yalnız ugulamayı derlerken warning almanız olası. Çünkü UserControl’ü kullandığınız yerde derleyici iki tane referansla karşılaşıyor biri yerel assemble içindeki diğeri ise refere edilmiş. Dolayısıyla birini seçiyor (hangisini diye sormayın :)). Bunu daha sonra o referası silerek düzeltebiliyorsunuz ama UserControl, Toolbox’ınızda kalmaya devam ediyor… evet kabul ediyorum uzundu…
  • Form’dan türeyen (yada designer.cs ve resx alt dosyalarına sahip diyelim) .cs dosyalarınızı kopyalayıp isimlendirirken dikkatli olun!




White Screen of Darn – WSoD

23 04 2006

WSOD Örneği

Visual Studio .NET 2003'ten Visual Studio 2005'e geçenler yeni bir hata mesajı ile tanıştı. Bu mesaja MS çalışanları tarafından "Blue Screen of Death"e bir gönderme olarak "White Screen of Death" adı takılmış ama kullanıcılar hatanın "fatal" sonuçlar doğurmadığı ve rastgele gelebilmesi ihtimali üzerine bunu hayal kırıklığını temsil eden "White Screen of Darn" şeklinde yeniden adlandırmış. WSoD'ı Windows projelerinde bir formun design görünümünü açıldığında beyaz pencere üzerine hata mesajı, stack trace ve kırmızı bir çarpı şeklinde ortaya çıkıyor.

Hatayı verilen mesajdan daha iyi belirlemenin ve engellemenin yolu bir codeproject makalesinde açıklanmış. Ama önerilen yöntem runtime'da olması gereken pencere görünümünü design time da doğru olarak görünmemesi ile sonuçlanabiliyor, kısacası WYSIWYG düşünüşüne biraz aykırı bir çözüm. (Ctor'da "if(this.DesignMode) return;" gibi bir kod tavsiye ediliyor.)

Neden böyle bir hata mesajının VS 2003'te olmadığı ama VS 2005'e konulduğu vede doğasını Raghavendra Prabhu'nun MSDN blogundan okuyabilirsiniz.