Arşiv »Coding «

Mar
01
Bismillahirrahmanirrahim

csharp C# : Olay Oluşturma ve Asenkron Metod Örneği dot net c sharpSelamun Aleykum Cümleten,

Son birkaç yazım ile ilgili basit bir örnek yapayım dedim döküman yazmak yerine.

Programı kaba taslak özetliyeyim; veritabanında kullanıcıya mesajın olup olmadığını kontrol ediyor, event i butona tıkladıktan sonra gerçekleştiriyor. Biz isteseydik formun actived olayında da kurabilirdik.

Diğer birşey ise ; DBKontrolLib.cs de bulunan 2 tane delegaete. Bundan biri (TemsilciHandler) olayımızın kullandığı delegate, diğeri ise (AsynKontrolCalistirHandler) olayımızı asenkron çalıştıracak bir delegate. Hatırlayacağınız üzere biz asenkron işlemlerini delegate üzerinden yapıyorduk. KontrolEt metodunu ise her dakikada bir defa (15. saniyede) çalışacak şekilde sonsuz bir döngüye soktuk.

MyEventArgs sınıfı nedir diye sorarsanız, .NET kütüphanesinde bulunan olayların çoğuna bakın object ve EventArgs türünde iki nesne vardır, bunun sebebi de kısaca şudur : olayın meydana geldiği andaki bilgilerin aktarılması. Yani oalyın gerçekleştiği an nerede ne, nasıl oldu vs. Biz MyEventArgs sınıfını veritabanında bulunan mesajları string türünde bir diziyle olaya bir metod atandığı zaman erişilebilsin diye yazdık. Form1.cs içerisinde bulabilirsiniz olayın gerçekleştiği anda ki bilgilere e.mesaj diyerek ulaştık tabi MyEventArgs sınıfında daha çok şey tanımlayabilirdik ama sade ve anlaşılır olsun diye basit birşeyler yapmak istedim.

Sınıf biraz daha geliştirilerek kullanıcı mesajları okuduktan sonra okundu olarak işlenebilir, tabi bizim amacımız delegate/olay/asenkron olduğu için bu kadarını yeterli gördüm.

Projeyi aşağıdan indirebilirsiniz.

[PROJE]

c örnek uygulama C# : Olay Oluşturma ve Asenkron Metod Örneği dot net c sharp

İyi çalışmalar.

Feb
25
Bismillahirrahmanirrahim

csharp C# : Asenkron Programlama   Thread, BeginInvoke vs. dot net c sharpSelam herkese , öncelikle herkesin mevlid kandilini kutlarım.
Bugün asenkron mimarisini inceleyeceğiz inş.

Asenkron mimari nedir ?
Süreçlerin bağımsız bir şekilde aynı anda devam etmesi şeklinde yorumlanmaktadır.

C# da asenkron mimari yapısını uygulamak için genel anlamda kullanılan iki ana yapı mevcuttur.

  1. Thread Sınıfı
  2. Asenkron Metodlar (BeginInvoke, Stream.BeginRead vb)

Bilgisayarlar aynı anda birden fazla işlem yapamaz, nasıl yapamaz ? Şöyle ki ; Biz her ne kadar word de bir yazı yazıyor ve winampta şarkı dinliyorken her iki işlemi biz her ne kadar aynı anda yapıyormuş gibi algılasakta değildir, yaptığımız bu işlemler sırasıyla yapılmaktadır. Toplam işlemler iş parçacıklarına bölünerek sırasıyla yapılır.

Bizde normal şartlar altında bir müdahelede bulunmadığımız sürece programlarımız senkron çalışır, yani kodu okur görevini yerine getirdikten sonra bir alt satırdaki kod ile devam eder. Asenkron programlama ile biz programımız bir şeyi yaparken onunla beraber başka şeyler yapmasını isteriz. Bunuda işlemleri parçacıklara bölerek gerçekleştirir bir ondan bir bundan, bir ondan bir bundan :)
devam C# : Asenkron Programlama   Thread, BeginInvoke vs. dot net c sharp oku..

Feb
23
Bismillahirrahmanirrahim

c sharp 150x150 C# : Events (olaylar) dot net c sharpMerhaba arkadaşlar, tatil bitti okul başladı bloğu az asıyorum :)
Bu dökümanda C# da temsilcilerin (delegate)  bir özel hali olan event yapısını anlatmaya çalışacağım inş.

İlkönce olayın tanımını yapalım, olaylar bizim formda yaptığımız işlemleri kontrol eder. Örneğin butona tıklamamız bir olaydır, mouse ile üstüne gelmemiz gene bir olaydır. Bu olaylar esnasında istediğimiz kodların çalıştırılmasını/metodların çağrılmasını olay yöneticisi dediğimiz temsilciler üstlenir.

Olaylar sınıfların bir üye elemanıdır. Olayın nasıl tanımlandığını aşağıda görebilirsiniz.

[erişim belirleyici] event [delegate türü] [olay adı];

Tanımlanmasından da anlaşıldığı üzere, event yapısı bağımsız değildir.

