Fantastik Bir Yorum
Sosyal paylaşım sitelerinin birinde aşağıdaki yoruma rastladım :)) Ne kadarda fantastik bir yaklaşım olmuş :))

Sosyal paylaşım sitelerinin birinde aşağıdaki yoruma rastladım :)) Ne kadarda fantastik bir yaklaşım olmuş :))

Çoğunuz Tiwitter kullanıyorsunuzdur veya en azından duymuşsunuzdur. Kişilerin birbirlerini takip edebildiği ve paylaşımlarını yapabildiği minik bir blog olarak tanımlayabilirim.
Twitter Api’yi kullanabilmeniz için öncelikle dll indirmeniz gerekecek. (Cocoa/Objective-C \ Fring (mobile web) \ Java \ .NET \ Ruby \ Silverlight \ Smalltalk)
Resimde gördüğünüz gibi kullanabileceğiniz 12 tane nesne var. Bu nesneleri kullanarak kendinize ait bir Twitter arayüzü hazırlayabilirsiniz. Yeni bir paylaşım eklemek, son paylaşımları listelemek, gelen mesajlarınız, sizi takip edenler… Kısacası her işlemi bu api ile yapabilmeniz mümkün.
Bu örnekte gelen mesajları tek tek görebiliyoruz. Gördüğünüz gibi adamın biri bana “ayarlarız” demiş. Artık neyi ayarlayacaksa :)) Şimdi gönderdiğimiz son iletiye göz atalım.

