Dinçer'in Bloğu

Blok derken; basketboldaki bloktan bahsediyorum, yazım yanlışı yok.. (Bkz. Sayfanın sağındaki resimde 7 numaraya yaptığım blok) Ama hazır blok olayına girmişken bir de blog olayına girsem fena olur mu? Bence olmaz. Hadi buyrun...

Perşembe, Temmuz 28, 2005

C# ile Excel dosyasını okumak

Geçenlerde şirkette yazdığım bir uygulama için bugüne kadar bir Excel tablosunda tutulan binlerce kaydı veritabanına aktarmam gerekti. Uygulama C# ile yazılmış bir ASP.NET uygulamasıydı ve daha önce C# ile hiç Excel'den veri okumamıştım. Internette (Google'da da diyebiliriz) yaptığım kısa bir araştırmadan sonra bu aktarım işini en basit şekilde OleDb kullanıp veriyi SQL'den çeker gibi çekerek halledebileceğimi düşündüm. Ve haksız da çıkmadım...
Verinin Excel dosyasında düzenli bir şekilde tutulmuş olduğunu kabul edersek, yapacağımız iş oldukça basit. İşte gerekli olan kod:

SqlConnection con = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0; " + "data source=C:\\Dosya.XLS;Extended Properties=Excel 8.0;");
SqlCommand command = new OleDbDataAdapter("select * from [Sheet1$]", con);

con.Open();
DataSet ds = new DataSet();
command.Fill(ds);

Bu kod sayesinde Dosya.XLS adlı dosyada bulunan her satır veriyi ds adlı DataSet instance'ımız içerisine atmış oluyoruz. Bu veriyi satır satır okumak için ise gene çok basit bir işlem yapacağız:

ds.Tables[0].Rows[0].ItemArray[1].ToString()

Yukarıdaki değer bize Excel doyasındaki ilk kaydın ilk hücresinin değerini verecek. Bir döngü içerisine koyarak tüm satırlardaki tüm hücrelerin değerlerine kokaylıkla ulaşabiliriz.

Salı, Temmuz 26, 2005

Neden 23 gündür yazmıyorum?

Evet, tam 23 gündür bloğuma yazı yazmıyormuşum. Bunun yanı sıra şunu da söylemek isterim ki son 105 haftanın 104'ünü şirkette geçirmiş birisiyim ben aynı zamanda! Bloğumu boşlamamın nedenlerinden birisi, hatta en önemlisi iş yoğunluğu diyebilirim yani. "Ne ile uğraşıyorsunuz ki işte?" diye sorduğunuzu duyar gibiyim. Şu linkle açıklamaya çalışayım:

http://www.intertech.com.tr/site/tr/iays_detay.html

Bu ürün uzun zamandır üzerinde çalıştığımız bir projenin sonucu olarak ortaya çıktı. Ve insanın gerçekten büyük zamanını alan kapsamlı bir proje.

Son zamanlarda gene vaktimi (ç)almaya başlayan ve bu siteyi aksatmama neden olan başka bir neden ise şu:

http://www.pesinsight.com/

Pro Evolution Soccer 4 denen şu oyunu o kadar iyi oynuyorum ki önüme gelen her rakibi yenesim geliyor ve herbiri 10 dakika süren bu maçlar da zevkli olduğu kadar da zaman alıcı oluyor. Ne kadar iyi oynadığımı Tuncay arkadaşıma sorabilirsiniz; kendisine son oynadığımız maçın ilk yarısında 2 gol avans verip 2. yarıda attığım 4 (dört) golle maçı 4-2 kazanmıştım :-)

Bu ve bunun gibi nedenle dolayısı ile bloğumdan bir süredir uzak kaldım. Bugün Tuncay'ın yazdığı süper Prag yazısını görünce benim de içimden kendi blog sayfamı bir elden geçirmek geldi. Umuyorum bundan sonraki yazı aralıkları daha kısa süreli olacak.

Obsesif Kompulsif

Obsesif Kompulsif

Blogspot altındaki bir blog'u gezerken sayfanın en yukarısına doğru bakarsanız 'BlogThis!' şeklinde bir link göreceksiniz. Bu linke tıklayınca o an gezmekte olduğunuz blog sizin blog sayfanıza gördüğünüz şekilde ekleniyor. Bu yazdıklarımı o mesajı edit ederek ekledim. Orijinal halini bozdum yani sizleri bilgilendirmek adına :-)

Pazar, Temmuz 03, 2005

XP (Extreme Programming) Temel İlkeleri

Çevik programlama metotlarından biri olan XP ile ilgili 12 temel maddeden söz edeceğim.
  1. Planlama: Planın değişebileceğini kabul etmeliyiz. Uzun süreli projelerin planlarının da değişmesinin normal olduğunu kabullenmeliyiz.
  2. Küçük sürümler: Yazılım ürünü küçük versiyonlar halinde sürekli olarak 'release' edilmelidir. Müşteri ortalama iki haftada bir ürünün yeni sürümüne ulaşabilmelidir.
  3. Müşteri 'dahiliyet'i: Müşteri haftada ortalama 3 gün yazılım bölümünü ziyaret etmeli, yerinde bilgi almalıdır.
  4. Metafor kullanımı: Müşteri ile iletişimde benzetmelerde faydalanılmalıdır. Mevcut durumu anlatırken "7 katlı bir binanın 3. katını bitirdik" gibi kullanımlar tercih edilmelidir.
  5. Basit tasarım: En iyi tasarımın müşterinin isteklerini karşılayan en basit tasarım olduğu unutulmamalıdır.
  6. 'Refactoring': Özellikle ilk başlardaki sürümlerde, kodlar sürekli olarak gözden geçirilmeli, gerekiyorsa yeniden yapılandırılmalıdır.
  7. Test: Kodu yazmadan önce, kodu test edecek programı yazmalı, ondan sonra koda başlanılmalıdır.
  8. Çifte kodlama: İki programcı birlikte çalışmalı; biri kod yazarken diğeri izlemeli ve bir süre sonra pozisyonlar değişmeli.
  9. Kollektif sahiplenme: Yazılım ürünü yazılımcıların tamamı tarafından sahiplenmelidir.
  10. Sürekli entegrasyon: Kısa yaşam döngüleri, sabit 'refactoring' uygulamaları vs.
  11. Haftalık sınırlı çalışma saatleri: Bir yazılımcı haftada ortalama 40 saatten fazla çalışmamalıdır.
  12. Kod standardları: Yazılımcıları uyması gereken kodlama standardları belirlenmelidir.
Ülkemizde pek tercih edilmeyen bir yöntem olduğu açık aslında. Hiç bir hafta sadece 40 saat çalıştığınızı hatırlıyor musunuz? Veya kod yazmadan önce kodu test edecek bir kod yazdığınızı? Ben şahsen hatırlamıyorum. Metotu beğenen, kullanmak isteyen biri olmama rağmen hem de.. Sanırım bir 'yazılım evi'nde XP yerleştirmek için öncelikle üst yönetim kararı sonra ise yazılımcıların dikkatli seçilmesi gerekli gibi geliyor bana. Bilmiyorum haksız mıyım?