![]() | ||
Exchange Server'a Programatik Erişim Metotları | 05.12.2005 13:02:00 | |
| Kategori : .NET Framework Özet : Bu makalede Exchange Server'a erişim amacıyla kullanılabilir farklı metodolojiler incelenmektedir. | ||
Exchange Server'a Programatik Erişim Metotları Giriş Exchange Server, hiyerarşik bir veri tabanı olarak organize edilmiştir. Exchange Server 200X, mail haricindeki bilgileri -söz gelimi kurulum bilgileri- tutmak için active directory'i kullanır. Bunun pratik anlamı; Exchange Server 200X 'e active directory'e ilişkin yöntemlerle erişilebiliyor olmasıdır. Ancak bu yöntem, exchange ve active directory kurulumuna zarar verme olasılığı nedeniyle, Microsoft tarafından tavsiye edilmemekte ve alternatif hareket tarzları sunulmaktadır. Bu yöntemlerden hangisinin seçileceği, koşullara bağlı olarak değişmektedir.
Bu provider sadece Exchange Server'ın bulunduğu makinede kullanılabilecek (server side) şekilde tasarlanmıştır. Yani ExOLEDB ile sadece lokaldeki exchange'e erişilebilir. Keza bu provider'ın elde edilişi herhangi bir MDAC güncellemesi ile mümkün olmamakta ve ancak Exchange Server kurulumu ile sisteme register edilmektedir. Ancak bizce ExOLEDB provider'ına ilişkin en önemli sorun; OLE DB 2.5 protokolü ile uyumlu oluşudur. Bunun yarattığı dezavantaj; ExOLEDB 'nin, .NET Framework'teki managed Ole DB provider'ı ile kullanılamamasıdır. Bu noktada çözüm COM Interop yolu ile ADO kullanmaktır. NOT : Yukarıda söz edilen sorun Exchange Server 2000 'ne ilişkindir. Bildiğiniz gibi "bu makalenin yazıldığı tarih itibari ile" Exchange Server 2003 sürümü çıkmış hatta bir service pack yayınlanmıştır.
Bu provider ise -ExOLEDB 'nin aksine- Exchange'in kurulu olmadığı farklı bir makineden, Exchange Server'a erişim için tasarlanmıştır. Yani "client side" bir provider olma özelliğini taşır. MSDAIPP provider'ının marjinal faydası; WebDAV isimli protokolü kullanarak IIS sanal dizinlerindeki dokümanlara erişimin sağlanmasıdır. Buna ilaveten MSDAIPP ile Exchange Server 200X 'daki verilere de erişilebilmektedir. Bu noktada transfer için HTTP kullanılacağı için connection string'teki Data Source segmentine uygun bir URL atanmalıdır. Aşağıdaki kod parçasında belirli bir klasördeki tüm verilerin (gizli olanlar da dahil olmak üzere) alınışı örneklenmektedir.
Kodun önemli kısımlarını irdelemek gerekirse;Connection string'teki data source segment'inin uygun
bir URL ile donatıldığını görmekteyiz. Açıktır ki, sizin kullanacağınız
URL bilgisi örnektekinden farklı olmak zorundadır. Ancak örneklenen
connection string'teki parçaların ne oldukları bilindiği takdirde, doğru URL
bilgisinin yapılandırılması zor olmayacaktır. İpucu : Hatta gerekirse örneğin sadece
inbox'taki bilgiler için pruva/inbox veya pruva/contacts gibi eklentiler de
yapılabilir.
Şayet erişilmek istenen Exchange Server, SQL Server ile aynı makine üzerinde ise linked server ortamı kurulup (sp_addlinkedserver sistem stored procedure ile) Exchange Server web store üzerinde wiev'lar yaratmak, sorgulamalar yapmak da mümkündür.
Aykut TAŞDELEN Microsoft MVP (Most Valuable Professional)
| ||
Yazgelistir.com | ||