Sizler de uygulamalarınızda Twitter API kullanarak basit arayüzler hazırlayabilirsiniz.
Anlamayanlar (demirnazim@hot…) :)))
Facade tasarım deseni projede kullanılan alt sınıfları istemciden(client) soyutlayarak kullanımını kolaylaştırır. Aslında projelerde sıklıkla kullanılan bir tasarım desenidir. Genelde çok sayıda sınıfınızın olduğu ve nesneler arası ilişkilerin fazla olduğu projelerde kullanıldığında avantajlıdır. Hemen bir senaryo üzerinden bu tasarım desenimizi incelemeye çalışalım.
Örneğin satış destek ekibinin ziyaret girişi yapacağı kurguyu düşünelim. Ziyaret kaydı için bir ziyaret sınıfı hazırlayalım. Kaydı gerçekleştirecek olan satışçılarımızdan gelen verileri kontrol etmek isteyebiliriz. Örneğin girilen telefon bilgisinin geçerli olup olmaması, girilmeye çalışılan kaydın daha önce girilip girilmediği, kullanıcının o an için veri giriş izninin olup olmaması … Bu kontrolleri arttırmak mümkün. Tüm bu kontroller için bir kontrol sınıfı oluşturup içine gerekli metotlarımızı hazırlayabiliriz.
Bu senaryoya göre string tipinden parametre alan ve bool değer döndüren GecerliTelefonBilgisi(), int tipinden parametre alan ve bool değer döndüren VeriGirisIzni() ve int tipindne parametre alan geriye bool değer döndüren ZiyaretKaydi() metotlarımızı oluşturuyoruz. Kontrol sınıfı bizim alt sınıfımız olacak. Bunu daha sonradan oluşturacağımız facade sınıfı içinde kullanacağız.
Şimdi ziyaret kaydımızı yapacak olan metodumuzu barındıracak sınıfımızı hazırlayalım. Bu da yine alt sınıf olacağı için Facade sınıfımızın içinde çağıracağız. Adına Mekez dediğim sınıfımızın içinde int tipinden Kullanıcı Numarasını ve Ziyaret tipinden paramet alan geriye bool değer döndüren metot yazıyoruz.
Sırada bu alt sınıfları kullanacak olan Facade sınıfımızı hazırlamak kaldı. Bu sınıf tüm alt sınıfları kullanacağı için hepsini yapıcı metot kısmında örneklemeliyiz. Sonra ZiyaretGirisi isminde Ziyaret tipinden ve int tipinden(Kullanıcı Numarası için) parametre alan bir metot hazırlayıp Facade sınıfımızı tamamlayabiliriz.
Basit bir senaryo ile facade tasarım desenimizi incelemeye çalıştık. Özellikle fazla sayıda sınıf barındıran projelerde bu tasarım desenimizin varlığı karmaşayı engelleyecektir. Projeye sonradan dahil olan biri de bu tasarım desenimiz sayesinde kolayca adapte olabilir. Unutmayalım ve karıştırmayalım ki facade sınıfımız mevcut projeye yeni bir yapı sunmadı. Sadece var olan yapıya kullanışlı bir arayüz sağladı.
Kodları incelemek isterseniz indirebilirsiniz.
Aslında bu projeye LinqToXml kurcalamak için başlamıştım ama sonradan böyle minik bir paket haline geldi. Bu çalışma, dinamik bir web platformu hazırlamaya çalışan yazılımcı arkadaşlarımın fikir sahibi olmalarını sağlayabilir.
Yönetim panelinde şablon seçenekleri, modüller ve içerik giriş için gerekli bölümler mevcut. Siz bu sistem içine kendi modüllerinizi geliştirebilirsiniz. Örneğin ürünler modülü, resim galerisi veya üyelik gibi…
Mini Web Paketi buradan indirebilirsiniz.
İnsalığın tarihini, aynı bir ceninin gelişimindeki gibi, üç ana döneme ayırabiliriz. Geçmiş boyunca genişledik, fetihler yaptık, inşa ettik, yok ettik ve yeniden inşa ettik. Tüm dünyaya yayıldık. İnsan cenini bu koşula hamileliğin 38. haftasında ulaşır. Ana rahmi bir çocuk için en rahat yerdir, ve hamileliğin gerekçesi doğum olduğundan şuan gelişimin bir ara katmanındayız. Annenin vücudu doğum esnasında, çocuğun geçirdiği zor ve acı dolu süreçte ona yardım amacıyla büyük miktarlarda adrenalin üretir. Aynen buna benzer bir şekilde, biz de en en üst seviyemize kadar geliştik ve eski kaidelere uygun şekilde yaşamaktan yoksunuz. Sırada ne var hiçbir fikrimiz yok, ama bu ilerleyişimizin genel planının var olmadığı anlamına gelmiyor. Doğanın bizleri krizler, felaketler, salgın hastalıklar, savaşlar aracılığıyla etkileyen kendi bir programı var, ve bizi doğuma itiyor. Doğumdan sonra, çocuk ana rahminden çok farklı bir dünyada büyümeye devam ediyor. Aynısı bizim için de geçerli. Sonuçta neden buradayız öğrenmeliyiz. Bunu nasıl yapacağız?
Herkese merhaba. Aslında bu yazıyı yazıp ateşe atlamak istemiyordum ama paylaşmadan edemedim. Ineta başkanı Daron yöndemin şuradaki yazıya verdiği cevabı ve diğer başka cevaplarını incelemişler. Ortaya 9 sonuç çıkmış. Hepsine tek tek bakalım.
1 ) Yaptığı bir yorumda şöyle demiştir: Mailin “gönderen” kısmından benim mail adresimin bulunması teknik bir zorunluluktan oldu. Oysa ben böyle olsun istemezdim çünkü onlar “Unavailable Mailbox” maili aldım. Normal şartlarda bilirsiniz ki bu gibi toplu mailler “kullanılmayan” mail adreslerinden atılır.
Ardından içinde hakaretler bulunduğu için yayınlanamayan son yorumunda şöyle demiştir: Daha önce gönderdiğimiz maillerde “Unsubscribe” olmayabilir. Son mailingimizi profesyonel bir kuruma yaptırdığımız için bu altyapıyı onlar ekledi.
Önce “Unavailable Mailbox” maili aldım demiş daha sonra profesyonel bir kuruma yaptırdım demiştir. Bu profesyonel kurum kim acaba?
2 ) Bir başka yorumunda şöyle demiştir: Üyelerin izni olmadan mailing yapmıyoruz. Ayrıca her mailin altında “unsuscbribe” düğmesi de bulunuyor. Kendinizi listeden çıkartabilirsiniz. Bugüne kadar unsubscribe olan insanlar oldu ve maillistimizden çıkardık. Bu sistem de uluslararsı bir standarttır.
Ardından içinde hakaretler bulunduğu için yayınlanamayan son yorumunda şöyle demiştir: Daha önce gönderdiğimiz maillerde “Unsubscribe” olmayabilir. Son mailingimizi profesyonel bir kuruma yaptırdığımız için bu altyapıyı onlar ekledi.
Bugüne kadar unsubscribe yapan insanlar oldu demiş ardından daha önceki maillerde unsubscribe olmayabilir demiştir.
3 ) Yaptığı bir yorumda şöyle demiştir : ben aslında CETURK UG’unda değilim
CETURK‘e 12 ocak 2008′de üye olmuştur. Kendisinin de seminer verdiği bir etkinliğin olduğu zamanlarda. Link: http://www.ceturk.com/forum/members.asp?SF=daron&Submit=Arama
4 ) Yaptığı bir yorumda şöyle demiştir: Göreve geldiğimden beri fiziksel olarak 1 defa online olarak 4 defa toplantık.
Mehmet ACA‘ya attığı mailde şöyle demiştir: Ben başlayalık daha 1 yıl bile olmadı. Tek toplantı yaptık çünkü duyuracak şeylerimiz vardı. Zaten ona da 4 kişi geldi. 2009’da bir toplantı daha yapacağız.
5 ) Bu yorumda “INETA Türkiye’nin bütçesini yanlış öğrenmişsiniz.” demiş
Oysa Mehmet ACA‘ya attığı mailde şöyle demiştir:
Eskiden INETA çok daha rahattı. Bütçesi 50k$’mış! Şu an öyle değil. Git MS’ten yetkililere sor.
Yeni yılın bütçesi 10k$ olacak bildiğim kadarıyla.
Yazının sahibi “Ben de dememiş miydim eskiden 50 bin dolardı. Şuan 10 bin dolar diye..” demiş
6 ) Bir yorumunda şöyle demiştir: Silverlight eğitimi başlayalı 3 hafta falan oluyor. Etkinliği bu hafta içi duyurduk.
Oysa eğitimin duyuru sayfasında eğitimin 14 Nisan 2009‘da başlayacağı görülüyor. Link: http://www.csharpnedir.com/haber_detay.asp?id=197
7 ) Bir yorumunda şöyle demiştir: Sevgili Mehmet Aca’ya attığım son mailde her türlü desteği verebileceğimizi dile getirmiş olsam da maalesef pozitif cevap alamadım.
Mehmet ACA‘ya attığı son mailin son cümlesi şöyle: “Yolunuz açık olsun, benim gönlüm rahat.” Yolunuz açık olsun diyerek pozitif bir cevap mı beklediniz şimdiye kadar.
8 ) Bir yorumunda şöyle demiştir: Bugüne kadar eğitim verdiğim kurumları size sıraliyim; MayaSoft (INETA ile hiçbirşey yapmadı, ama olabilirdi sadece şans), ArıBil (kapandı), BTAkademi (Onlarla etkinlik yapmadım, aslında yapacaktık ama ayarlayamadık). C#nedir ile BTakademi bağlantısını değerlendiriyorsanız o apayrı bir konudur ve beni ilgilendirmez.
Az çok bu sektörü bilen biri bilir ki BTAkademi, CSharpNedir kurucularının açmış olduğu bir eğitim şirketidir. Bunu bilmezlikten gelerek BTAkademi ile etkinlik yapmadık demek insanları aptal yerine koymakla eşdeğerdir.
9 ) Bir yorumda şöyle demiştir: Bloguma attığınız yorumu görmedim, sorun olmuş olabilir mi?
Yazının sahibi “İşinize gelen yorumları mı görüyorsunuz diyorum başka bir şey demiyorum.” demiş
![]() |
![]() |
Veri kaynağından çektiğimiz kayıtlar üzerinden bir grafik hazırlamak eksikliğini hissettiğimiz birşeydi. Buna her ne kadar GDI+ çözüm olsada kullanımının zor olması ve ortaya çıkan grafiklerin estetikten uzak olması dezavantajdı. 3. Parti bileşenler de ücretli olduğundan pek tercih edilmemekteydi. Bu noktada Microsoftun chart kontrolü bizler için büyük avantaj sağladı.
Microsoft Chart Control .Net 3.5 ile birlikte gelmediğinden dolayı bu dosyaları bilgisayarımıza indirmemiz gerekecek. Ayrıca Visual Studio 2008 SP1′inde kurulu olması lazım. Kontrolün .Net 4.0 ile bütünleşik olarak gelecek olmasıyla ekstradan yüklemelere gerek kalmayacak.
Chart Kontrolümüzün veri kaynağı ile çalışan nesneler gibi işler. Örneğin elinizdeki bir DataTable’yi alıp chart kontrolümüze bağlayabilirsiniz veya sql üzerindeki bir tabloya erişim yapıp bağlantıyı kurabilirsiniz. Grafik için tahmin edeceğiniz gibi Key - Value ilişkisi vardır. Yani veri erişimi yapacağınız tabo üzerinde sadece 2 kolon olması yeterlidir. Örnek: İller-Nüfus, Öğrenci-Not vs
Microsoft Chart kontrolünün ücretsiz olması ve bunun yanında kullanım kolaylığı sayesinde artık bu gibi kontroller için ücret ödemek anlamsız olacaktır. Şuradaki hazırladığım örnek ile inceleme yapabilirsiniz.
Daha detaylı bilgi için linkleri inceleyebilirsiniz.
Microsoft Chart Control
Chart Control için VS 2008 Eklentisi
Chart Control için Örnekler
Chart Control için Döküman
Entity Framework’ün ilk sürümü Service Pack 1 ile kullanıma hazır hale geldi. Aslında ismini uzun zamandır duymaktaydık ama beta olduğundan dolayı projelerde tercih edilmiyordu. İlk olarak gözüme çarpan avantajı tip güvenliği oldu. Bunun yanında veritabanında değişiklik olduğunda kod kısmına geçmeden entityclient ile çözüme ulaşabiliyoruz.
Gerçi şuan için projelerde kullanmak büyük bir cesaret gerektirecek diye düşünüyorum. Entity Framework için kaynak sıkıntısı çekilmekte ve karşılaşılan sorunları çözme konusunda zorluk yaşanabilir. Zaten bu Framework’ün kullanılıdığı büyük çaplı bir proje yok gibi(TTNET Oyun platformu için bunun kullanılacak olması dışında diyelim
).
Cookie(Çerez), web sayfası sunucusunun bilgisayarınıza yerleştirdiği text dosyasına denir. Bu text dosyasının içinde, o web sitesinin bir sonraki ziyarette sizi tanıması için gerekli bilgiler yer alır.
Cookie Kayıt (Set Cookie)
| <script language=”JavaScript”>
Tarih = new Date; Tarih.setMonth(sonTarih.getMonth()+1); function CookieYaz(Deger) { document.cookie =“AdSoyad=”+Deger+“;Tarih=”+Tarih.toGMTString(); } </script> |
Cookie Çağır (Get Cookie)
| <script language=”JavaScript”>
if (document.cookie != “”) { document.write(document.cookie.split(“=”)[0],” : “,document.cookie.split(“=”)[1]); } </script> |
Örneğimizde kullanıcıdan adını çekiyoruz ve bunu cookie içinde saklıyoruz. İkinci sayfamızda kullanıcımızın girdiği ismi sayfamızda gösteriyoruz.(Kodları indirmek için tıklayın)
Cookie ile kullanıcının sayfanızı kaç kere ziyaret ettiğini görebilirsiniz veya web sayfanızda üyelik var ise otomatik üye girişini sağlayabilirsiniz. Bu örnekleri arttırmak mümkün.
Çoğumuz MD5 algoritmasını verileri şifreleme amaçlı kullansakta esasında veri bütünlüğünü denetleme algoritmasıdır. Örneğin size gelen bir mailin MD5 ile hash değeri alınıp size gönderilen hash değeri ile karşılaştırıldığında , mailin size gelene kadar değişikliğe uğrayıp uğramadığı kontrol edilebilir. Başka bir örnek verecek olursak MD5 ile bir dosyanın o anki hash değerini alıp önceki hash değeri ile karşılaştırarak dosya üzerinde değişiklik yapılıp yapılmadığnı anlayabiliriz. Örneğin bazı sitelerde Login ekranında “Şifremi Unuttum” linki görürüz. Oradan şifremizi sıfırlayarak yeni bir şifre belirleyebiliriz. Bize önceki şifremizi gönderememelerinin sebebi şifrelerin veritabanında bir şifreleme algoritması(MD5 , SHA-1) ile hash edilmiş olmasıdır. Dolayısıyla şifreler veritabanında gözükmez. MD5 128bit hash değeri üretir ve hızlıdır. SHA-1 160bit hash değeri üretir ve yavaştır. SHA-1 MD5”e göre daha güvenlidir. Aşağıda string tipten değer alan ve bu değeri MD5 ile hash eden bir metot görmektesiniz. Size 16 karakterlik geri dönüşü olmayan bir sonuç üretir.
string MD5Sifrele(string Deger)
{
// Gelen değerin her bir karakterini Byte dizisine çeviriyoruz ve diziye atıyoruz.
byte[] ByteData = Encoding.ASCII.GetBytes(Deger);
// MD5 Nesnesi oluşturduk.
MD5 Md5 = MD5.Create();
// Değerin hash karşılığını buluyoruz.
byte[] ByteHash = Md5.ComputeHash(ByteData);
// Byte dizisini hexa formatına çeviriyoruz.
StringBuilder sbSonuc = new StringBuilder();// Stringleri birleştirmek için performanslıdır.
for (int x = 0; x < ByteHash.Length; x++)
// Hexadecimal string değeri
sbSonuc.Append(ByteHash[x].ToString(“x2″));
return sbSonuc.ToString();
}