Giriş
Microsoft, SharePoint Online platformunda kullanılan Remote Event Receivers (RER) teknolojisinin 1 Temmuz 2027 tarihinde tamamen devre dışı bırakılacağını resmi olarak duyurdu. Bu karar, uzun süredir devam eden bir geçiş sürecinin nihai aşamasını temsil ediyor. RER'ler, SharePoint Online'daki olaylara (örneğin belge eklenmesi, liste güncellenmesi) yanıt vermek için kullanılan ve genellikle Azure veya diğer harici hizmetlerde çalışan kod parçacıklarıdır.
Sorun ve Arka Plan
Mevcut Durum ve Geçmiş
SharePoint Online, uzun yıllar boyunca SharePoint Add-in modeli ve Azure Access Control Services (ACS) üzerinden RER'lerin çalışmasına izin verdi. Bu model, geliştiricilere SharePoint olaylarını harici sistemlerde işleme olanağı tanıyordu. Ancak, Microsoft'un güvenlik ve modernizasyon stratejileri doğrultusunda, bu teknolojiler artık yerini daha güvenli ve sürdürülebilir alternatiflere bırakıyor.
Geçiş Süreci ve Geçici Çözümler
Microsoft, bazı RER'ler için Microsoft Entra ID (eski adıyla Azure Active Directory) kayıt sistemi üzerinden geçici uzatmalar sağladı. Bu geçici çözüm, geliştiricilerin yeni mimariye geçiş yapmaları için zaman tanıyordu. Ancak, bu uzatmaların da 1 Temmuz 2027 tarihinde sona ereceği açıklandı. Bu tarih, tüm RER'lerin artık desteklenmeyeceği ve çalışmayacağı anlamına geliyor.
Uyarı: 1 Temmuz 2027 tarihinden sonra RER'leri kullanmaya devam etmek, SharePoint Online'daki olaylara yanıt verme yeteneğinizi kaybetmenize neden olacaktır. Bu durum, iş süreçlerinizde ciddi aksamalara yol açabilir.
Çözüm Adımları: RER'lerden Alternatiflere Geçiş
1. Mevcut RER'lerin Belirlenmesi ve Analizi
-
RER'lerin Envanterini Çıkarın: SharePoint Online'daki tüm web uygulamalarınız ve sitelerinizde kullanılan RER'leri tespit edin. Bunu yapmak için aşağıdaki adımları izleyin:
# SharePoint Online Management Shell kullanarak RER'leri listeleyin Connect-SPOService -Url https://-admin.sharepoint.com Get-SPOSite | ForEach-Object { $site = $_ Get-PnPEventReceiver -WebUrl $site.Url -Scope All | Select-Object Title, Type, ReceiverUrl, SequenceNumber } -
Bağımlılıkları Belirleyin: Her RER'nin hangi olaylara yanıt verdiğini (örneğin, liste eklenmesi, belge indirme) ve hangi harici hizmetlere bağımlı olduğunu analiz edin. Bu, geçiş stratejinizi oluşturmanızda kritik öneme sahiptir.
2. Alternatif Teknolojilerin Seçimi
RER'lerin yerini alabilecek birkaç modern alternatif bulunmaktadır. Seçiminiz, kullanım senaryonuza ve gereksinimlerinize bağlıdır:
a) SharePoint Framework (SPFx) ve Web Parçaları
SharePoint Framework (SPFx), modern SharePoint geliştirme için önerilen yaklaşımdır. SPFx web parçaları, SharePoint sayfalarına yerleştirilebilir ve kullanıcı etkileşimlerine yanıt verebilir. Ancak, SPFx'in olay alıcıları doğrudan RER'lerin yerini almaz. Bunun yerine, aşağıdaki yaklaşımları kullanabilirsiniz:
- SPFx Uzaktan Olay Alıcıları: SharePoint Online'daki olaylara yanıt vermek için kullanılabilir, ancak bazı sınırlamaları vardır.
- Microsoft Graph Olay Abonelikleri: SharePoint Online'daki olayları yakalamak için Microsoft Graph API'lerini kullanabilirsiniz. Bu, harici bir webhook hizmetine veya Azure Function'a olayları göndermenizi sağlar.
İpucu: SPFx web parçaları, kullanıcı arayüzüne yönelik olayları yönetmek için idealdir. Ancak, sistem olaylarına (örneğin, belge eklenmesi) yanıt vermek için Microsoft Graph Olay Abonelikleri veya Azure Event Grid kullanmayı tercih edin.
b) Microsoft Graph Olay Abonelikleri
Microsoft Graph Olay Abonelikleri, SharePoint Online'daki olayları yakalamak için kullanılan bir API'dir. Bu yöntem, aşağıdaki adımlarla uygulanabilir:
-
Microsoft Graph API'ye Erişim: Azure Portal'da bir uygulama kaydı oluşturun ve gerekli izinleri (örneğin,
Sites.Read.All,Sites.ReadWrite.All) atayın.# Azure Portal'da uygulama kaydı oluşturun # Gerekli izinleri atayın: Sites.Read.All, Sites.ReadWrite.All # Uygulama kimlik bilgilerini (client ID, client secret) kaydedin -
Olay Aboneliği Oluşturun: SharePoint Online'daki olaylara abone olun. Örneğin, belge eklenmesi olayını yakalamak için aşağıdaki API çağrısını kullanabilirsiniz:
POST https://graph.microsoft.com/v1.0/subscriptions Content-Type: application/json { "changeType": "created", "notificationUrl": "https://your-webhook-url.com/api/notifications", "resource": "sites/{site-id}/lists/{list-id}/items", "expirationDateTime": "2027-06-30T18:23:45.9356913Z", "clientState": "secretClientState" } -
Webhook'u Yönetin: Olaylar yakalandığında, bildirim URL'sine (webhook) bir HTTP POST isteği gönderilecektir. Bu isteği işlemek için bir Azure Function veya başka bir web hizmeti oluşturun.
c) Azure Event Grid ve Azure Functions
Azure Event Grid, olay tabanlı mimariler için tasarlanmış bir hizmettir. SharePoint Online'daki olayları yakalamak ve işlemek için kullanılabilir. Bu yaklaşım, daha esnek ve ölçeklenebilir bir yapı sunar.
-
Azure Event Grid Aboneliği Oluşturun: SharePoint Online'daki olayları yakalamak için bir abonelik oluşturun. Bu, Azure Portal veya Azure CLI aracılığıyla yapılabilir.
# Azure CLI kullanarak Event Grid aboneliği oluşturun aaz eventgrid event-subscription create \ --name "SharePointEventSubscription" \ --resource-group "YourResourceGroup" \ --endpoint-type "webhook" \ --endpoint "https://your-azure-function-url.com/api/SharePointEvents" \ --event-types "Microsoft.SharePoint.ListItem.Created" \ --included-event-types "Microsoft.SharePoint.ListItem.*" -
Azure Function'ı Yapılandırın: Olayları işlemek için bir Azure Function oluşturun. Function, SharePoint olaylarını alacak ve gerekli işlemleri gerçekleştirecektir.
// C# Azure Function örneği using Microsoft.Azure.WebJobs; using Microsoft.Extensions.Logging; public static class SharePointEventProcessor { [FunctionName("SharePointEventProcessor")] public static async Task Run( [EventGridTrigger] EventGridEvent eventGridEvent, ILogger log) { log.LogInformation(eventGridEvent.Data.ToString()); // Olay verilerini işleyin ve gerekli eylemleri gerçekleştirin } }
3. Geçiş Sürecinin Uygulanması
Alternatif teknolojilere geçiş yaparken aşağıdaki adımları izleyin:
-
Yeni Mimarinin Tasarlanması: RER'lerin yerine hangi alternatif teknolojinin kullanılacağını belirleyin. Bu, kullanım senaryonuza ve gereksinimlerinize bağlıdır.
-
Kodun Yeniden Yazılması: Mevcut RER kodunu, seçtiğiniz alternatif teknolojiye uygun şekilde yeniden yazın. Örneğin, Microsoft Graph Olay Abonelikleri kullanıyorsanız, API çağrılarını ve webhook işleyicilerini güncelleyin.
-
Test ve Doğrulama: Yeni mimarinin tüm bileşenlerini test edin. SharePoint olaylarının doğru şekilde yakalandığından ve işlendiğinden emin olun. Bu, geliştirme ortamında ve üretim ortamında yapılmalıdır.
-
Dağıtım ve İzleme: Yeni mimariyi üretim ortamına dağıtın ve performansını izleyin. Herhangi bir sorunla karşılaşırsanız, hızlı bir şekilde müdahale edin.
Sık Karşılaşılan Sorunlar ve Çözümleri
1. Yetki ve İzin Sorunları
Microsoft Graph API'lerine veya Azure Event Grid'e erişim sağlamak için gerekli izinlerin atanmaması yaygın bir sorundur. Bu sorunu çözmek için:
- Azure Portal'da Uygulama Kaydı Oluşturun: Gerekli izinleri (örneğin,
Sites.Read.All) atayın. - Yetki Onayı: Uygulama kaydınız için yönetici onayı alın.
2. Olayların Yakalanmaması
Olay abonelikleri oluşturulduktan sonra olayların yakalanmaması durumunda aşağıdakileri kontrol edin:
- Abonelik Süresi: Aboneliklerinizin süresi dolmuş olabilir. Abonelikleri düzenli olarak yenileyin.
- Webhook URL'si: Webhook URL'sinin doğru olduğundan ve erişilebilir olduğundan emin olun.
- İzinler: Uygulamanızın gerekli izinlere sahip olduğundan emin olun.
3. Performans Sorunları
Yüksek hacimli olaylarla karşılaşırsanız, aşağıdaki optimizasyonları uygulayın:
- Azure Functions'ı Ölçeklendirin: Azure Functions'ın otomatik ölçeklendirme özelliğini kullanın.
- Olay Filtreleme: Yalnızca ilgilendiğiniz olayları yakalamak için filtreler kullanın.
- Veri Toplama: Olay verilerini toplu olarak işleyin ve gereksiz işlemlerden kaçının.
Sonuç
Microsoft'un SharePoint Online Uzaktan Olay Alıcıları (RER) için belirlediği 1 Temmuz 2027 son tarihine yaklaştıkça, geliştiricilerin bu teknolojiden modern alternatiflere geçiş yapmaları kritik önem taşımaktadır. SharePoint Framework, Microsoft Graph Olay Abonelikleri ve Azure Event Grid gibi alternatifler, RER'lerin yerini alabilecek güçlü ve güvenli çözümler sunmaktadır. Geçiş sürecini planlarken, mevcut RER'lerin envanterini çıkarmak, alternatif teknolojileri değerlendirmek ve yeni mimarinin test edilmesi için yeterli zaman ayırmak önemlidir. Bu şekilde, SharePoint Online'daki olaylara yanıt verme yeteneğinizi kaybetmeden ve iş süreçlerinizi aksatmadan modernizasyona geçiş yapabilirsiniz.
Daha fazla bilgi için aşağıdaki kaynaklara göz atabilirsiniz:
- SharePoint Add-in Modeli Kılavuzu
- Microsoft Graph SharePoint API Belgeleri
- Azure Event Grid Belgeleri
Sık Sorulan Sorular (SSS)
RER'lerin yerine hangi teknolojiler önerilmektedir?
Microsoft, SharePoint Framework (SPFx), Microsoft Graph Olay Abonelikleri ve Azure Event Grid gibi modern teknolojileri önermektedir. Bu teknolojiler, daha güvenli ve sürdürülebilir bir mimari sunmaktadır.
Geçiş süreci ne kadar sürer?
Geçiş süreci, mevcut RER'lerin karmaşıklığına ve kullanım senaryolarına bağlı olarak değişir. Basit senaryolar için birkaç hafta yeterli olabilirken, karmaşık sistemler için birkaç ay gerekebilir.
RER'lerin yerine geçecek teknolojilerin maliyeti nedir?
Microsoft Graph Olay Abonelikleri ve Azure Event Grid, genellikle ücretsiz veya düşük maliyetli seçenekler sunmaktadır. Ancak, Azure Functions ve diğer hizmetlerin maliyeti, kullanım hacmine bağlı olarak değişebilir. Ayrıntılı fiyatlandırma bilgisi için Azure Fiyatlandırma Sayfası'na göz atabilirsiniz.



