İçeriğe atla

OLE Otomasyonu

Microsoft Windows uygulama programlamasında, OLE Otomasyonu (daha sonra basitçe Otomasyon olarak yeniden adlandırıldı[1][2]), Microsoft tarafından oluşturulan süreçler arası bir iletişim mekanizmasıdır. Başlangıçta Visual Basic olan komut dosyası dilleri tarafından kullanılması amaçlanan Bileşen Nesne Modeli'nin (COM) bir alt kümesine dayanmaktadır, ancak şimdi Windows'ta birkaç dil tarafından kullanılmaktadır. IDispatch arabirimini uygulamak için tüm otomasyon nesneleri gereklidir. Otomasyon denetleyicileri adı verilen uygulamaların, diğer uygulamalar tarafından dışa aktarılan paylaşılan otomasyon nesnelerine erişebildiği ve bunları değiştirebildiği (yani özelliklerini ayarlayabildiği veya yöntemleri çağırabildiği) bir altyapı sağlamaktadır.[3] Uygulamaların birbirini kontrol etmesi için daha eski bir mekanizma olan Dinamik Veri Değişimi'nin (DDE) yerini almaktadır. DDE'de olduğu gibi, OLE Otomasyonunda otomasyon denetleyicisi "istemci"dir ve otomasyon nesnelerini dışa aktaran uygulama "sunucu"dur.

Adının aksine, bazı Otomasyon nesneleri OLE ortamlarında kullanılabilse de, otomasyon nesneleri mutlaka Microsoft OLE kullanmaz. Karışıklığın kökleri, daha önce aşağı yukarı COM ile eşanlamlı olan Microsoft'un daha önceki OLE tanımında yatmaktadır.

Avantajlar ve sınırlamalar

Birlikte çalışabilirliği sağlamak için otomasyon arabirimleri, tüm COM türlerinin bir alt kümesini kullanacak şekilde sınırlandırılmıştır.[4][5] Özellikle, otomasyon arabirimleri, ham COM dizileri yerine SAFEARRAY kullanmalıdır.

Ancak otomasyonla uyumlu COM sunucuları, yerleşik OLE sıralama uygulamasına güvenebilmektedir.[6] Bu, işlem dışı sıralama için ek proxy/saplama projelerine olan ihtiyacı ortadan kaldırmaktadır.

Kullanım şekli

Otomasyon, komut dosyası oluşturma kolaylığı göz önünde bulundurularak tasarlanmıştır. Bu nedenle denetleyiciler genellikle son kullanıcılara Visual Basic for Applications gibi diller sağlayarak, komut dosyaları aracılığıyla otomasyon nesnelerini kontrol etmelerine olanak tanımaktadır. Otomasyon nesneleri genellikle geliştirmeyi basitleştirmek için C++[7] özniteliklerinin kullanılabileceği C++ gibi geleneksel dillerde yazılmaktadır. Visual Basic ve Borland Delphi gibi diller ayrıca temel uygulamanın karmaşıklığını gizleyen Otomasyon için uygun bir sözdizimi sağlamaktadır.[8]

Tür kitaplıkları

