| Ana Sayfa | Dersler | Download | Forum |Bize Ulaşın  |Siteni Ekle | Ziyaretçi Defteri |


  LİNUX ÜSTÜNDE .NET
  Regular Expressions
  Bileşen Tabanlı Programlama I
  Bileşen Tabanlı Programlama II
  Bileşen Tabanlı Programlama III
 
 

Bileşen Tabanlı Programlama I

Yeni bir yazı dizisi ile tekrar karşınızdayım. İl etapta Java ile hayatımıza giren ve Microsoft tabanlı yazılım geliştiriler içinde özellikle .Net'in piyasaya çıkmasını takiben gelen en büyük güzellik şüphesiz bileşen tabanlı programlamaya giriş yapabilmek ve artık birçok gereksiz kod yığınını programlarınız içersinde tekrar tekrar yazmadan sadece daha önce oluşturduğunuz yada 3. parti bir bileşenin metod ve özelliklerini kullanmak suretiyle daha az kod ile daha çok ve işlevsel metodları kullanabilmeniz sağlandı.

Daha önce Delphi, Visual Basic gibi dillerde bana göre yarı bileşen tabanlı uygulamalar yazabiliyorduk. ASP gibi web scripting dillerinde ise bundan bahsetmek neredeyse imkansızdı. Özellikle ASP gibi dillerde yüklü işletim sisteminin registry kayıtları üzerinde bir takım güncellemeler yapmanız gerekiyordu ki her birimizin birer web server ı olmadığını ve bu gibi ihtiyaçlarımızı bize sunan hosting firmaları ile çalışmak zorunda oluşumuzun getirdiği kısıtlılık ile her istediğimiz veya yazdığımız bileşeni uygulamalarımızda kullanamama sıkıntısıyla karşı karşıyaydık. Örnek olarak kendi yazdığınız bir bileşeni bir ASP uygulamasında kullanabilmeniz için öncelikle server yöneticisi tarafından buna izin verilmeli ve regsvr32 yöntemiyle bu bileşen register edilmeliydi. Bu da server yöneticisinin hemen hemen çoğu zaman bize olumsuz geri dönüşü ile sonuçlanır ve biz yine klasik yöntemler ile kodlara deyim yerindeyse taklalar attırarak belki 3-5 satır kod ile halledebileceğimiz sorunların üstesinden yığınla kod kullanarak gelebilirdik.

.Net teknolojisi ile beraber gelen bir tanımlamada "regsvr32 kullanmayan teknoloji" ydi. Ne demekti peki bu. Bu artık yazdığımız, satın aldığımız veya edindiğimiz bileşenleri register etmeden kullanabileceğimiz anlamına geliyordu. Yapamamız gereken sadece bileşen dosyamızı uygulamamızın root unda "Bin" folder ına atmamız ve uygulama içersinde kullanacağımız yerlerde deklare etmemiz yeterli. Bu şüphesiz bize bir çok avantaj sağladı. Bu avantajları aşağıda "Bileşen Tabanlı Çalışmanın Avantajları" arasında listeleyelim.

Bileşen Tabanlı Çalışmanın Avantajları

-Güvenlik Artışı
Bileşenlerimizi artık kendimiz yazabildiğimize göre üzerinde istediğimiz tüm özellikleri kullanabilir, istemediğimiz özellikleri devre dışı bırakabiliriz. Örneğin veritabanına erişim sağlaması için kodladığımız basit bir bileşende sadece belli tablolara veya stored procedure lere erişim sağlayabiliriz. Bu da şüphesiz uygulama güvenliğinin artık bizim kontrolümüzde olduğunu gösterir.

-Daha İyi Düzenleme
Yukarıda da bahsettiğim gibi önceden yapmamız gereken işlemlerin tüm kodlarını web sayfamız içersinde kullanmak zorundaydık. Çünkü bileşen register edemiyorduk. Ancak artık bileşenimiz yazıp "bin" folder ına koymamızın ardından sadece erişmek istediğimiz metod ve özelliklerine ait kodları web sayfası kodlarımızın arasında tutacağız. Bu da yazdığımız koddaki dağınıklık ve gereksiz işlevsel kod yığınına bir son verecektir. Bu bağlamda bileşen tabanlı çalışmak kodlarımızın düzenli görünmesini sağlar açıklaması yanlış olmayacaktır.

