Posts Tagged ‘download’

Event Kavrami

Not : Bu yazıyı okumadan önce mutlaka delege kavramını ve anonim metot kavramını öğrenmemiz gerekmektedir.

Event kullanımı ile delegeleri biraz daha fonksiyonel kullandığımızı söyleyebiliriz,bu bakış açımız ile birlikte bir kazanç olarak
görülebildiği gibi , gereksiz bile görülebilir.

Olay güdümlü programlamada , dikkatimizi çeken en iyi nokta işletim sisteminin tepkileridir,ve bu noktada eğer ki kendi programımızı geliştirme
uğraşlarımızı var ise ,daha bir dikkat çekici de olabiliyor.

Örneğin ;

Windows Forms üzerinde , boş bir tasarımda 1 tane Button kontrolünü form üzerine koyalım ve bu butonun arka planında Click Event’ına kodlarımızı yazarız
genellikle bu kod bölümünün yoğun kullanımına şahit olmakla birlikte,biz örnek olarak basit bir kod parçasından bahsedeceğiz

MessageBox.Show(“Merhaba Kenan”);

bu kod parçası çalıştığında bize ekran içerisinde bir mesaj kutusu gösterecektir,tıklama olayı gerçekleştiğinde,fakat dikkat etmemiz bizim için asıl noktada
bu kodun çalışmasından hemen önce gerçekleşiyor,Event’lar delegeler ile çalışıyor ise, ve delegelerde metotları çalıştırmakla görevli birer işaretçi olarak
değerlendirildiğinde tıklanma olayı , arka planda gizli duran EventHandler delegesini tetiklemiş demektir,bu tetikleme sonucu butonun Click metodu çalışır ve kodlar
icra edilir ,aynı anda sistemde basılı butonu fark edecek butonun görünümü üzerinde sanki resim1 deki buton gidip resim2 deki buton gelmişcesine
bir etkiyi meydana getirecektir.

Şimdi son olarak yoğunlaşalım ki biz butona tıkladığımızda,click metodunda yazılan mesaj kutusu işlemi gerçekleştiği gibi , aynı zamandan biraz öncede,
butonun basılı olmayan şekilde basılı olan şekile geçişi de bir işlemdir ve sistem ele alamadığımız sürecleri başlatmış demektir,

tüm bu sürecler içerisinde temelde kullanılan şey Event’tır.

Event’lara kavram olarak tam olmasada Delegelerin kapsüllenmiş hali diyebiliriz. Bu yazıda event örneklerini basit EventHandler kullanımı ile birlikte göreceğiz
çünki uygulamalarda Event’lar delegelerle çalışmaktadır ve event’lar için en yoğun kullanılan delege EventHandler ve bu delegenin generic modelidir.

EventHandler Delegesini Tanıyalım

  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. Console.Title = "EventHandler Delegesi Kullanımı";
  6. // Program sınıfının nesne örneğini alıyoruz
  7. Program p = new Program();
  8. // EventHandler delegesini örnekliyoruz , ve yapıcı metodunda
  9. // bizden object ve EventArgs tipindne değerler alan ve geriye değer döndürmeyen
  10. // bir metot tasarımı işaret edebileceğini söylemekte
  11. // biz de daha önceden hazırladığımız
  12. // EventHandlerMetodu1 isimli metodumuzu bu kapsamda delegenin metotlar listesine
  13. // veriyoruz
  14. EventHandler temsilci = new EventHandler(EventHandlerMetodu1);
  15.  
  16. // sonuc olarak EventHandler ‘da bir delege olduğu için
  17. // listesine alabileceği bir başka metot olan fakat non-static olarak
  18. // işaretlenmiş , sadece ilgili sınıfın nesne örneği üzerinden erişebileceğimiz
  19. // bir metodu tasarlamıştık ve ismi => EventHandlerMetodu2 idi
  20. // bu metoduda delegemizin metotlar listesine ekliyoruz
  21. temsilci += p.EventHandlerMetodu2;
  22.  
  23. // Eklediğimiz metotların başarılı olup olmadığını
  24. // delegenin metotlar listesinin uzunluğundan ögrenebiliriz
  25.  
  26. Console.WriteLine("Temsilci Metot Sayısı            : {0}",temsilci.GetInvocationList().Length);
  27.  
  28. // delegeyi çalıştıralım
  29.  
  30. // delege çalıştırılmak istendiğinde , parametre olarak metotlarına göndereceği
  31. // değerleri istemektedir,bizde bu değerleri object olarak bekleyen kısmında istediğimiz her türden
  32. // verebiliriz,mesela object tipine karşılık bir anonim tip gönderebiliriz
  33. // EventArgs kısmını ise daha sonra irdeleyeceğiz.
  34.  
  35. Console.WriteLine("Metotlar Tetiklenecek …\n");
  36. temsilci.Invoke(new {Ad="Kenan",Soyad="Kalfa"},new EventArgs());
  37. Console.WriteLine("\nMetotlar Bitti        …");
  38. }
  39. static void EventHandlerMetodu1(object s, EventArgs k)
  40. {
  41. Console.WriteLine("Metot 1 Çalıştı");
  42. Console.WriteLine("object parametrenin tipi         : {0}",s.GetType().Name);
  43. Console.WriteLine("Metot 1 Bitti");
  44. }
  45. void EventHandlerMetodu2(object s, EventArgs k)
  46. {
  47. Console.WriteLine("Metot 2 Çalıştı");
  48. Type tip = s.GetType();
  49.  
  50. foreach (PropertyInfo item in tip.GetProperties())
  51. {
  52. Console.WriteLine("\tTip Property Adı : {0,-5},Degeri : {1}",item.Name,item.GetValue(s,null));
  53. }
  54. Console.WriteLine("Metot 2 Bitti");
  55. }
  56. }

