31 Temmuz 2008 Perşembe

Hashtable Koleksiyonu

Koleksiyonlar, dizilerin kullanımına esneklik sağlayan wrapper sınıflardır. System.Collections isimalanı (namespace) altında yer alan koleksiyon sınıflarından birisi olan Hashtable, verileri Key<->Value çiftleri şeklinde saklar.
Hashtable'da Key'ler ve Value'lar birçok koleksiyonda olduğu gibi object tipindendir. 
Hashtable içerisinde bulunan her üye 'DictionaryEntry' tipindendir.DictionaryEntry'ler, Key<->Value çiftlerinden oluşan tiplerdir.


Hashtable koleksiyonuna üye eklemek için .Add() methodunu kullanırız. Add() methodu çalışmak için object tipinden iki parametre ister. Bu değerlerden ilki key, ikincisi value olarak kullanılır. Eklenmek istenen Key ve Value çiftinden DictionaryEntry oluşturulur. DictionaryEntry hazırlandıktan sonra koleksiyona dahil edilir. Value olarak gönderdiğimiz değer koleksiyonda asıl saklamak istediğimiz veridir. Key değeri ise bu veriye ulaşmak istediğimizde kullanmamız gereken anahtar kelimedir.


Object tipinden olan key değeri unique (eşsiz) olmalıdır, koleksiyonda varolan bir key kullanarak yeni bir üye eklemesi yapmak istediğimizde Exception (ArgumentException) alırız. Key değeri olarak null kullanmak istediğimizde de yine Exception (ArgumentNullException) ile karşılaşırız. Key olarak null kullanamayız fakat value null olabilir. Key değeri tanımlandıktan sonra tekrar değiştirilmesi mümkün değildir, fakat herhangi bir üyenin Value'su daha sonra değiştirilebilir.


Hashtable, verileri okumak istediğimizde en hızlı biçimde ulaşabileceğimiz şekilde saklar. Bu bize okuma sırasında performans olarak geri döner. Okuma performansını artırmak istediğimizde Hashtable koleksiyonunu tercih etmeliyiz.



Hashtable koleksiyon nesnesini nasıl örnekleyebilirim?
Bunun için öncelikle using System.Collections; ifadesini kod sayfamızın başına eklemeliyiz. Sonrasında aşağıdaki gibi nesnemizi örnekleyebiliriz.

Hashtable ht = new Hashtable();



Hashtable koleksiyonuna nasıl üye ekleyebilirim?
.Add() methodunu aşağıdaki gibi kullanarak koleksiyona bir key<->value çifti ekleyebilirsiniz.
ht.Add(keyDegiskeni,valueDegiskeni);
Burada keyDegiskeni ve valueDegiskeni olarak tanimlanan yerlere istenilen değerler gönderilebilir. (Örn: Sql'den çektiğimiz bir veri ya da TextBox'lardan gelen değerler)


Hashtable'ın istediğim bir üyesini nasıl okuyabilirim?
Hashtable değişkeni üzerinden indexleyici yardımıyla key'i girip value okunabilir.

object valueDegeri = ht[keyDegeri];
keyDeğeri olarak, okumak istediğimiz veriye ait, daha önceden eşleştirme yaptığımız anahtarı girmemiz gerekir. Indexleyiciden geriye verdiğimiz key'in karşılığı olan value gelecektir.

Hashtable'ın istediğim bir üyesinin value'sunu nasıl değiştirebilirim?
Hashtable değişkeni üzerinden indexleyici yardımıyla key'i verip bu key üzerine yeni value ataması yapılabilir.

ht[keyDegeri] = valueDegeri;
keyDegeri olarak, değiştirmek istediğimiz veriye ait anahtarı gireriz, valueDegeri olarak ta bu key'e sahip üyeye atamak istediğimiz yeni değer gönderilmelidir.

Hashtable üyelerini tek tek ele alıp işlemek için ne yapmalıyım?
Hashtable içerisindeki her üye DictionaryEntry tipindendir. Bir foreach döngüsü ile üyeler arasında gezerken eldeki üye olan DictionaryEntry üzerinden üyenin key ve value değerlerine ulaşılabilir.

foreach (DictionaryEntry entry in ht)
{
    Console.WriteLine(entry.Key + " / " + entry.Value);
}
Value değerlerine ulaşmanın başka bir yolu da Hashtable'ın Keys koleksiyonunda dönmek ve elde edilen key'ler üzerinden value'ları ele almaktır.

foreach (Object keyDegeri in ht.Keys)
{
    Console.WriteLine(
ht[keyDegeri].ToString());}



Hashtable'dan üye çıkartmak için ne yapmalıyım?
.Remove() methodunu kullanarak Hashtable içerisinden bir nesnenin kaldırılmasını sağlayabiliriz. .Remove() methodunu kullanırken, koleksiyondan çıkartmak istediğimiz üyenin key değerini methoda parametre olarak göndermemiz yeterli olacaktır.

