VB .Net’te COM Bileşenleri ve Arayüzleri Kullanımı
Asp January 23rd, 2008->
VB .Net ‘te Klasik COM Bileşenleri Ve Arayüzlerinin Kullanımı
.Net öncesi dönemde, COM teknolojisini destekleyen dillerle bileşen (component) tabanlı programlar yazıyorduk. COM; basitçe yeni bileşenler yaratmak veya varolan bileşenleri uygulamalar yada başka bileşenler içerisinden kullanmak için Microsoft tarafından tanımlanmış bir teknolojidi idi. COM teknolojisi sayesinde dilden bağımsız bileşenler tasarlamak ve COM destekli diller arasında bu bileşenleri kullanmak mümkündür.
Sizin de .Net ile tanışmadığımız dönemden, miras olarak kalmış ve bugün VB .Net uygulamalarınız içerisinden kullanmak istediğiniz COM bileşenleriniz olabilir. Bu isteğinizi gerçekleştirebilemenizi sağlayacak bilgiler yazının ilerleyen kısımlarında verilecektir. Ancak yazının konusu “VB .Net ‘te COM bileşenleri ve arayüzlerinin kullanılması” olduğu için COM teknolojisinin detaylarına girilmeyecektir. Bu sebeble COM teknolojisi ile ilgili temel kavramları bildiğinizi kabul ederek yazının bundan sonraki kısmına VB 6.0 ‘da birer COM bileşeni ve arayüzü içeren bir ActiweX DLL projesi yapıp daha sonra bu bileşeni, VB .Net ‘te ile yazacağımız uygulama tarafından referanse ederek kullanacağınız örnek bir uygulama ile devam edeceğiz.
Yapacağımız örnek uygulama client / server mimari ile çalışan ve aritmetik hesapların yapılmasına yönelik basit bir uygulama olacak. Uygulamanın server tarafı VB 6.0 ile yazılmış bir COM bileşeninden, client tarafı ise VB .Net ile yazılmış ve bu COM server’ı kullanan bir windows uygulamasından oluşacaktır.
1. Adım (Arayüzün Tanımlanması)
VB 6.0 ‘da bunun yolu hiç bir implementasyon kodu içermeyen soyut bir sınıf tasarlamaktır.
VB 6.0 ‘da MegaCalculator isminde ve türü ActiweX DLL olan yeni bir proje başlatın. Projeye eklenen sınıfın ismini IMegaCalc olarak değiştirin. (Sınıfın başında koyduğunuz I belirteci sınıfın bir interface olduğunu belirtmektedir) Bu sınıf soyut bir sınıf olduğu için sadece üyelerinin prototiplerini içermektedir. IMegaCalc sınıfının kodları aşağıda verilmiştir.
| ‘IMegaCalc Sınıfı |
| Option Explicit
Public Sub AddInput(inputvalue As Integer) End Sub Public Sub DoCalculation() End Sub Public Function GetOutput() As Double End Function Public Sub Reset() End Sub |
Bu kodları yazdıktan sonra projeyi “File | Make MegaCalculator.dll” ile derleyebilirisiniz. Bu sayede dll olarak derlenmiş ve register edilmiş bir bileşen arayüzünüz oldu. Projenizi kaydedip VB 6.0 ‘dan çıkabilirsiniz.
2. Adım (Bileşenin İmplementasyonu)
Bu aşamada ise bileşenin operasyonel kodlarının bulunduğu yeni bir ActiweX DLL projesi yaratacağız. Bunun için VB 6.0 ‘da ismi MeanCalculator ve türü ActiweX DLL olan yeni bir proje başlatın. Proje açıldıktan sonra ilk işiniz “Project | Referances” seçeneğinden MegaCalculator projesini referanse etmek olsun. Bundan sonra projenize eklenen sınıfın ismini ise MeanCalculator olarak değiştirin. Aşağıda MeanCalculator sınıfının kodları verilmiştir.
| ‘MeanCalculator Sınıfı
Option Explicit Implements IMegaCalc Dim mValue As Integer Dim mValues() As Double Dim mMean As Double Private Sub Class_Initialize()
End Sub Private Sub IMegaCalc_AddInput(inputvalue As Integer)
End Sub Private Sub IMegaCalc_DoCalculation()
End Sub Private Function IMegaCalc_GetOutput() As Double
End Function Private Sub IMegaCalc_Reset()
End Sub |
Bu kodları yazdıktan sonra projenizi “File | Make MeanCalculator.dll” olarak derleyin. Artık projenizi kaydedip VB 6.0 ‘dan çıkabilirsiniz. (Bu projeyi ‘de bir önceki ile aynı dizine kaydetmeniz düzenli çalışabilmek açısından faydalı olacaktır !)
3. Adım (Client Uygulamanın Yaratılması)
Client uygulama VB .Net içerisinde yaratacağımız bir Windows Appilaction projesinden ibaret. Bu uygulamanın görevi ise; yarattığımız COM bileşenini (MeanCalculator.dll) kullanarak çeşitli işlemler yapmak. Client uygulamanın bu bileşendeki fonksiyonları kullanabilmesi için, bileşenin uygulamaya tanıtılması, yani referanse edilmesi gerekmektedir. Referanse etme işlemi VB 6.0 ‘dakine benzer tarzda ve şöyle yapılmaktadır; “Project | Add Referance” seçeneğinde COM tab ‘ına geçin ve listeden “MeanCalculator” ı bularak projenize ekleyin. Çıkan mesaj penceresinde “Yes” demeniz gerekmektedir ! Bu aşamada Solution Explorer ‘da referances seçeneğine baktığınızda “MeanCalculator” ve onun kendi içerisinde referanse ettiği, “MegaCalculator” ‘ın eklendiğini görebilirsiniz.
Artık kullanıcı arabirimini yaratabilirsiniz. Arabirim için aşağıdaki resmi örnek alabilirsiniz ;

TextBox’ların ismileri sırsıyla “txtInput” ve “txtOutput” tur. Arabirimi bu şekilde hazırladıktan sonra, artık client side kodları yazabiliriz.
Public Class Form1
End Class |
Kodu kısaca incelersek, global olarak tanımlanmış oMean nesnesi; MeanCalculator namespace’indeki MeanCalc sınıfı türündendir. Ancak bu nesnenin türetilme işlemi form sınıfının constructor ‘ında yapılmıştır. Bunun amacı; form nesnesi türetilir türetilmez oMean nesnesinin de türetilmek istenmesidir. Daha sonra bu nesnenin metotları kullanılarak işlemler client side ‘ta arabirim ile etkileşimli olarak yapılmaktadır.


























Son Yorumlamalar