Bu delegenin kullanımı kavrayabilmek için aşağıdaki C# kodlarımızı bir Console uygulamasında yazalım ve derleyip çalıştıralım

EventHandler Delegesi Kullanarak Event Kullanımı Örneği

Delegenin kullanımı hakkında biraz bilgi sahibi olduktan sonra aynı delegeyi bu sefer Event örneğimiz için kullanalım
Bunun nedeni ise Event’lar delegelerin fonksiyonel halinden başka birşey olmayışlarıdır

  1. class Program
  2. {
  3. static void Main(string[] args)
  4. {
  5. Console.Title = "EventHandler ile Event Kullanımı";
  6. // Araba sınıfından bir nesne örneği yaratalım
  7. Araba a = new Araba() { Marka = "Chevrolet", MaxHiz = 250 };
  8. // sürec için kendimiz gelişebilecek olaylara karşı ,
  9. // public event üzerinden metot ekleyebiliriz
  10.  
  11. a.ArabaEvent += new EventHandler(a_ArabaEvent);
  12. a.ArabaEvent += delegate(object s, EventArgs k)
  13. {
  14. // event’lara anonim metotlarda ekleyebiliriz
  15. Console.ForegroundColor = ConsoleColor.Red;
  16. Console.WriteLine("Anonim Metot Çalıştı,Muhtemelen Arabayı Yaktın (:");
  17. };
  18.  
  19. // süreci başlatıcak metodu çalıştıralım
  20. a.GazaBas(10, 100);
  21. // sürec sonunda , önce a_ArabaEvent metodu çalışacaktır,sonrasında
  22. // anonim metot çalışacaktır,fakat hepsinden önce , tip içerisinde
  23. // eklenme işlemi yapılan metot çalışacaktır
  24. }
  25.  
  26. static void a_ArabaEvent(object sender, EventArgs e)
  27. {
  28. Console.ForegroundColor = ConsoleColor.White;
  29. Console.WriteLine("a_ArabaEvent Metodu Çalıştı");
  30. Console.WriteLine("sender Parametresinin Tipi => {0}",sender.GetType().Name);
  31. // sender parametresinde , bizim araba tipimi göndermiştik ,
  32. // unboxing yaparak geri alabiliriz
  33.  
  34. Araba yeniAraba = (Araba)sender;
  35. Console.WriteLine("Marka : {0},Hiz : {1},MaxHiz : {2}",yeniAraba.Marka,yeniAraba.Hiz,yeniAraba.MaxHiz);
  36. }
  37. }
  38. class Araba
  39. {
  40. public string Marka { get; set; }
  41. public int Hiz { get; set; }
  42. public int MaxHiz { get; set; }
  43.  
  44. // event tanımlaması yapalım ve bu event’a
  45. // dışarıdan da metot eklenmesi için
  46. // erişim belirleyicisini public işaretleyelim
  47. // ve aynı zamanda sınıfımızın yapıcı metodunda da , event’a
  48. // metot ekleyelim
  49.  
  50. public event EventHandler ArabaEvent;
  51.  
  52. public Araba()
  53. {
  54. ArabaEvent += new EventHandler(Araba_ArabaEvent);
  55. }
  56.  
  57. void Araba_ArabaEvent(object sender, EventArgs e)
  58. {
  59. Console.ForegroundColor = ConsoleColor.Yellow;
  60. Console.WriteLine("Araba Sınıfı içerisindeki Metot Çalıştı"); ;
  61. }
  62.  
  63. // süreci başlatacak bir metot yazalım
  64.  
  65. public void GazaBas(int miktar,int sure)
  66. {
  67. // sure kadar,miktar parametresi değerince , Hizi artıralım
  68. for (int i = 0; i < sure; i++)       {         // Hizlanma işlemini daha rahat görebilmek için araya         // sistemi bekleten bekletmeler koyabiliriz         System.Threading.Thread.Sleep(250);         Console.WriteLine("{0} , {1} Km Hızında Gidiyor …",Marka,Hiz);         // süre boyunca , miktar miktarinca , hiz değerini artıralım         Hiz += miktar;         // hiz miktarı , max hız miktarını geçmişse , kontrol etmemiz gerekir         if (Hiz >= MaxHiz)
  69. {
  70. // eger ki hız max hızı geçtiyse event’ın delegesinin
  71. // metotları artık çalışmalıdır , çünki süreçte beklenen sonuc yada
  72. // istenmeyen sonuca gelinmiştir
  73.  
  74. // ArabaEvent , arka plandaki delegesi null değilse yani
  75. // listesinde metotları var ise, bu delegeyi tetikleyebiliriz
  76. if (ArabaEvent != null)
  77. // delegeyi , o an ki nesne örneği ve göstermelik bir Args tipi ile parametre
  78. // geçtik
  79. ArabaEvent(this, new EventArgs());
  80.  
  81. break;
  82. }
  83. }
  84. }
  85. }