-Daha Kolay Sorun Giderme
Yukarıdaki madde ile bağlantılı olan bu avantaj şundan kaynaklanıyor. 1000 satır kod arasında bir hatanın bulunması veya en azından kodun incelenmesinin alacağı vakit ile 10 satır kodun kontrolü ve hatanın yakalanması şüphesiz karşılaştırılamaz. O halde bileşen tabanlı çalışmanın avantajı olarak karşımıza çıkan az kod yazımı kodun kontrolü ve hatanın ayıklanması aşamasında da bize yardımcı olacaktır.

-Daha Yönetilebilir Kod
Kodun yönetiminin kolay olması da yine 2. ve 3. madde ile bağlantılı aslında. Farklı olan nokta ise bileşen tabanlı çalışarak sadece hazırladığınız ve asıl işi yapan bileşenin gerekli kısımlarını kod bloğunuz içinde deklare edebilmenize ve gerekli her yerde tekrar tekrar kullanmanıza olanak sağlaması sebebiyle hem az hem de yönetilebilir daha doğrusu kolay  yönetilebilir uygulamalar yazmanıza olanak tanımasıdır.

-Kodun Tekrar Kullanılması
Yazdığınız bileşeni kullanabilmek için sadece kullanmak istediğiniz sayfada deklare etmenizin yeterli olduğundan bahsetmiştim. Bunun bize nasıl fayda olarak döneceği ise bu avantajda gizli. Yazdığınız herhangi bir kontrol fonksiyonunu veya olayı birden fazla sayfa ve hatta uygulama içinde kullanmanız gerekebilir. Bu sıklıkla başımıza gelen bir olaydır. Çoğu zaman genel geçer yazdığımız herhangi bir fonksiyon veya işlemi kopyala yapıştır yöntemi ile uygulamamıza dahil etmeyi ve bazı özelliklerini değiştirerek kullanmayı tercih ederiz bu da kodun yönetimi zorlaştırır ve gereksiz kodyığınları ile uğraşmamıza sebep olur. Bileşen tabanlı çalışmanın bize burada getirdiği avantaj ise aynı tarz fonksiyon veya özelliklere ihtiyacımız olan her proje veya sayfada sadece deklare edere bu özellikleri kullanma şansımızın olmasıdır.

-Basitlik
Bileşenler tek bir istemci talebi ile birden fazla işlemi aynı anda yerine getirebilirler buna örnek olara tek bir istem ile veritabanında birkaç tabloda yapılacak değişiklik ve tekbir cevabın döndürülmesi gösterilebilir. Bileşen tabanlı çalışmak sureti ile arka planda yapılan birden çok işlemin ayrıntılarının gizlenmesi sağlanır bu da uygulamamızave kodumuza basitlik katacaktır.

-Performans
Hepimiz uygulamalarımızda performans ın yüksek olmasını isteriz elbette. Arka plandaki bazı işlemlerin detaylarını azlatmaya çalışmak, bağlantıları ve nesneleri işimiz bittiğinde kapatmak veya yok etmek hep ASP den kalma performan arayışımızın hatırasıdır. ASP.Net te de bazı genel geçer kurallar aynen kalmıştır elbette ancak eşzamansız bir bileşen yaratarak zaman alacak bir işlem arka planda gerçekleşirken siz web sayfası kodunuz ile bu sırada gerçekleşmiş başka bir işlemin sonuçlarını ekranan basabilirsiniz. Bu da uygulamanızda zaman tasarrufu = performans olarak size geri döncektir.

Bileşen tabanlı çalışmanın avantajlarına ayırdığım bu yazıyı Bileşen Terimleri, Basit Bir Bileşenin Oluşturulması, Bileşen Sınıfının Derlenmesi ve Bileşen Kullanımını İçeren yazılarım takip edecek.

Özcan İLHAN

| Ana Sayfa | Dersler | Download | Forum |Bize Ulaşın  |Siteni Ekle | Ziyaretçi Defteri |

Türk MCSD .NET© 2005
Siteyi en kaliteli Internet Explorer 5 ve üzeri versiyonlarinda 800 x 600 pixel çözünürlükte izlemenizi tavsiye ederiz.