Ocak
5th 2008
C# ile MS Access Stored Queries Kullanımı

Posted under Programlama


Hızla gelişen ve değişen dünyaya ayak uydurmak için bilgisayarları hayatın tüm alanlarında kullanmak neredeyse zorunlu hale geldi. Diğer taraftan özellikle iş dünyasının bugünkü hacimde iş yapabilmesinde bilişim sektörünün katkısı yatsınamaz. Kısacası hem bilişim hem de iş dünyası birbirlerinin gelişmelerinde adeta katalizör gibi çalışıyorlar. Bu durumda kurumların iş süreçlerinin bilgisayar ortamında yürütülmesi için çok sayıda ve karmaşık uygulamara ihtiyaç gün geçtikçe artıyor. Bu da biz yazılımcılar için güzel bir gelişmedir.

Fakat yukarıda bahsettiğim olayın diğer bir yüzü de var. Çoğu zaman müşterilere sunduğumuz çözümlerde esneklik onlar için önemli bir kirter haline gelmiştir. Bir yazılımı geliştirirken çok değişik araçlar kullanma ihitmalinin olması bir bakıma bizim ilermizi yaparken daha planlama aşamasında dikkatli olmamızı zorunlu kılar hale gelmiştir. Bu yazıda inceleyeceğimiz konu da üreteceğimiz çözümleri daha fazla nasıl esnek hale getirebiliriz sorusuna cevap vermeye odaklanmıştır.
Okumaya Devam Et »

Yorum Yok »

Ocak
4th 2008
C# ile Çok Kanallı(Multithread) Uygulamalar - 4

Posted under C# (csharp)


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 belkide 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 bir den 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ğlıyabiliriz. İşte bu gibi nedenleri göz önüne alarak bu gün birlikte basit ama faydalı olacağına inandığım bir uygulama geliştireceğiz.

Olayı iyi anlayabilmek için öncelikle bir milat koymamız gerekli. İş parçacığından önceki durum ve sonraki durum şeklinde. Bu nedenle uygulamamızı önce iş parçacığı kullanmadan oluşturacağız. Sonrada iş parçacığı ile. Şimdi programımızdan kısaca bahsedelim. Uygulamamız aşağıdaki sql sorgusunu çalıştırıp, bellekteki bir DataSet nesnesinin referans ettiği bölgeyi, sorgu sonucu dönen veri kümesi ile dolduracak.

Okumaya Devam Et »

Yorum Yok »

Ocak
4th 2008
C# ile Çok Kanallı(Multithread) Uygulamalar - 3

Posted under C# (csharp)

İş 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 şı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.

public ThreadPriority Priority {get; set;}
Okumaya Devam Et »

Yorum Yok »

Ocak
4th 2008
Visual Basic’ten C#’a Geçiş

Posted under C# (csharp) & Visual Basic

Merhaba, bunca zamandır Visual Basic kullanan biri olarak .NET’e geçerken Visual Basic’i seçtim. Daha çok Web Programıyla ilgilendiğim için internette yyaptığım aramalarda aspx örneklerinin büyük bir çoğunluğunun C# ile hazırlandığını gördüm. Daha sonra bazı makaleler kurcaladım. C#’ın geleceğin dili olduğu fikrine vardım.Elime geçen bir kaç ufak kod üzerinde inceleme yapmaya başladım. Yaptıklarımı sizlerle paylaşmak istedim. Bunu yaparken VB.Net’i orta seviye bilen, C#’ı hiç bilmeyen programcıları düşünerek hazırladım.

İlk dikkatimizi çekecek olan Syntax(Sözdizimi) olacaktır. VB ile en önemli farklılık buradan geliyor. Bu noktada bazı önemli noktaları açıklayacağım.
Yorum satırları: Yorum yazmak için iki farklı metod var. İlki tek satır diğeri blok halinde yazılır.

//Bu bir satırlık yorumdur.
Okumaya Devam Et »

Yorum Yok »

Ocak
4th 2008
C# ile Çok Kanallı(Multithread) Uygulamalar - 2

Posted under C# (csharp)

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

Bir önceki makalemizde hatırlayacak olursanız, iş parçacıkları haline getirdiğimiz metodlarımızda işlemeleri yavaşlatmak amacı ile bazı döngüler kullanmıştık. Gerçek hayatta çoğu zaman, iş parçacıklarının belirli süreler boyunca beklemesini ve süre sona erdiğinde tekrardan işlemelerine kaldığı yerden devam etmesini istediğimiz durumlar olabilir. Önceki makalemizde kullandığımız Suspend metodu ile ilgili iş parçacığını durdurabiliyorduk. Bu ilgili iş parçacıklarını geçici süre ile bekletmenin yollarından birisidir. Ancak böyle bir durumda bekletilen iş parçacığını tekrar hareketlendirmek kullanıcının Resume metodunu çalıştırması ile olabilir. Oysaki biz, iş parçacığımızın belli bir süre boyunca beklemsini isteyebiliriz. İşte böyle bir durumda Sleep metodunu kullanırız. Bu metodun iki adet overload edilmiş versiyonu vardır.

public static void Sleep(int);

public static void Sleep(TimeSpan);

Biz bugünkü uygulamamızda ilk versiyonu kullanacağız. Bu versiyonda metodumuz parametre olarak int tipinde bir değer almaktadır. Bu değer milisaniye cinsinden süreyi bildirir. Metodun Static bir metod olduğu dikkatinizi çekmiş olmalıdır. Static bir metod olması nedeni ile, Sınıf adı ile birlikte çağırılmak zorundadır. Yani herhangibir thread nesnesinin ardından Sleep metodunu yazamassınız. Peki o halde bekleme süresinin hangi iş parçacığı için geçerli olacağını nereden bileceğiz. Bu nedenle, bu metod iş parçacığı olarak tanımlanan metod blokları içerisinde kullanılır. Konuyu örnek üzerinden inceleyince daha iyi anlayacağız. Metod çalıştırıldığında parametresinde belirtilen süre boyunca geçerli iş parçacığını bekletir. Bu bekleme diğer parçacıkların çalışmasını engellemez. Süre sona erince, iş parçacığımız çalışmasına devam edicektir. Şimdi dilerseniz örnek bir uygulama geliştirelim ve konuya açıklık getirmeye çalışalım.

Okumaya Devam Et »

Yorum Yok »



eXTReMe Tracker
hosting ------------------------------ yeliiniz Silinmitir.Ltfen Sayfanzdan Kodu Kaldrnz.