[download#2#image]

Creapress,past times,Download

herkese merhaba,

bir blog girdisi girme girişimimde bulunduğum şu dakikalar itibariyle,
bilgisayarımı karıştırırken farkettiğim bir klasör topluca
neden paylaşmıyorum ki diye düşündüm.

bu yaz aylarında kodlamasını yaptığım asp blog denememden bir süre
önce bu domain altında vazgeçmiştim,tekrar wordpress’e döndüm

sanırım yeteri kadar iyi bir blog yazmam için daha zamana ihtiyacım var

her zaman olduğu gibi eleştiri yaparak kasmak da zorunda değilsiniz
indirip kendinize eziyet de etmek zorunda değilsiniz
sadece keyfinize bakın

// Here is little english part //

you can download this asp script as a blog, called creablog
i wrote it just for fun last summer.but i returned wordpress system
because im not ready for now to code a really good blog system.

CreaPress ASP Blog System Download

CreaPress ASP Blog System Download

[download#5#image]
[audio:Pink-SoWhat.mp3]

SQL Server 2005,Database Ekleme ve AdventureWorks

herkese merhaba,
kurban bayramının bu 2.günün de can sıkıntısından ne yapacağını bilemeyen ben ile karşı karşıyayız.

bu blog girdisinde konumuz şu:SQL server 2005 Express içine veritabanı eklemek,nasıl yapıldığını görmek ( resimli olarak ) ve AdventureWorks örnek veritabanına sahip olmak.Sahip olmak diyorum çünki SQL server 2005 Express kurulduğunda temel veritabanları temp gibi model gibi … ile geliyor.

Üzerinde çalışacak veritabanım yoooooooooook diyen “inleyen nağmelere” yardımcı olmak adına AdventureWorks veritabanını upload ettim ve indirebileceksiniz.

Şimdi SQL Server 2005 Express Edition programımıza bir veritabanı nasıl eklenir onu görelim..

Öncelikle SQL Server Management Studio Express programınızın olduğunu varsayıyorum.Gelen e-mail olursa onu da upload edip,download’a sunabilirim.

ilk adım.

ikinci adım.


son adım.


En son işlem olarak 2.adım da gördüğümüz ekranda sağ altta bulunan OK butonuna basarak veritabanımızı SQL Server Management Studio içinden yönetilebilir hale getiriyoruz.

işte bizim örnek veritabanımız.indirin kurun ve yukarıdaki işlemleri yapın.Hepsi bu kadar.

[download#1#image]

MiniProje-Object Oriented Programming

nedir,nasıldır,abi bi sorum var,yok 3 sorum var cümleleri email adresime istemiyorum baştan söyleyeyim,ve zaten keyfime göre bir olay bu,almak da zorunda değilsiniz,eleştiri yapıp da kasmak da zorunda değilsiniz.Maksat muhhabbet olsun aşamasındaki bir blog girdisi o kadar :D

be Cool due ! :D

neyse nesne yönelimle programlama adına kendi yaptığım bir arkadaş için daha kim olduğunu bile bilmiyorum ama basit bişi sonuçta onu sizlerle paylaşmak istiyorum.Isteyen arkadaşlar vereceğim linkten indirip inceleyebilir.Gerisi kendisine kalmış.

aaa şurası eksikmiş felan diyebiliyorsanız,buyrun dvd de gönderirim visual studio ortamını,sizde geliştirirsiniz :D

fazla uzadı bu geyik dimi ..

buradan indirebilirsiniz

[download#2#image]