.Net ile Kodlanmis Componentlarin COM+ Olarak Kullanilmasi

.Net ile Kodlanmis Componentlarin COM+ Olarak Kullanilmasi

others.Net ile yazdigimiz dll i COM componenti olarak kullanmamiz gerekiyorsa ne yapacagiz? Bu cok karsilasilin bir porblem degildir ama karsilasildiginda da cozulmesi konuyu bilmeyenler icin nerdeyse imkansizdir.

Gunumuze uyarlarsak, Visual Basic ile yazilmis sistemleriniz var ve .Net`e gecmeye calisiyorsunuz yani buyuk bir conversion projesi sizi bekliyor ama bu arada da yavas yavas .Net`e geciyorsunuz bir an geliyorki yazdiginiz islemin VB 6.0 (oldugunu farzedersek) da da kullanmak gerekti ne yapacagiz?

Oncelikle yazdigimiz tum dll icindeki fonksiyonlar tabiku public olmak durumunda , ayirica bazi ozellikler VB ile kullanilmayabilir parametreli constructor a VB den erisemeyiz , bu ve buna benzer VB de olmayan ama .Net de olan ozellikler kullanmamaliyiz. Ayrica geriye deger dondurmek istiyorsak da bu VB nin anlayacagiz sekild olmalidir. Bunu yanlis yaptigimiz an bunun cozumu yoktur 🙁

Dll`i yazdik diyelim ve simdi bunu nasil COM+ veya COM olarak kullanacagiz. Bunu da RegAsm exe si ile kolayca yapabiliriz bununla derledikten sonra da projemize refere ederek kullaniriz.

RegAsm nin yaptigi islem ise:Register Assembly dir ve bunu kullanarak olusturdugumuz dll i register a yazarak kullanilmasini saglar. RegAsm bize tlb uzantili bir derlenmis dosya sunar. Bu dosya da COM veya COM+ Componentini projemize refere etmeyi saglayan metadata yi ve cesitli linkleri ihtiva eder.

Son olarak dikkat etmemiz gereken en onemli sey ise: yazdigimiz .Net dll inde projenin AssemblyInfo.cs dosyasinda ComVisible ozelliginin true olmasidir, bu ozellik default da false gelmektedir.

Leave a Reply

Your email address will not be published. Required fields are marked *