Yazarlar Sözlük Makaleler Yardım Masası Gözlük Forum İstatistik

Tüm Başlıklar XML

1.  Microsoft tarafından geliştirilen COM tabanlı süreçler arası iletişimi sağlayan teknoloji.

Bir uygulama tarafından sağlanan nesne(ler)in metodlarını çağırma, özellikleriniproperty değiştirme gibi işlemleri mümkün kılar. Bunu sağlayan yapıya automation controllers denir. Bir automation nesnesi IDispatch interfaceini implement eden bir COM nesnesidir. Bu interface'in Invoke isimli metodu sayesinde COM nesnesinin metodları çağrılabilir olur. C++ gibi dillerde bu çağrıları yapmak gerçekten zahmetlidir. Ama Delphi, Visual Basic gibi diller (hatta ASP, PHP gibi script dilleri) kullanıcıyı IDispatch'e falan hiç bulaştırmadan automation nesnelerini kendi nesneleriymiş gibi kullanabilirler.

Bir automation nesnesinin hangi metodlara ve özelliklere sahip olduğunu bilmek mümkün değildir. Çünkü nesne sadece IDispatch'i implement eder gerisine karışmaz. Dolayısıyla automation nesnesinin kullanılabilmesi için metodlarının iyi bir şekilde belgelenmiş olması gerekir. Bu durumda C++ gibi bir dille automation nesnesi kullanılabilir hale gelir. Eğer daha üst düzey bir dille kolayca kullanılmak isteniyorsa bu durumda type library denilen, nesneye ait metadata bilgisini saklayan dosyalara ihtiyaç vardır. Genellikle automation nesneleri type library'ler ile birlikte dağıtılır. Type library, Interface Description Language denilen özel bir dille nesneye ait public metodları bir bir listeler. Type library dosyalarını kullanarak C# veya Java kodu üreten toollar vardır. Script dilleri içinse böyle toollara gerek yoktur.

Son olarak PHP ile yazılmış, bir automation nesnesini (Excel sheet) kullanan örnek kod verelim:
<?

$excelApp = new COM("Excel.Application") or die("Olmadı. :( Registry'de kayıtlı mı bu?");
$excelApp->Workbooks->Add();
$excelApp->Range("A1:C6")->Select();
$excelApp->ActiveCell->Formula = "Hello World!";
$excelApp->Visible = 1;

?>

fizikci
27 Temmuz 2006 20:21
Bu konuda bildiklerinizi bizlerle paylaşabilirsiniz
Tabi bunun için yazarsanız giriş yapmalı, yazar değilseniz yazar olmalısınız.


Bu başlığa bkz veren girişlerin başlıkları nedir?

Bu başlığa bkz veren girişler başka hangi başlıklara bkz verdiler?
© 2005, Bilişim Kulübü. (1093 ms)
Ne yapabilirsin: SubtitleClick ile İngilizceni Geliştir, Çınar Framework ile kod yaz, Eglencelik.org'ta biraz eğlen