Yine aynı yolu izleyelim, önce altta verilen kodu inceleyin (uygulanacak adımları sırasıyla verdim), kendiniz ne olduğunu anlamaya çalışın, ardından verdiğim açıklamalarla tam anlamaya çalışalım.
devam C# : Events (olaylar) dot net c sharp oku..

Feb
19
Bismillahirrahmanirrahim

c sharp 150x150 C# : Delegates (temsilciler) dot net c sharpC# da bilinmesi gereken ayrı bir konu Delegateler yani temsilcilerdir. Delegateler metodları temsil eder.

Temsilcilerinin kullanılmasının amacı, belli olmayan metot çağrımlarını çalışma zamanında belirlemektir. Bildirimi aşağıdaki gibidir.

Delegate yapısı c++ dilindeki function pointerlara tekabül ediyor. Delegate konusu da interface gibi tek başına bir anlamlı bir konu değil, kafanızda bunu ben nerde niye kullanayım, bu ne işe yarar gibi sorularda kalıcak ama event yapısı ile birleşince olayı daha iyi pekiştirip anlayacaksınız inş. Event yapısınıda bir dahaki dökümanda yazacağım inş.

Delegate’in en kısa anlatımı şudur herhalde : Delegate’ler metodların bellekteki adreslerini aklında tutar :)

[Erişim belirleyicisi] delegate [geri dönüş tipi] [delegate ismi] (parametreler);

public delegate int Topla(int s1,int s2);

Aşağıdaki kodu inceleyin.

using System;

namespace _Delegate
{
    class Program
    {
        public delegate int TemsilcimHandler(int sayi1,int sayi2);

        public static int Topla(int t1, int t2)
        {
            return t1 + t2;
        }
        public static int Carp(int c1,int c2)
        {
            return c1 * c2;
        }

        static void Main(string[] args)
        {
            int s1, s2;
            Console.Write("1. sayi : ");
            s1 = Convert.ToInt32(Console.ReadLine());
             Console.Write("2. sayi : ");
            s2 = Convert.ToInt32(Console.ReadLine());

            TemsilcimHandler temsilci ;

            temsilci = new TemsilcimHandler(Topla);
            Console.WriteLine("Topla metodu :" + temsilci(s1, s2));

            temsilci = new TemsilcimHandler(Carp);
            Console.WriteLine("Çarpım metodu : " + temsilci(s1, s2));

            Console.Read();
        }

    }

devam C# : Delegates (temsilciler) dot net c sharp oku..

Feb
06
Bismillahirrahmanirrahim

HTML5 logo 150x150 HTML 5 Nedir codingAz önce Tolga’dan duydum, inceledim biraz hoşuma giden yanları oldu (özellikle video oynatma gibi) zaten ağırlık olarak sanırım ona yönelmişler birazda.

HTML 5 HTML dilinin son sürümüdür. Mozilla Firefox ve Opera tarayıcılarının güncel sürümleri tarafından kısmen desteklenmektedir, Google Chrome ve Safari tarayıcılarının güncel sürümleri üzerinde, deneme aşamasında da olsa çok daha iyi bir şekilde çalışmaktadır. Günümüzde kullanılan HTML 4.1 sürümü, CSS desteğiyle ne kadar düzenli ve sağlam bir yapıda kodlanırsa kodlansın, yine de fazladan yazılan kodların işlevselliği bozduğu bilinmektedir. Bu yüzden HTML 5 bu ihtiyaçları karşılamak adına geliştirilmeye başlanmıştır. Vidyo paylaşım sitesi Yotube, deneme aşamasında HTML 5 i kullanıcılarına sunmaktadır. Yotube-TestTube üzerinden etkinleştirilebilir.

Yeni Elementler

  • <canvas>: Sayfada bir tuval alanı oluşturur. Tuvale çizim javascript ile yapılabilir.
  • <audio>: Sayfaya ses oynatıcı bir modül ekler.
  • <video> : Video oynatıcı bir modül ekler. devam HTML 5 Nedir coding oku..

Feb
06
Bismillahirrahmanirrahim

c sharp 150x150 C# : Arayüzler [interface] dot net c sharpDaha önce Abstract (özet/soyut) metodların türeyen sınıfta özelleştirilmesi gerektiğini söylemiştik. Şimdi de ona benzeyen başka bir veri türü olan Interface i işleyeceğiz. Interface ile bütün metod ve özellikleri abstract olan bir sınıftan fazla farkı yoktur aslında.

Arayüzler bildirilirken başına büyük I harfi konulur, bu bir gelenektir, bir zorunluluğu yoktur.

Arayüzlerde metod, özellik, indexleyici, delegate ve olay bildirimi yapılabilir. Bildirdiğimiz bu veri türlerinin gövdesi yoktur.

Bildirimine geçmeden önce önemli 3 tane özellikten bahsetmek istiyorum;

  • Arayüzde bütün elemanlar içsel olarak public olduğu için ayrıca bir erişim belirleyicisi kullanmak yanlıştır.
  • Arayüzde statik eleman bildirimi yapılamaz.
  • Arayüzde değişken bildirimi yapılamaz.

Arayüz bildirimi interface anahtar sözcüğü kullanılarak bildirilir. Aşağıdaki kod bloğunda 2 metod ve bir özellik tanımladık.

devam C# : Arayüzler [interface] dot net c sharp oku..