Sefer Algan'ın Günlüğü

Günlüğüme hoşgeldiniz...

June 2005 - Posts

Boyle C# sevgisi görülmemiştir ! :) (Yorumsuz)

Bu resim karsisinda ne yorum yapilir bilemiyorum. Tanimadigim biri olsa yok olmaz artik boyle birsey diyecegim. Ne diyelim allah mesut etsin. Gelinimiz insallah kizmamistir bu ise :)

Bu arada düsündüm de ben gelin arabami C# ile süsleyecek kadar C# i sevdigime emin degilim :)

Pointer(Gösterici)'lar ve C#'ta string değişkenler.

Bir okurumdan gelen soruyu ve ona yazdigim cevabi sizlerle paylasiyorum.

Soru : C# ta tanimlanan string degiskenlerinin immutable yani bir kere tanimlandiginda içeriginin asla degistirilemeyecegini duydum. Ancak C#'ta pointer kullanarak aynen C de oldugu gibi tanimlanan string degiskenlerinin içerigini degistrmem mümkün mü acaba?

Cevap : Evet mümkün, bunun için unsafe kod bloklari kullanmaniz gerekir. Ayni zamanda fixed anahtar sözcügünü de kullanmaniz gerekir. Çünkü string bir referans türüdür ve bellekteki adrese GC tarafindan her an degistirilebilir. fixed anahtar sözcügü bunu engellemek için kullanilir. Pointerlari kullanarak string degiskenlerin bu davranisini asagidaki sekilde bozabiliriz.

unsafe static void Main()
{
    
string str = "Normal yöntemlerle asla degistiremedigimiz string";
    
fixed(char* ptr = str)
    
{
          
for(int i=0; ptr[i] != '\0'; ++i)
             
*(ptr+i) = 'X';
    
}
    
Console.WriteLine(str)
}

Ayni degiskeni ekrana yazdirdigimizda ekrana ""XXXXX..." yazdigini göreceksiniz. Sanirim bu örnek bile pointer larin gücünü göstermeye yeter.

Nullable Types, Null değer alabilen değer tipleri..

C# 2.0'da veritabani programcilarini oldukça sevindirecek bir özellik geliyor : Nullable Types yani Null deger alan deger tipleri (value types).

Artik tamsayilari veritabanindan alirken null deger alan value type lar sayesinde Null kontrolü yapmamiza gerek kalmayacak.

if( datarow["SAYI"] != DbNull.Value)
     sayi = datarow["SAYI"].ToString();

Tabi bunun için sayi isimli degiskeni asagidaki gibi tanimlamamiz gerekiyor.

int? sayi;   (<deger tipi>  sonuna ? isareti  geliyor)

Bu özelligin C# 2.0 da olabilmesinin kaynagi hangi özellik olabilir diye soracak olursaniz tabiki Generics altyapisi. Her bir null alan deger veri tipi aslinda .NET'te  Nullable<T> isimli generic tipe karsilik düsmektedir.

Nullable tipler hakkinda detayli bilgi için Burak Selim Senyurt'un C#nedir?com da yazigi makaleyi okuyunuz.

ideefixe.com'dan büyük indirim.
Her Yönüyle C# kitabini edinmeyi düsünüyorsaniz bu firsati kaçirmayin. Kitapçidaki etiket fiyari 53 YTL olan bu kitabi ideefixe.com 'dan geçici bir süre içerisinde 29 YTL ye alabilirsiniz.
C ile UML
C dili ile UML kullanabileceginizi biliyormuydunuz.? Merak ediyorsaniz http://www.csharpnedir.com/makalegoster.asp?Mid=516 adresindeki makaleyi okuyabilirsiniz.
Yeni Microsoft Ürünleri 7 Kasım'da çıkacak!

Microsoft'tan yapilan resmi açiklamaya göre Visual Studio.NET 2005, SQL Server 2005 ve Biztalk Server 2006 ürünleri ayni anda 7 Kasim 2005 günü final sürümleri ile piyasa sürülecek.

Resmi açiklamayi okumak için tiklayiniz..

Facade tasarım deseni..

Facade tasarim deseni  ile ilgili yazdigim yaziyi asagidaki baglantidan okuyabilirsiniz. http://www.csharpnedir.com/makalegoster.asp?Mid=513

 

 

CGI ve API Betiklerinin (Script) Güvenliği Hakkında.

Istanbul Teknik Universitesi'nde sunmus oldugum "CGI ve API Betiklerinin Güvenligi" ile ilgili  sunumu (ppt) buraya tiklayarak indirebilirsiniz. 

Sunum web tabanli uygulamalarda rastladigimiz güvenlik açiklari üzerine odaklanmistir.

<STRONG> Aranacak Kisi ? </STRONG>
<!- #exec cmd = “finger $QUERY_STRING” ->