Ankara WebCamp 25 Ocak 2012
Aslında geçtiğimiz aylarda düzenlenen ama sis nedeniyle konuşmacının gelemediği bu etkinlik yarın yapılacak.
https://msevents.microsoft.com/cui/EventDetail.aspx?EventID=1032503352&culture=tr-TR
The maximum uri length of 2083 was exceeded. Çözümü
RIA Services ile çalışırken başlıkta geçen “The maximum uri length of 2083 was exceeded.” hatasını aldım. Hata çok şaşırtıcı olmadı çünkü RIA’nın sorguyu GET ile yaptığını biliyordum. Http GET’in maalesef bir karakter limiti var, bu limit tarayıcıdan tarayıcıya, sunucudan sunucuya değişsede 2048′i aşmamak en doğrusu aslında.
GET’in limitine takılınca, sorguyu nasıl POST yöntemi ile talep edebilirime bakınca şu yöntemi buldum :
[Query(HasSideEffects=true)]
sorgularınızı böyle belirtirseniz, karakter limitlerine takılmayacaksınız.
Purevison 2 HD
Biraz yazılım dışına çıkıyorum ve kontakt lens kullanan arkadaşlar için bir iki tecrübe aktarıyorum:)
Bugüne kadar hep Johnson&Johnson markalı kontakt lensleri kullandım (10yıldan fazla). Bir keresinde doktor tavisyesi ile Ciba Vision’ın adını hatırlamadığım ürününü kullanayım demiştim ve 1 lensi ancak 1 gün kullanabilmiştim -gün sonunda bembeyaz oluyordu. Geçen gün meraktan Purevision 2 HD (evet high definition) adında oldukça övülen ve kullananların memnun kaldıkları -ben katılmıyorum- bir kontakt lens aldım ve sonuç Ciba Vision kadar olmasa da maalesef kötü.
1.si J&J Acuvue Oasys kullanırken gün içinde lensin varlığını hiç hissetmezken bu meret gözümü kapamayı unuttuğumu (kod yazarken) anlayınca önce bulanıyor sonra gözümü kırptığımda kuru yüzeyini göz kapaklarımda çok rahat hissedebiliyorum. Bilgisayar kullananları sanırım düşünmemişler.
2.si lens çok ince ve sert, makbulü belki budur fakat saklama kabından çıkartmak işkence.
3. olarak lensin üzerindeki ters mi düz mü olduğunu belirten işaret sadece D harfi. Evirip çevirmem gerekiyor mereti. Oasys de ne güzel 123 yazıyor. (Oasys’den önce AV yazıyordu o daha iğrenç, ters olduğunda VA yazdıyor
yine okunaklı).
Bir de Renu ‘dan başka solüsyon kullandığımda temizleme zamanım 2 katına çıkmıştı..
Daron Yöndem’den Kasım Ayı Webinerleri, SL, WP7, Win8, IE10, Azure
Daron Yöndem, yeni bir web cast serisine başlıyor. .net ile açılan yeni kapılara
giriş niteliğinde olan bu derseler pek kaçıralacak türden değiller, üstelik
anlatan Daron Yöndem olunca!
02 Kasım | 21.00 -
Silverlight geliştiricileri için Windows Phone 7.5’e Giriş
03 Kasım | 21.00 -
Windows Phone 7.5’te Multitasking
15 Kasım | 21.00 -
IE10 ile HTML5 Dünyasında Bir Gezinti
17 Kasım | 21.00 -
Windows 8 İle Tablet Development’a Giriş
18 Kasım | 21.00 -
Windows 8 ve Windows Runtime’ın İncileri
23 Kasım | 21.00 -
Silverlight, RIA Services
ve Kendi Business Objeleriniz, Kendi Data Katmanınız
24 Kasım | 21.00 -
Windows Azure Platformu Da Ne Nedir?
25 Kasım | 21.00 -
C# ve Vb.net Farklılıkları 5 : Taşma Kontrolü
Hemen aynı gibi görünen şu iki kodu inceleyin
C#:
int t = 260; byte y = (byte) t; Console.WriteLine(y.ToString());
Vb.net :
Dim t As Integer = 260 Dim y As Byte = CType(t, Byte) Console.WriteLine(y.ToString())
Bu iki kodu çalıştırdığımızda ekran görüntüleri şu şekilde olacaktır :
C# Sonuç:

Vb.net Sonuç:

