SharePoint geliştirme seçenekleri arasında yer alan Event Receiver konusuna daha önce ufakta olsa bir girişte bulunmuştum. Bu yazımızda daha geniş kapsamlı olarak Event Receiver içerisinde bulunan Tiplere, sınıflara ve diğer özelliklere göz atacağız.
Bu yazımızda;
- SharePoint Event Receiver Tiplerine
- Event Receiver Sınıflarına
- Site Seviyesi Olaylarına
- List Seviyesi Olaylarına
- İtem Seviyesi Olaylarına
- Feature Eventlere
- Email Olaylarına
Konularına değineceğiz
1 – SharePoint Event Receiver Tipleri
Temel olarak basit bağlamda iki tip Event Receiver bulunmaktadır. Bunlar Senkron ve Asenkrondur. Senkron Event Receiver olaylardan “Önce” çalışan olarak bilinmektedir. Bunlar bir olay gerçekleşmeden önce bazı eylemleri gerçekleştirmek için kullanılırlar. Koşul yerine gelmediğinde iptal edilebilirler.
Asenkron Event Receiver ise olaylardan “ Sonra” çalışan olarak bilinmektedir. Olay gerçekleştirildikten sonra herhangi bir özel eylemi gerçekleştirmek için kullanılır. Asenkron olduğundan olayın hemen ardından gerçekleşmesi gerekmez.
2 – Event Receiever Sınıfları
SharePoint 2007 ile beraber Olay algılayıcılarına 5 (beş) adet sınıf dâhil edilmiştir ve temelde bu sınıflar üzerinden olay algılayıcıları ilerlemektedir. Bunlar;
Microsoft.SharePoint.SPEmailEventReceiver
E-Posta özelliği etkin edilmiş bir liste üzerinde kullanıcının o liste üzerinde dönen olayları e-posta ile yakalamasını sağlar.
Microsoft.SharePoint.SPFeatureReceiver
SharePoint özellikleri üzerindeki olayları algılamak için kullanılır.
Microsoft.SharePoint.SPItemEventReceiver
Bir liste öğesi üzerinde olan olayları algılamak için kullanılan sınıftır. Liste öğesi üzerinde oluşan tüm olaylar bu sınıf ile kontrol edilir.
Microsoft.SharePoint.SPListEventReceiver
Bir liste üzerinde liste tanımı düzenleme, mevcut sütünları değiştirme, sütün silme gibi işlemler olduğunda SPListEventReceiver sınfı ile kontrol edilir veya algılanır.
Microsoft.SharePoint.SPWebEventReceiver
Bir site koleksiyonu silinmesi, taşınması veya bu site koleksiyonu ile ilgili herhangi bir değişim işlemi yapıldığını algılayan sınıftır.
Bu sınıfların her birisi için kullanılabilecek methodlar bulunmaktadır. Aşağıda bu methodlara dair bilgilerde sunmaya çalışacağım.
A – Site Seviyesi Event Receiver
SPWebEventReceiver’in site seviyesinde işlemlerini algılamak için kullanılan yöntemler aşağıda bulunmaktadır.
- Site Deleted
Site silme işleminden önce oluşan olay algılama methodudur.
- Site Deleting
Site silme işleminden sonra oluşan olay algılama methodudur.
- Web Deleted
Bir web sitesi tamamen silindikten sonra oluşur. (Asenkron bir işlemdir)
- Web Deleting
Bir Web sitesini silmeden önce oluşur. Senkron bir işlemdir.
- Web Moved
Mevcut varolan bvir web sitesi taşındıktan sonra oluşan işlemdir. Asenkron bir işlemdir.
- Web Moving
Mevcut web sitesini taşımandan önce oluşan işlem / olaydır. Senkron bir işlemdir.
B – List Seviyesi Event Receiver
- Field Added
Bir Field Listeye eklendikten sonra oluşan algılayıcı methodudur.
- Field Adding
Bir Field İçerik tipine eklendiğinde ( Content Type) çalışır.
- Field Deleted
Field Listeden silindiğinde oluşur.
- Field Deleting
Bir field listeden silinmesi başlangıcında oluşur.
- Field Updated
Bir Field’in listede güncellenmesinden sonra oluşur.
- Field Updating
Bir field’in listede güncellenmesine başlandığında oluşur.
C –Item Seviyesi Event Receiver
- ItemAdded
Listeye yeni bir item eklendiğinde oluşur ve asenkrondur.
- ItemAdding
Listeye bir öğe eklenmeden önce oluşur. Senkrondur.
- ItemAttachmentAdded
Bir liste öğesine ek ekledikten sonra oluşur. Asenkron bir olaydır.
- ItemAttachmentAdding
Bir liste öğesine ek eklenme anında oluşur.
- ItemAttachmentDeleted
Liste öğesindeki ek kaldırıldıktan sonra oluşan olaydır.
- ItemAttachmentDeleting
Liste öğesinden ekin silinme esnasında oluşan olaydır.
- ItemCheckedIn
Öğe kontrol edildikten sonra kullanılır.
- ItemCheckedOut
Öğe sunucuya teslim edildildikten sonra kullanılan olaydır.
- ItemCheckingIn
Öğenin listeye teslim edilme(kontrol) anında oluşur.
- ItemCheckingOut
Bir öğe teslim edilirken oluşur.
- ItemDeleted
Öğe listeden silindikten sonra oluşur.
- ItemDeleting
Öğe listeden silinirken oluşur.
- ItemFileConverted
Bir dosya türünün değiştiğinde oluşan olaydır.
- ItemFileMoved
Dosyanın taşıma işlemi sonrası çalışan olaydır.
- ItemFileMoving
Dosyanın taşınma işlemi sırasında oluşur.
- ItemUncheckedOut
Bir öğenin kontrol iptali gerçekleştikten sonra oluşur.
- ItemUncheckingOut
Bir öğenin kontrolünün iptal edilmesi sırasında oluşan olaydır.
- ItemUpdated
Öğe Güncellendikten sonra oluşur.
- ItemUpdating
Öğe güncellenmesi sırasında oluşur.
D – Feature Event
- FeatureActivated
Özelliğin aktif edildikten sonra oluşur.
- FeatureDeactivating
Bir özellik devre dışı bırakılırken oluşur.
- FeatureInstalled
Bir özellik yüklendikten sonra oluşur.
- FeatureUninstalling
Bir özellik kaldırılırken ( uninstall) oluşur.
E – E-Posta Olayları
EmailReceived, Bir e-posta mesajı e-posta özelliği etkileştirilmiş bir listeye geldikten sonra EmailReceived olayı oluşur.
Yukarıdaki kısaca özetlemelerinden ve ne işe yaradıklarından bahsetmiş olduğumuz method ve sınıflar Visual Studio ile geliştirme yapan ve Olay algılayıcıları içerisinde gördükleri methodların ne anlama geldikleri konusunda sıkıntı çeken arkadaşlarımıza kolay referans olması açısından SharePoint kaynakları arasından sadeleştirilmiştir.
Event Receiver methodları SharePoint versiyonları arasında farklılık gösterebilir. Yukarıda anlatılan Method ve Sınıflar SharePoint 2007 den beri gelen temel method ve sınıflardır.
Umarım tüm SharePoint geliştiricisi arkadaşlarımıza ya da SharePoint geliştiricisi olmak isteyen arkadaşlarımıza faydalı olur.
Saygılarımla