317 toplam yazı
1 April 2026 en yeni yazı
13 November 2003 ilk yazı
17 Bu sayfadaki yazılar

Bu kategorideki yazılar

  • Programlama Dilleri

    ArrayList Koleksiyonu ve DataGrid

    Bugünkü makalemizde, veritabanlarındaki tablo yapısında olan bir ArrayList’i bir DataGrid kontrolüne nasıl veri kaynağı olarak bağlayacağımızı inceleyeceğiz. Bildiğiniz gibi ArrayList bir koleksiyon sınıfıdır ve System.Collections isim uzayında yer almaktadır. Genelde ArrayList koleksiyonlarını tercih etmemizin nedeni, dizilere olan üstünlüklerinden kaynaklanmaktadır.

  • Programlama Dilleri

    İşe Yarar Bir MultiThreading(Çok Kanallı) Uygulama Örneği

    Bundan önceki üç makalemizde iş parçacıkları hakkında bilgiler vermeye çalıştım. Bu makalemde ise işimize yarayacak tarzda bir uygulama geliştirecek ve bilgilerimizi pekiştireceğiz. Bir iş parçacığının belki de en çok işe yarayacağı yerlerden birisi veritabanı uygulamalarıdır. Bazen programımız çok uzun bir sonuç kümesi döndürecek sorgulara veya uzun sürecek güncelleme ifadeleri içeren sql cümlelerine sahip olabilir. Böyle bir durumda programın diğer öğeleri ile olan aktivitemizi devam ettirebilmek isteyebiliriz. Ya da aynı anda birden fazla iş parçacığında, birden fazla veritabanı işlemini yaptırarak bu işlemlerin tamamının daha kısa sürelerde bitmesini sağlayabiliriz. İşte bu gibi nedenleri göz önüne alarak bugün birlikte basit ama faydalı olacağına inandığım bir uygulama geliştireceğiz.

  • Programlama Dilleri

    Thread'lerde Öncelik(Priority) Durumları

    İş parçacıklarını işlediğimiz yazı dizimizin bu üçüncü makalesinde, iş parçacıklarının birbirlerine karşı öncelik durumlarını incelemeye çalışacağız. İş parçacıkları olarak tanımladığımız metodların çalışma sıralarını, sahip oldukları öneme göre değiştirmek durumunda kalabiliriz. Normal şartlar altında, oluşturduğumuz her bir iş parçacığı nesnesi aynı ve eşit önceliğe sahiptir. Bu öncelik değeri Normal olarak tanımlanmıştır. Bir iş parçacığının önceliğini değiştirmek istediğimizde, Priority özelliğinin değerini değiştiririz. Priority özelliğinin .NET Framework’teki tanımı aşağıdaki gibidir.

  • Programlama Dilleri

    Thread'leri Belli Süreler Boyunca Uyutmak ve Yoketmek

    Bugünkü makalemizde iş parçacıklarının belli süreler boyunca nasıl durgunlaştırılabileceğini yani etkisizleştirilebileceğini işlemeye çalışacağız. Ayrıca iş parçacıklarının henüz sonlanmadan önce nasıl yok edildiklerini göreceğiz.

  • Programlama Dilleri

    StreamReader Sınıfı Yardımıyla Dosya Okumak

    Bugünkü makalemizde, sistemimizde yer alan text tabanlı dosyaları nasıl okuyabileceğimizi incelemeye çalışacağız. .NET ortamında, dosyaların okunması için stream’ler (akımlar) kullanılır. Bugün işleyeceğimiz StreamReader sınıfı da bunlardan bir tanesidir. StreamReader sınıfı dosyaların okunmasını, dosyalara yazılmasını vb. sağlar. StreamReader sınıfını bir FileStream nesnesi ile kullanabileceğimiz gibi, tek başına da kullanabiliriz. Kullanabileceğimiz yapıcı metodlardan birisi;

  • Programlama Dilleri

    Çok Kanallı(Multithread) Uygulamalar

    Bugünkü makalemiz ile birlikte threading kavramını en basit hâliyle tanımaya çalışacağız. Sonraki makalelerimizde de threading kavramını daha üst seviyede işlemeye çalışacağız. Bugün hepimiz bilgisayar başındayken aynı anda pek çok uygulamanın sorunsuz bir şekilde çalıştığını görürüz. Bir belge yazarken, aynı zamanda müzik dinleyebilir, internet üzerinden program indirebilir ve sistemimizin kaynaklarının elverdiği ölçüde uygulamayla eşzamanlı olarak çalışabiliriz. Bu bize, günümüz işlemcilerinin ve üzerlerinde çalışan işletim sistemlerinin ne kadar yetenekli olduğunu gösterir. Gösterir mi acaba?

  • Programlama Dilleri

    Boxing (Kutulamak) ve Unboxing (Kutuyu Kaldırmak)

    Bugünkü makalemizde, Boxing ve Unboxing kavramlarını incelemeye çalışacağız. Boxing değer türü bir değişkeni, referans türü bir nesneye aktarmaktır. Unboxing işlemi ise bunun tam tersidir. Yani referans türü değişkenin işaret ettiği değeri tekrar, değer türü bir değişkene aktarmaktır. Bu tanımlarda karşımıza çıkan ve bilmemiz gereken en önemli noktalar, değer türü değişkenler ile referans türü nesnelerin bellekte tutuluş şekilleridir.

  • Programlama Dilleri

    Kalıtım (Inheritance) Kavramına Kısa Bir Bakış

    Bir önceki makalemizde C# dilinde sınıf kavramına bir giriş yapmış ve OOP (Objcet Oriented Programming-Nesneye Dayalı Programlama) tekniğinin en önemli kavramlarından biri olan kalıtımdan bahsedeceğimizi söylemiştik. Bugünkü makalemizde bu kavramı incelemeye çalışacağız.

  • Programlama Dilleri

    Virtual(Sanal) Metotlar

    Bugünkü makalemizde sanal metotların kalıtım içerisindeki rolüne bakacağız. Sanal metotlar, temel sınıflarda tanımlanan ve türeyen sınıflarda geçersiz kılınabilen metotlardır. Bu tanım bize pek bir şey ifade etmez aslında. O halde gelin sanal metodların neden kullanırız, once buna bakalım. Bu amaçla minik bir örnek ile işe başlıyoruz.

  • Programlama Dilleri

    Bir Sınıf Yazalım

    Bugünkü makalemizde ADO.NET kavramı içerisinde sınıfları nasıl kullanabileceğimizi incelemeye çalışacak ve sınıf kavramına kısa bir giriş yapacağız. Nitekim C# dili tam anlamıyla nesne yönelimli bir dildir. Bu dil içerisinde sınıf kavramının önemli bir yeri vardır. Bu kavramı iyi anlamak, her türlü teknikte, sınıfların avantajlarından yararlanmanızı ve kendinize özgü nesnelere sahip olabilmenizi sağlar. Zaten .NET teknolojisinde yer alan her nesne, mutlaka sınıflardan türetilmektedir.

  • Programlama Dilleri

    Reflection Sınıfı İle Tiplerin Sırrı Ortaya Çıkıyor

    Hiç .NET’te yer alan bir tipin üyelerini öğrenebilmek istediniz mi? Örneğin var olan bir .NET sınıfının veya sizin kendi yazmış olduğunuz ya da bir başkasının yazdığı sınıfa ait tüm üyelerin neler olduğuna programatik olarak bakmak istediniz mi? İşte bugünkü makalemizin konusu bu: herhangi bir tipe (type) ait üyelerin neler olduğunu anlayabilmek. Bu amaçla, Reflection isim uzayını ve bu uzaya ait sınıfları kullanacağız.

  • Programlama Dilleri

    Stack ve Queue Koleksiyon Sınıfı

    Bugünkü makalemizde Stack ve Queue koleksiyon sınıflarını incelemeye çalışacağız. Bir önceki makalemizde bildiğiniz gibi, HashTable koleksiyon sınıfını incelemiştik. Stack ve Queue koleksiyonları da, System.Collections isim alanında yer alan ve ortak koleksiyon özelliklerine sahip sınıflardır. Stack ve Queue koleksiyonları, her koleksiyon sınıfında olduğu gibi, elemanlarını nesne (object) tipinde tutmaktadırlar. Bu koleksiyonların özelliği giren-çıkan eleman prensipleri üzerine çalışmalarıdır. Stack koleksiyon sınıfı, LIFO adı verilen Last In First Out (Son giren ilk çıkar) prensibine göre çalışırken, Queue koleksiyon sınıfı ise FIFO yani First In First Out (İlk giren ilk çıkar) prensibine göre çalışır. Konuyu daha iyi anlayabilmek için aşağıdaki şekilleri göz önüne alalım.

  • Programlama Dilleri

    HashTable Koleksiyon Sınıfı

    Bugünkü makalemizde HashTable koleksiyon sınıfını incelemeye çalışacağız. Bildiğiniz gibi Koleksiyonlar System.Collections namespace’inde yer almakta olup, birbirlerinin aynı veya birbirlerinden farklı veri tiplerinin bir arada tutulmasını sağlayan diziler oluşturmamıza imkan sağlamaktadırlar. Pek çok koleksiyon sınıfı vardır. Bugün bu koleksiyon sınıflarından birisi olan HashTable koleksiyon sınıfını inceleyeceğiz.

  • Programlama Dilleri

    Struct Kavramı ve Class ile Struct Arasındaki Farklar

    Bugünkü makalemizde struct kavramını incelemeye çalışacağız. Hatırlayacağınız gibi, kendi tanımladığımız veri türlerinden birisi olan Numaralandırıcıları (Enumerators) görmüştük. Benzer şekilde diğer bir veri tipi de struct (yapı)’lardır. Yapılar, sınıflar ile büyük benzerlik gösterirler. Sınıf gibi tanımlanırlar. Hatta sınıflar gibi, özellikler, metodlar, veriler, yapıcılar vb… içerebilirler. Buna karşın sınıflar ile yapılar arasında çok önemli farklılıklar vardır.

  • Programlama Dilleri

    Enumerators

    Bugünkü makalemizde, kendi değer türlerimizi oluşturmanın yollarından birisi olan Enumerator’ları inceleyeceğiz. C# dilinde veri depolamak için kullanabileceğimiz temel veri türleri yanında kendi tanımlayabileceğimiz türler de vardır. Bunlar Structs (Yapılar), Arrays (Diziler) ve Enumerators (Numaralandırıcılar)’dır. Numaralandırıcılar, sınırlı sayıda değer içeren değişkenler yaratmamıza olanak sağlarlar. Burada bahsi geçen değişken değerleri bir grup oluştururlar ve sembolik bir adla temsil edilirler. Numaralandırıcıları kullanma nedenlerimizden birisi, verilere anlamlar yükleyerek program içerisinde kolay okunabilmelerini ve anlaşılabilmelerini sağlamaktır. Örneklerimizde bu konuyu çok daha iyi anlayacaksınız. Bir Numaralandırıcı tanımlamak için aşağıdaki syntax kullanılır.

  • Programlama Dilleri

    Params Anahtar Sözcüğünün Kullanımı

    Değerli Okurlarım Merhabalar.

  • Programlama Dilleri

    Overload Metodların Gücü

    Bu makalemde sizlere overload kavramından bahsetmek istiyorum. Konunun daha iyi anlaşılabilmesi açısından, ilerliyen kısımlarda basit bir örnek üzerinde de çalışacağız.