18 Kasım 2009 tarihinde, Microsoft PDC’09 (Microsoft Proffessional Developers Conference 2009) konferansında konuşmacı Scott Gutherie, Silverlight 4 Beta’nın yayınlandığını duyurdu.
Resmi sitesi silverlight.net‘te yer alan şu sayfadan ayrıntılı bilgiye ulaşabilirsiniz.
Channel9’da yeralan video‘dan yenilik olarak nelerin geleceğini izleyebilirsiniz.
Yeniliklerden kısaca bahsetmek gerekirse;
Silverlight ekibi 4. versiyonun betasını yayınlarken, Expression Blend ekibi de boş durmamış ve Silverlight 4 çıktı üretebilen Expression Blend versiyonunun beta’sını yayınlamış.
Microsoft Download’da yer alan şu sayfadan Expression Blend Preview for .Net 4 versiyonunu indirebilirsiniz.
.Net ortamında veriye erişim modeli olarak kullanabileceğimiz iki seçenek vardır; Bağlantılı (Connected) ve Bağlantısız (Disconnected) Ortam.
Projenin kaynak kodlarını buradan download edebilirsiniz.
Kaynak kodlara baktığınızda görebileceğiniz gibi, proje tek form’dan oluşuyor. Formun Load event’inde, AdventureWorks2008R2 veritabanına bağlantı açılıyor ve PR_TABLO_LISTESI procedure’ü çalıştırılıyor.
PR_TABLO_LISTESI procedure’ünün kodları;
CREATE PROCEDURE PR_TABLO_LISTESI AS DECLARE @T TABLE (TABLO_ADI VARCHAR(100), SATIR_SAYISI INT)
INSERT INTO @T EXEC sp_msForEachTable ‘SELECT ‘’?’’, COUNT(*) FROM ? WITH (NOLOCK)’
SELECT * FROM @T ORDER BY SATIR_SAYISI DESC
Gördüğünüz gibi, procedure’ün yaptığı çok fazla birşey yok. Pek fazla bilinmeyen ve dökümante edilmemiş sp_msForEachTable sistem prosedür’ünü kullanarak veritabanında bulunan her tablonun ismini ve satır sayısını döndürüyor.
Bu sistem prosedür’ünün nasıl kullanıldığını başka bir yazıda anlatmayı planlıyorum. (Eminim BilgeAdam’daki öğrencilerim bu prosedür’ü hatırlayacaklardır)
Form’un Load eventinin devamında, prosedür’den dönen liste (tablo isimleri ve satır sayıları) lvTablolar ismindeki ListView component’ine dolduruluyor.
cmbTekrarAdet isimli combobox’da yer alan (5 Adet, 10 Adet, 20 Adet) elemanlarından varsayılan olarak 10 Adet elemanı seçili olarak geliyor. Bu combobox, testin peşpeşe kaç defa tekrar edeceğini belirliyor. Böylece bilgisayardaki anlık performans değişikliklerine karşı önlem almış oluyoruz.
Yarış Başlasın Butonunun Click event’inde, yeni bir Thread nesnesini YarisBaslasin() methodunu çalıştıracak şekilde oluşturuyoruz ve başlatıyoruz.
YarisBaslasin() methodunu Arayüz’den (User Interface : UI) ayrı bir thread’den başlatarak, test süresince formda oluşacak kilitlenmeleri önlemiş olduk.
Method’un içerisinde DataTableHesapla() ve DataReaderHesapla() methodları çağırılıyor.
Bu methodlarda TekrarAdet defa (cmbTekrarAdet kontrolünden geliyor) SqlConnection açılıyor, ListView’da seçili tabloya SELECT çekiliyor ve dönen kayıtların üzerinde tek tek geziliyor.
Son olarak, DataTable ve DataReader nesnelerinde bu işlemlerin ne kadar sürdüğü karşılaştırılıyor ve sonuç ekranın altındaki bir label’da gösteriliyor.
Süre ölçmek, ADO.NET Connected ve Disconnected Environment’ı karşılaştırmak için tek başına kullanılacak bir yöntem değil. Fakat en azından bir fikir verebilir.
jQuery ile uygulama geliştirirken en büyük avantajımız, web’de çok fazla plugin bulabilmemizdir.
Bir arkadaşımın sorusu üzerine, slide-show yaptırabileceği jQuery plugin’i aramaya başladım.
Karşılaştığım birkaç plugin’den en çok hoşuma giden, CrossSlide oldu.
Örnek kullanımını görmek için demo sayfasına bakabilirsiniz.
Sıkıştırılmamış hali 11Kb olan plugin’i şuradan indirebilirsiniz. (Nedense plugin’in minify versiyonu bulunmuyor.)
Minify halini arayan geliştiriciler için, plugin’i http://jscompress.com adresinden minify ettirdim. Minify edilmiş halini (6.46Kb) buradan download edebilirsiniz.
Minify edilmiş halini değil, packed halini download etmek istiyorsanız, aynı siteden packed (4.59Kb) ettirdim. Onu da buradan download edebilirsiniz.
jQuery için web’de bulabileceğiniz diğer slide-show eklentileri;
Yazdığımız web uygulamalarında, uyarı / bilgilendirme mesajı vermeye her zaman ihtiyaç duyarız.
Gelelim, CSS tekniklerini kullanarak, bu mesaj kutularını nasıl yapabileceğimize.
Öncelikle style’larımızı yazdığımız css dosyasına, şu satırları ekleyelim;
.alert { background: #fff6bf url(exclamation.png) 15px 50% no-repeat; text-align: left; padding: 5px 20px 5px 45px; border-top: 2px solid #ffd324; border-bottom: 2px solid #ffd324; } .info { background: #f8fafc url(information.png) 15px 50% no-repeat; text-align: left; padding: 5px 20px 5px 45px; border-top: 2px solid #b5d4fe; border-bottom: 2px solid #b5d4fe; }</pre> Şimdi tek yapmamız gereken, paragraf tagları arasına mesajımızı yazmak ve paragraf tagına ilgili class’ı atamak.
Örnek;
<p class="alert">Uyarı mesajı buraya gelecek.</p> <p class="info">Bilgilendirme mesajı buraya gelecek. Birden fazla satır olabilir.</p> İşte sonuç; ![CSS_Mesaj_Kutulari](/assets/uploads/2009/11/CSS_Mesaj_Kutulari.png "CSS_Mesaj_Kutulari") Demo sayfasını görmek ve kodları indirmek için tıklayın. Şu adreste, bu tekniğin uygulandığı, download edilebilir kodları bulabilirsiniz. Yazının orjinaline ise şu kaynaktan ulaşabilirsiniz.
İstediğiniz resimleri, aşağıdaki css tekniği ile önyükleyebilirsiniz.
#preloadedImages { width: 0px; height: 0px; display: inline; background-image: url(path/imageA.png); background-image: url(path/imageB.png); background-image: url(path/imageC.png); background-image: url(path/imageD.png); background-image: url(path/imageE.png); background-image: url(); }
Senior Software Engineer, @Microsoft
Ada ve Ege'nin babası ;)
Makale Adedi: 484