Ne yaptık, neden böyle oldu sorusunun cevabına gelince. Byte veri türü bildiğiniz üzere en fazla 255 değerini alabilir. Biz değeri 260 olan integer türünden veriyi byte türünden bir değişkene aktarmaya çalışıyoruz. Doğal olarak yapmaya çalıştığımız işlem mümkün değil. Peki ama C# nasıl oldu da 260′ı 4 olarak sonuçlandırdı. Basit, C# bilinçli tür dönüşümlerinde sayısal ifadelerde büyük olan türün değerinin küçük olan türün alabileceği farklı değere (byte için 0 dan 255 e 256 farklı değer) ile mod işlemi yapar ve sonucu atar. Örneğimizde 260 mod 256 uygulanarak sonuç 4 bulunmuştur. Peki biliçsiz tür dönüşümlerinin şampiyonu Visual Basic .net nasıl oldu da exception fırlatmayı başardı ? Aslında aynı exception’ı C#’da fırlatıyor olabilirdi, bu dile özgü bir senaryo değil aslında. Derleme varsayılanı olarak C#’da aritmetik taşma kontrolü devre dışı iken Vb.net’te ise aktif olarak belirtilmiştir. Eğer ki bu davranışın vb.net ile de geçerli olmasını istiyorsanız, projenizin gelişmiş derleyici ayarlarından “Remove integer overflow checks” seçeneğini işaretlemesiniz. İşlemin ardından uygulamanız c#’da olduğu gibi davranacaktır.

C# ve Vb.net Farklılıkları 4 : Null (Nothing) kontrolü
Vb.net’in esrarengiz davranışlar sergilediği bir konudur bu hiçlik kontrolü. Kullanacağınız yönetemde C#’dan farklı olarak verinin türü hakkında da bilgi sahibi olmanız gerekebilir. Vb.net’de null değerlerin karşılığını Nothing olarak öğrenmiş olabilirsiniz ama bu isim çelişkisinde biraz farklılıklar var, hemen aynı gibi görünen kodlarımızı dökelim ortaya:
Dim sayi As Integer = 0
If sayi = Nothing Then
Console.WriteLine("NULL")
Else
Console.WriteLine("NULL DEĞİL")
End If
int sayi = 0;
if (sayi == null)
{
Console.WriteLine("NULL");
}
else
{
Console.WriteLine("NULL DEĞİL");
}
Çıktıya bakalım ve hemen yoruma geçelim :
Vb.net:

C#:

Peki ama neden? “0 hiç değil bir değeri vardır, o yüzden c#’ın sonucu doğrudur” şeklinde düşünebilirsiniz. Peki o zaman bir soruda ben sorarım “integer’ın null olabilme ihtimali var mıdır ki?” (sakın integer? demeyin o integer değil başka bir nesne). Sorunun cevabı hayır olacaktır çünkü integer bir referans değil değer türüdür. Peki ama o zaman “vb.net bunun Nothing olduğunu nasıl doğruladı ?” Cevap vb.net’teki çeşitli null kontrollerinden ve bunların referans ve değer türlerine göre farklı davranışlarında. Bu yöntemler şunlardır:
1:
If obje = Nothing Then
Bu kullanımda değişken;
referans türünde ve bir nesne belirtmiyor ise true dönecektir.
değer türünde ve nesenin değeri o nesnenin varsayılan değeri ise (integer için varsayılan değer = 0) true dönecektir! işte bu kısım C# ve Vb.net’in ayrıldığı kısım oluyor.
Değer türündeki nesnelerin başlangıç değerlerinde olup olmadığını kontrol etmek için kullanın. Bir değer türündeki nesneyi varsayılan değerine getirmek için Nothing’e eşitlemeniz yeterlidir.
2.
If IsNothing(obje) Then
Bu kullanımda değişken;
referans türünde ve bir nesne belirtmiyor ise true dönecektir.
değer türünde ise daima c#’da olduğu gibi false dönecektir.
3.
If Equals(obje, Nothing) Then
Bu kullanımda değişken;
referans türünde ve bir nesne belirtmiyor ise true dönecektir.
değer türünde ise daima c#’da olduğu gibi false dönecektir. IsNothing
4.
If obje Is Nothing Then
Bu kullanımda değişken;
referans türünde ve bir nesne belirtmiyor ise true dönecektir.
değer türünde ise kod derlenemeyecek hata verecektir.
Eğer kullandığınız değişkenin referans türü olduğunu biliyorsanız seçmeniz gereken yol bu olmalıdır.
Tüm bu yöntemler derlenme aşamasında nesnenin türü biliniyorsa optimizasyondan geçirilirler. Nesnenin türü bilinmiyor ise, nesnenin türüne yorum yapılır.



Son Yorumlar