Bir uygulamayı otomatikleştirmek için, bir otomasyon denetleyicisinin geliştiricisi, etkinleştirme nesnelerini dışa aktaran hedef uygulama tarafından kullanılan nesne modelini bilmelidir.[9] Bu, hedef uygulamanın geliştiricisinin nesne modelini herkese açık olarak belgelemesini gerektirmektedir. Hedef uygulamanın nesne modeli bilgisi olmadan otomasyon kontrolörlerinin "zordan imkansıza"[10] geliştirilmesidir. Bu komplikasyonlar nedeniyle, Otomasyon bileşenlerine genellikle sınıflar, arabirimler ve bir nesne kitaplığı tarafından sunulan diğer özellikler hakkında meta veriler içeren tür kitaplıkları sağlanmaktadır. Arayüzler, Microsoft Arayüz Tanımlama Dili'nde açıklanmıştır. Tür kitaplıkları, Microsoft OLE/COM Nesne Görüntüleyici (oleview.exe, Microsoft Platform SDK'nın bir parçası) veya Visual Basic'teki Nesne Tarayıcı (sürüm 6'ya kadar) ve Visual Studio .NET gibi çeşitli araçlar kullanılarak görüntülenebilmektedir. Tür kitaplıkları, COM ile Microsoft .NET ve Java gibi diğer platformlar arasında birlikte çalışmak için Proxy kalıbı/saplama kodu oluşturmak için kullanılmaktadır. Java yerleşik COM desteğinden yoksun olsa da, JACOB[11] ve jSegue gibi araç setleri, tür kitaplıklarından proxy kaynak kodu (iki bölümden, bir dizi Java sınıfından ve bir Java Yerel Arabirim DLL'si için bir C++ kaynağından oluşur) oluşturabilmektedir. Bu çözümler yalnızca Windows'ta çalışmaktadır.

Microsoft, Microsoft Office'teki[12] tüm uygulamaların nesne modelini herkese açık olarak belgelemiştir ve diğer bazı yazılım geliştiriciler de uygulamalarının nesne modellerini belgelemiştir. Nesne modelleri, ODL'de açıklanan arayüzleri ile tip kitaplıkları olarak otomasyon kontrolörlerine sunulmaktadır

Dil desteği

Otomasyon, aşağıdakiler dahil ancak bunlarla sınırlı olmamak üzere çeşitli diller için mevcuttur:

Ayrıca bakılabilir

  • ActiveX
  • Active Scripting
  • Object Linking and Embedding (OLE)
  • Component Object Model (COM)

Ek bilgiler

Ek bağlantılar

Kaynakça

  1. ^ Microsoft Corporation. "Automation (MFC)". MSDN. 18 Şubat 2008 tarihinde kaynağından arşivlendi. 
  2. ^ KruJ.; Wingo, Scott; Shepherd, George. "Chapter 25: Automation". Programming Microsoft Visual C++ 6.0 (5.5yıl=1998 bas.). Redmond, WA: Microsoft Press. ISBN 978-1-57231-857-1. 
  3. ^ Gordon McComb (1997). "Using OLE Automation to Control WordPerfect". 15 Ağustos 2017 tarihinde kaynağından arşivlendi. Erişim tarihi: 20 Temmuz 2006.  — McComb describes how to use OLE Automation instead of DDE to control WordPerfect
  4. ^ Microsoft MSDN: oleautomation attribute 13 Mart 2016 tarihinde Wayback Machine sitesinde arşivlendi.
  5. ^ Microsoft MSDN: Automation-Compatible Types 11 Mart 2016 tarihinde Wayback Machine sitesinde arşivlendi.
  6. ^ Microsoft MSDN: Marshaling Details (COM) Type Library Marshaling community additions 9 Mart 2016 tarihinde Wayback Machine sitesinde arşivlendi.
  7. ^ Chris Oakley. "OLE Automation for C++ programmers". 24 Haziran 2012 tarihinde kaynağından arşivlendi. 
  8. ^ MSDN Magazine: C++ Attributes: Make COM Programming a Breeze with New Feature in Visual Studio .NET 19 Ocak 2015 tarihinde Wayback Machine sitesinde arşivlendi.
  9. ^ a b Yehuda Shiran and Tomer Shiran. "OLE Automation in JavaScript". WebReference. 10 Mayıs 2000 tarihinde kaynağından arşivlendi.  — despite the title, the article discusses JScript rather than JavaScript
  10. ^ Bruce Armstrong (16 Ocak 2006). "OLE — Extending the Capabilities of PowerBuilder (Part 2)". PowerBuilder Developers' Journal. 12 (11). 19 Şubat 2008 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2021. 
  11. ^ "j-Interop Java COM interoperability from any platform". 1 Şubat 2009 tarihinde kaynağından arşivlendi. 
  12. ^ "How to find and use Office object model documentation". KnowledgeBase. Microsoft Corporation. 18 Şubat 2008 tarihinde kaynağından arşivlendi. 
  13. ^ "OLE Delph kullanarak otomasyoni". About.com. 9 Kasım 2005 tarihinde kaynağından arşivlendi. 
  14. ^ Kaynak hatası: Geçersiz <ref> etiketi; interop isimli refler için metin sağlanmadı (Bkz: )
  15. ^ "Open Object Rexx". 7 Şubat 2005 tarihinde kaynağından arşivlendi. 
  16. ^ Jan Dubois (Yaz 1998). "Win32::OLE". The Perl Journal. 3 (2). 5 Mayıs 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 11 Temmuz 2021. 
  17. ^ The PHP Group (25 Temmuz 2006). "PHP: COM and .Net (Windows)". 27 Ocak 2001 tarihinde kaynağından arşivlendi. 
  18. ^ Mark Hammond. "Python for Windows Extensions". 3 Ağustos 2003 tarihinde kaynağından arşivlendi. 
  19. ^ Sourceforge. "Comtypes Python package". 23 Ekim 2004 tarihinde kaynağından arşivlendi. 
  20. ^ Tcl programmers. "OLE from a Tcl perspective". 15 Haziran 2011 tarihinde kaynağından arşivlendi. 
  21. ^ Stan Littlefield. "OLE TUTORIAL WINBATCH OLE PROGRAMMING". 11 Temmuz 2021 tarihinde kaynağından arşivlendi. Erişim tarihi: 5 Nisan 2022. 

İlgili Araştırma Makaleleri

<span class="mw-page-title-main">JavaScript</span> programlama dili

JavaScript, HTML ve CSS ile birlikte World Wide Web'in temel teknolojilerinden biri olan programlama dilidir. Web sitelerinin %97'sinden fazlası, web sayfası hareketleri için istemci tarafında JavaScript kullanırlar ve kullanılan kodlar genellikle üçüncü taraf kitaplıkları içerir. Tüm büyük web tarayıcılarında, kaynak kodunu kullanıcıların cihazlarında yürütebilmek için özel bir JavaScript motoru bulunur.

<span class="mw-page-title-main">C♯</span> programlama dili

C#; Microsoft tarafından .NET Teknolojisi için geliştirilen modern bir programlama dilidir. Sözdizimi C-like bir deneyim sunar.

<span class="mw-page-title-main">Visual Basic</span>

Visual Basic, Microsoft tarafından, Basic programlama dili üzerinde geliştirilmiş, olay yönlendirmeli, üst seviye, nesne tabanlı ve görsel bir programlama dilidir. Öğrenilmesi de kullanılması da oldukça kolaydır.

<span class="mw-page-title-main">Windows Vista</span> 2007de piyasaya sürülen Windows sürümü

Windows Vista, kişisel bilgisayarlar için geliştirilen Microsoft Windows işletim sistemleri ailesinin sürüm olarak altıncı üyesidir. 22 Temmuz 2005'te gerçek adı duyurulmadan önce Longhorn kod adıyla tanınıyordu. Windows Vista, 30 Ocak 2007'de dünya çapında piyasaya sürülmüştür. Microsoft Türkiye, 24 Ocak 2007 tarihindeki tanıtımıyla Vista'nın resmî lansmanını yapan ilk Microsoft şubesi olmuştur. Windows Vista eski sürümle oranla birçok yeni özellik ve değişikliğe sahiptir. Bu değişim geliştirilmiş grafiksel kullanıcı arayüzü, görsel stil, yeniden tasarlanmış arama fonksiyonları, multimedya araçları, yeniden tasarlanmış ağ iletişimi, görüntü ve yazıcı gibi çeşitli fonksiyonları kapsamaktadır.

<span class="mw-page-title-main">Nesne yönelimli programlama</span> nesne kavramına dayalı programlama paradigması

Nesne yönelimli programlama veya kısaca NYP, Her işlevin nesneler olarak soyutlandığı bir programlama yaklaşımıdır. NYP destekleyen programlama dilleri yüksek seviye diller olarak adlandırılır.

Nesne tabanlı programlama dili, nesne kullanımını destekleyen ve kapsülleme ilkesine uyan programlama dillerini tanımlar. Ancak nesne tabanlı programlama dilleri, kalıtım gibi nesne yönelimli programlama dillerine özel özellikleri taşımazlar. Bu durumda nesne tabanlı programlama dilleri nesne yönelimli programlama dillerinin altkümesini oluşturur.

ActiveX, Microsoft'un Microsoft Windows platformları için geliştirdiği bir nesne bileşeni modelidir (COM). Yazılım tabanlı olan ActiveX teknolojisi Internet Explorer eklentisi ve web sayfalarına iliştirilmiş ActiveX tabanlı uygulama olarak çalışır.

<span class="mw-page-title-main">.NET Framework</span> Yazılım

.NET Framework, Microsoft tarafından geliştirilen, açık İnternet protokolleri ve standartları üzerine kurulmuş bir "uygulama" geliştirme platformu. Daha önce Sun Microsystems tarafından geliştirilmiş olan Java platformuna önemli benzerlikler göstermektedir.

<span class="mw-page-title-main">Visual Basic .NET</span>

Visual Basic .NET, görsel programlama dillerinden biri olan Visual Basic'in geliştirilmiş ve modernize edilmiş son sürümüdür. Microsoft tarafından 2002 yılında tanıtılan bu sürüm, nesne yönelimli programlama özellikleri sunmaktadır. Visual Basic .NET, özellikle Windows uygulamaları geliştirmek için yaygın olarak kullanılmakta olup, .NET Framework ile entegrasyonu sayesinde geniş bir kütüphane ve araç setine erişim imkânı sunmaktadır.

Microsoft Visual Studio, Microsoft tarafından geliştirilen bir tümleşik geliştirme ortamıdır (IDE). Microsoft Windows, Windows Mobile, Windows CE, .NET Framework, .NET Compact Framework ve Microsoft Silverlight tarafından desteklenen tüm platformlar için yönetilen kod ile birlikte yerel kod ve Windows Forms uygulamaları, web siteleri, web uygulamaları ve web servisleri ile birlikte konsol ve grafiksel kullanıcı arayüzü uygulamaları geliştirmek için kullanılır.

<span class="mw-page-title-main">SQLite</span>

SQLite, dünyada en çok dağıtılan ve tavsiye edilen kaynak kodları halka açık, tamamen C/C++ programlama dilleriyle geliştirilmiş sunucu yazılımı ve yapılandırma gereksinimi olmayan, işlemsel ve ilişkisel bir SQL veritabanı motorudur.

VCL, Delphi, C++ Builder ve Kylix yazılım geliştirme ortamlarında kullanılmak üzere Borland tarafından Object Pascal kullanılarak geliştirilmiş bileşen tabanlı bir yazılım kütüphanesidir.

Programlama paradigmaları, programlama dillerini özelliklerine göre sınıflandırmanın bir yoludur. Diller birden fazla paradigma içinde sınıflandırılabilir.

<span class="mw-page-title-main">Microsoft Azure</span>

Microsoft Azure hem açık çevre ortamlarından hem de İnternet'ten tüketilebilen çok çeşitli İnternet hizmetini sağlamakta" olan bir bulut platformu hizmetidir. Microsoft Online Services hizmetinin lansmanından sonra gelen bulut bilgi işlemi içine alınan Microsoft'un ilk adımıdır. Kısaca bir hizmet olarak Microsoft yazılım firmasının altyapısıdır. Azure, Ekim 2008'de açıklandı ve 1 Şubat 2010 tarihinde Windows Azure olarak serbest bırakıldı.

<span class="mw-page-title-main">MonoDevelop</span>

MonoDevelop Linux, OS X ve Windows işletim sistemleri için geliştirilmiş bir açık kaynak tümleşik geliştirme ortamıdır. .NET framework ile Windows uygulamaları geliştirenlerin, alternatif olarak Mono kullanarak geliştirme yapmalarına olanak tanımaktadır. Linux ve Mac OS X için .NET teknolojilerini kullanma olanağı sunar.

Evrensel Windows Platformu Microsoft tarafından oluşturulmuş ve ilk olarak Windows 10'da tanıtılan, platforma özgü bir uygulama mimarisidir. Bu yazılım platformunun amacı, her biri için yeniden yazılmaya gerek kalmadan Windows 10, Windows 11 ve Windows 10 Mobile'da çalışan evrensel Windows Platformu uygulamaların geliştirilmesine yardımcı olmaktır. C++, C#, Visual Basic .NET veya XAML kullanarak Windows uygulaması geliştirmeyi destekler. API, C++ ile uygulanır ve C++, VB.NET, C#, F# ve JavaScript'de desteklenir. Windows Server 2012 ve Windows 8'de ilk tanıtılan Windows Runtime platformunun bir uzantısı olarak tasarlanan UWP, geliştiricilere potansiyel olarak birden fazla cihazda çalışacak uygulamalar oluşturmasına olanak tanır

<span class="mw-page-title-main">Windows Live Connect</span>

Windows Live Connect Microsoft'un Windows Live hizmetlerinin bir parçasıydı. API'lar ve ortak kontrollerin bir toplamıdır. Geliştiricilere daha derin bir denetime sahip olmasını, açık ve kolayca erişilebilen uygulama programlama arabirimleriyle (API'ler) çekirdek Windows Live hizmetlerine ve verilere erişmesini sağlar.

.NET Compact Framework .NET Framework'ün bir versiyonudur. Kişisel dijital yardımcılar (PDA'lar), cep telefonları, fabrika denetleyicileri, alıcı kutuları gibi kaynak kısıtlı mobil ve gömülü cihazlarda çalışacak şekilde tasarlanmıştır. .NET Compact Framework, .NET Framework ile aynı sınıf kitaplıklarından bazılarını ve ayrıca .NET Compact Framework denetimleri gibi mobil aygıtlar için özel olarak tasarlanmış birkaç kitaplığı kullanır. Ancak, kitaplıklar, .NET Framework'ün tam kopyaları değildir.

Windows API ya da WinAPI, Microsoft'un Microsoft Windows işletim sistemlerinde bulunan çekirdek uygulama programlama arayüzü kümesidir (API). Windows API adı, genellikle kendi adlarıyla atıfta bulunulan birçok farklı platform uygulamasına atıfta bulunur. Neredeyse tüm Windows programları Windows API ile etkileşime girer. Windows NT işletim sistemi satırlarında, az sayıda Native API'yi kullanır.

Windows Runtime, 2012 yılında ilk olarak Windows 8 ve Windows Server 2012'de tanıtılan platform tabanlı bir uygulama mimarisidir. WinRT, C++/WinRT, C ++/CX, JavaScript-TypeScript, yönetilen kod dilleri C Sharp ve Visual Basic .NET (VB.NET) 'in geliştirilmesini destekler. WinRT uygulamaları, hem x86 hem de ARM mimarisini doğal olarak destekler ve daha fazla güvenlik ve kararlılık sağlamak için sandbox ortamında çalışabilir. WinRT bileşenleri, yerel, yönetilen ve betik dilleri dahil olmak üzere birden fazla dil ve API arasında birlikte çalışabilirlikle tasarlanmıştır.