30 Mart 2010 Salı

Bunları Sakın Yapmayın!

Profesyonellerin gerçek yaşam deneyimlerinden…

Yazılımla ilgili kuramsal (teorik) konular dışında, uygulama ve deneyim paylaşımına yönelik bir yazı daha…

Bu konuda sektörde uzun zamandır profesyonel olarak çalışan, alanında uzman tanıdıklarımdan yardım istedim. Sağ olsunlar beni kırmadılar, yoğun tempolarına rağmen geri dönüş yaparak çok değerli deneyimlerini bizlerle paylaştılar.

Bana göre teknik bilgiye daha kolay ulaşılabilir ve maliyeti daha düşüktür. Esas değerli olan deneyimdir. Aşağıda deneyimlerini ve isimlerini bulacağınız bu üstatların hepsine çok çok teşekkür ediyorum.

Lafı çok uzatmadan sizleri deneyimlerle baş başa bırakıyorum.

(okumak için tıklayın.)

18 Mart 2010 Perşembe

Listview ve Treeview da Eklenen Öğenin Görünmesini Garantileme

Listview/Treeview ile çalışıyorsanız kod içinde yaptığınız bir değişiklik ya da yeni eklediğiniz bir öğe bazen görünür alanın dışında kalabilir. Yaptığınız değişikliğin ya da yeni eklenen öğenin görünür alanının dışındaysa, scrollbar'ın otomatik olarak kaymasını ve öğenin görünür olmasını istiyorsanız aşağıdaki kodu kullanabilirsiniz.

[treeview|listview].EnsureVisible(indeks_no);

indeks_no ile belirtilen indeksteki öğe görünür alanın dışında olsa bile, kaydırma çubuğu gerekli konuma otomatik olarak gelecek ve ilgili öğe görünür olacaktır.

12 Mart 2010 Cuma

Daha Performanslı Listeler

Windows Forms uygulamaları geliştiriyorsanız, uzun listeler doldurmak zorunda kalabilirsiniz. Aşağıdaki örnek bir milyon tane rakam üreterek form üzerindeki bir listbox kontrolüne eklemektedir.

Kod çalışırken her yeni bir öğe eklendiğinde işletim sistemi bu öğenin listbox üzerinde yer almasıyla ilgili grafik ve bellek işlemlerini gerçekleştirecektir. Bu da listenin yüklenme süresini uzatacaktır. Eğer kodunuzu aşağıdaki gibi değiştirirseniz, üretilen değerler listeye eklenirken grafik işlemler yapılmaz. Grafik işlemler listbox kontrolünün EndUpdate() metoduyla çalışacaktır. Böylece %50 ye kadar performans artışı sağlayabilirsiniz.
Performans ölçümü için eklenmiş kodlarla birlikte kodun tamamı aşağıdaki gibi olacaktır.

Uygulamanın tamamını aşağıdaki bağlantıdan indirebilirsiniz.

9 Şubat 2010 Salı

Visual Studio 2010 and .NET Framework 4 Release Candidate

Visual Studio 2010 and .NET Framework 4 Release Candidate sürümü herkese açılıyor. 8-9 şubatta sadece MSDN üyelerine açık olan indirme hakkı, 10 Şubattan itibaren herkese açık hale getiriliyor.

İndirmek için aşağıdaki bağlantıyı kullanabilirsiniz.

8 Şubat 2010 Pazartesi

Olaya Dayalı Programlama - Event Driven Programming

Geleneksel yazılım geliştirme yaklaşımlarında, uygulama kodun başlangıcıyla çalışır ve uygulamanın ne zaman ne yapacağına yazılan kod karar verirdi. Zamanla programlama teknolojisi ihtiyaçlar ve kullanıcı talepleri doğrultusunda değişmeye başladı. Özellikle zengin grafik arabirimli işletim sistemlerinin gelmesiyle birlikte kullanıcılar, fare tıklamaları, sürükleyip bırakmalar, liste öğelerini değiştirme, bir resme çift tıklama gibi aksiyonlarının sonucu olarak programların “bir şeyler” yapmalarını beklemeye başladılar.

Devamı için tıklayın...

31 Ocak 2010 Pazar

Nesneye Yönelik Programlama

Nesneye Yönelik Programlama (NYP), günümüzde en yaygın kullanılan programlama yaklaşımlarından biridir. NYP, programcının çözümü geliştirirken problem ve çözüm kümelerini nesneler ve bu nesneler arasındaki ilişkiler olarak tanımlaması ilkesine dayanır.

14 Ocak 2010 Perşembe

LINQ Uygulaması - 101 - Bilgisayarınızdaki Sürücüleri Listeleyin

Bilgisayarımızdaki sürücülere ulaşmak için System.IO isim alanındaki DriveInfo nesnesini kullanabileceğimizi anlatmıştım. Bu örnek kodda da LINQ kullanarak sistemimizdeki sabit diskleri nasıl listeleyebileceğimizi görüyorsunuz.

var diskler = from disk in DriveInfo.GetDrives()
where disk.DriveType == DriveType.Fixed
select new { disk.Name, disk.VolumeLabel };

foreach (var oge in diskler)
{
Console.WriteLine("{0} - {1}", oge.Name, oge.VolumeLabel);
}


13 Ocak 2010 Çarşamba

C# ile Bilgisayarınızdaki Sürücü Bilgilerine Erişin

// Aşağıdaki kod, bilgisayarınızdaki hazır durumda olan sürücüleri (disk, dvd, usb bellek vb. listeler.)

DriveInfo[] suruculer = DriveInfo.GetDrives();
foreach (DriveInfo surucu in suruculer)
{
if (surucu.IsReady) // sürücü hazır mı? (örneğin cd takılı mı?)
{
Console.WriteLine("Sürücü Adı:{0}, {1}, {2}, {3}"
, surucu.Name
, surucu.DriveType
, surucu.DriveFormat
, surucu.VolumeLabel);
}
}


Sürücüler hazır olmasa da isimlerini,ve tip bilgilerini alabilirsiniz.

DriveInfo[] suruculer = DriveInfo.GetDrives();
foreach (DriveInfo surucu in suruculer)
{
Console.WriteLine("{0}, {1}, {2}"
,surucu.Name
,surucu.DriveType
,surucu.IsReady);
}


Bu örnekte C ve D sürücüleri sabit disk, E ve F sürücüleri DVD ve G sürücüsü ise USB bellektir. Her bir sürücüyle ilgili olarak son satırda, sürücülerin hazır olup olmadığı bilgisi verilmektedir.

26 Aralık 2009 Cumartesi

SQL Server - Veritabanından Rastgele Kayıt Seçmek

Aşağıdaki sorgu, [Tablo_Adı] isimli tablodan rastgele 10 tane kayıt getirir.

SELECT TOP 10 [Alan_Adı]
FROM [Tablo_Adı]
ORDER BY NEWID()

6 Aralık 2009 Pazar

INETA NEXT - İstanbul İçin Kayıt Vakti



















İstanbul İçin Kayıt Vakti" sloganını Daron bulmuş. Çok hoşuma gitti ben de başlığımda kullanayım dedim. Eğer halen etkinliğe kayıt olmadıysanız, mutlaka aşağıdaki linkten kayıt olarak yerinizi ayırtın. (Etkinlik tamamen ücretsiz yapılmaktadır.)