ht.Remove(keyDegeri);


Hashtable içerisindeki eleman sayısını nasıl elde edebilirim?
Hashtable içerisindeki .Count özelliğini okuyarak eleman sayısını elde edebiliriz.

Console.WriteLine(ht.Count);


Koleksiyon içerisinde varolan bir key ile üye eklemek istediğimde neden exception alırım?
Varolan bir key'i tekrar ekleyemeyiz çünkü verileri okumak istediğimizde index olarak keyleri kullanacağız. Bu durumda içeride aynı key den 2 tane olursa, biz value'ya ulaşmak için key'i verdiğimizde hangi value'nun döndürüleceğine karar verilemez. Böyle bir sorunla karşılaşmamak için aynı key'in 2 kez girilmesi Exception ile engellenmiştir.

22 Temmuz 2008 Salı

Visual Studio 2008 Trial (Deneme Sürümü) Downloads

Visual Studio Express sürümünü yetersiz bulanlar için, tam takım Visual Studio deneme sürümlerinin download linkleri aşağıdadır. 90 gün boyunca ürünü tanımak ve yapabileceklerini görmek amacıyla ücretsiz olan bu deneme sürümlerini kullanabilirsiniz.

Visual Studio 2008 Professional Edition 90-Day Trial:
http://msdn.microsoft.com/tr-tr/evalcenter/bb633753(en-us).aspx

Visual Studio Team System 2008 Team Suite 90-Day Trial:
http://msdn.microsoft.com/tr-tr/evalcenter/bb633757(en-us).aspx

Visual Studio Team System 2008 Team Foundation 90-Day Trial:
http://msdn.microsoft.com/tr-tr/evalcenter/bb633754(en-us).aspx

Yukarıdaki linkleri kullanarak indirilecek dosyalar .ISO formatındadır. Bir CD/DVD kayıt programı ile ISO'ları DVD'ye kaydedebilir ya da Daemon Tools gibi bir Sanal CD/DVD programına mount edip kullanabilirsiniz.

İndirilebilecek Diller:
English
Chinese (Standard)
Chinese (Traditional)
French
German
Italian
Japanese
Korean
Spanish

İsterseniz Visual Studio Team System 2008 ürünlerinin kurulumunun yapılmış olduğu hazır gelen SanalPC'leri de indirip denemelerinizi SanalPC üzerinde yapabilirsiniz. SanalPC'leri kullanmak için makinanızda Microsoft Virtual PC 2007 SP1 ya da Virtual Server 2005 R2 SP1 kurulu olmalıdır.

Visual Studio Team System 2008 Team Foundation Server and Team SuiteTrial VPC Image:http://www.microsoft.com/downloads/details.aspx?FamilyID=c7a809d8-8c9f-439f-8147-948bc6957812&displaylang=en

Visual Studio Team System 2008 Team Foundation Server Trial VPC Image:
http://www.microsoft.com/downloads/details.aspx?FamilyID=72262ead-e49d-43d4-aa45-1da2a27d9a65&displaylang=en

10 Temmuz 2008 Perşembe

PS3 Firmware v2.41 DOWNLOAD

PS3 kullanıcıları için birçok yenilik getiren fakat bazı kullanıcıların sorun yaşaması sebebiyle geri çekilen 2.40 versionundan sonra 2.41 hatalardan arındırılmış olarak yayınlandı.

130 MB. boyutundaki bu güncelleme dosyasını PSN üzerinden indirmektense, PC'nize indirip, USB Flash Bellek kullanarak PS3'ünüzü güncelleyebilirsiniz. PSN'den indirmek genellikle yavaş olduğundan dolayı bu alternatif yolu izlemek faydalı olabilir. Bunun için yapmanız gereken, Flash Belleğinizi FAT32 kullanarak formatlamak ve bellek içerisinde "PS3" adlı bir klasör oluşturmak. Sonrasında bu klasörün içerisinde yine büyük harfleri kullanarak "UPDATE" adlı bir klasör oluşturun. İndirdiğiniz *.PUP uzantılı dosyayı bu klasöre kopyalayın. Hazırladığınız belleği PS3'ünüze takın ve System Update sekmesinden ilgili adımları izleyerek güncellemenizi yapın.

PS3 Firmware v2.41 DOWNLOADS
Avrupa: http://deu01.ps3.update.playstation.net/update/ps3/image/eu/2008_0708_67c660325b0b97acdeda6c0913dc1f74/PS3UPDAT.PUP
Amerika: http://dus01.ps3.update.playstation.net/update/ps3/image/us/2008_0708_67c660325b0b97acdeda6c0913dc1f74/PS3UPDAT.PUP
Asya: http://djp01.ps3.update.playstation.net/update/ps3/image/jp/2008_0708_67c660325b0b97acdeda6c0913dc1f74/PS3UPDAT.PUP