SharePoint için klasik yaklaşımdan SPFx, Microsoft Graph ve Power Platform ile modern mimariye geçiş: mimari kararları, araç zinciri, örnek kod ve CI/CD pratikleriyle geliştirici rehberi.
SharePoint Modern Geliştirme: SPFx, Graph ve Modern Mimariye Geçiş Rehberi
Bu makalede SharePoint geliştirmede klasik yaklaşımlardan (farm çözümleri, sandbox) modern yöntemlere (SPFx, Microsoft Graph, Power Platform) geçişin nedenleri, nasıl yapılacağı ve geliştirme örnekleri anlatılıyor. Hedef kitle çalışan yazılımcılar; gerçek dünya projelerinde kullanabileceğiniz karar kriterleri, araçlar ve örnek kodlar yer alıyor.
Neden modern SharePoint geliştirme?
SharePoint Online ve modern SharePoint sayfaları, kullanıcı deneyimini ve yönetimi farklı bir paradigmayla ele alır. Klasik çözümler —özellikle farm çözümleri ve full-trust kod— artık bulut merkezli yönetimde uygun değil; bakım, güvenlik ve yönetim açılarından sınırlamalar getirir. Modern geliştirme, tarayıcıda çalışan istemci tarafı bileşenlerini, API tabanlı veri erişimini ve Microsoft 365 ekosistemiyle entegrasyonu öne çıkarır.
Modern yaklaşımın sunduğu faydalar: daha hızlı dağıtım, daha sık güncelleme döngüleri, daha iyi güvenlik sınırları (tenant yöneticisinin kontrolünde), mobil uyumlu UI bileşenleri ve Teams/Power Platform ile kolay entegrasyon. Ayrıca Microsoft Graph sayesinde tek bir API üzerinden kullanıcı, grup, mail ve daha fazlasına erişim sağlanır, bu da uygulamaların sınırlarını genişletir.
SPFx (SharePoint Framework) ile bileşen geliştirme
SharePoint Framework (SPFx), modern SharePoint sayfalarına gömülebilen istemci tarafı web part'ları ve uzantılar geliştirmek için Microsoft tarafından desteklenen resmi çatıdır. SPFx, React, Preact veya Vanilla JS gibi modern frontend kütüphaneleriyle uyumludur ve bunları kullanarak kullanıcı arayüzünü SharePoint deneyimine entegre edebilirsiniz.
Basit bir SPFx bileşeni oluştururken sık kullanılan araç zinciri: Node.js, yeoman generator for SharePoint, gulp ve webpack. Aşağıda basit bir bileşen şablonunun build/serve adımlarına dair örnek komut dizisi yer alıyor:
<!-- Terminal komutları (HTML kaçışlı) -->
npm install -g yo @microsoft/generator-sharepoint
yo @microsoft/sharepoint
gulp build
gulp bundle --ship
gulp package-solution --ship
SPFx, ayrıca SharePoint listeleri ve lib'leriyle rahat çalışır; REST API veya @pnp/pnpjs kütüphanesi sık tercih edilen veri katmanlarıdır. PnP (Patterns & Practices) topluluğu, sık ihtiyaç duyulan operasyonlar için iyi dökümante edilmiş helper'lar sunar.
Microsoft Graph: SharePoint dış kaynaklara erişim
Microsoft Graph, SharePoint içindeki verilerle birlikte tüm Microsoft 365 servislerine (Teams, Outlook, OneDrive, Users) erişim sağlayan birleşik API'dir. SharePoint içinde karmaşık sorgular/iş akışları veya çapraz hizmet veri entegrasyonu gereken senaryolarda Graph tercih edilmelidir. Graph, OAuth 2.0 / OpenID Connect ile birlikte çalışır; uygulamanızın gerekli izinleri (delegated veya application) talep etmesi gerekir.
Aşağıda Fetch API ile Graph çağrısı yapan basit bir örnek (SPFx veya başka bir frontend içinde kullanılabilir):
<!-- HTML kaçışlı JavaScript örneği -->
fetch('https://graph.microsoft.com/v1.0/me', {
headers: { 'Authorization': 'Bearer ' + accessToken }
})
.then(r => r.json())
.then(user => console.log(user))
.catch(err => console.error(err));
Access token yönetimi için MSAL (Microsoft Authentication Library) kullanmak, token yenileme ve kullanıcı oturum açma akışlarını standartlaştırır. SPFx projelerinde @microsoft/mgt (Microsoft Graph Toolkit) ve AadHttpClient gibi hazır araçlar işinizi kolaylaştırır.
Power Platform ve modern entegrasyon alternatifleri
Her durum için custom kod yazmak gerekli değildir. Power Apps, Power Automate ve Power BI gibi Power Platform bileşenleri, SharePoint listeleriyle hızlı entegrasyon, formlar ve iş akışları oluşturmak için kullanışlıdır. Özellikle iş birimlerinin hızlı prototipleme isteği olduğunda Power Platform maliyet-etkin ve hızlıdır.
Bununla birlikte, Power Platform'ın özelleştirme sınırları vardır: karmaşık UI davranışları, performans kritik işlemler veya özel paketleme gereksinimleri için SPFx/React veya ayrı web servisleri tercih edilmelidir. Karar verirken bakım maliyetleri, veri hacmi ve yönetim politikalarını göz önünde bulundurun.
Mimari kararlar ve CI/CD pratikleri
Büyük projelerde mimari kararlar sadece teknoloji seçimi değil, dağıtım ve sürüm yönetimi politikalarını da içerir. SPFx paketleri App Catalog üzerinden dağıtılabilir; tenant genelinde veya site koleksiyonu bazlı dağıtım seçenekleri vardır. Otomatik dağıtım, Azure DevOps veya GitHub Actions ile sağlanabilir.
Örnek CI/CD akışı adımları:
- Pull request ile kod gözden geçirme
- Unit test ve linting çalıştırma
- Build ve bundle üretme
- package-solution.sppkg oluşturma ve test tenant'a deploy
- Onay sonrası production App Catalog'a publish
Geçiş stratejisi: Klasikten moderne adım adım
Klasik çözümlerden modern mimariye geçiş bir gecede olmayacak projedir. Önerilen adımlar:
- Kullanılan custom çözümlerin envanterini çıkarın (özelleştirilmiş web part, event receiver, timer job, vb.).
- Her bileşeni sınıflandırın: hemen taşınabilir (client-side), yeniden tasarlanmalı, ya da kaldırılmalı.
- Önceliklendirme yapın: kullanıcı etkileşimi yüksek olan işlevleri önce taşıyın.
- SPFx + Graph ile yeniden yazılabilecekleri planlayın; server-side ağır işlemler için Azure Functions veya Logic Apps kullanın.
Özellikle Event Receiver veya Timer Job gibi server-side işlevleri Azure Functions ile yeniden yazmak hem ölçeklenebilirlik hem de yönetim kolaylığı sağlar. Veri migrasyonları gerekiyorsa, PnP PowerShell ve SharePoint Migration Tool (SMT) gibi resmi araçlar faydalıdır.
Sık Sorulan Sorular
SPFx ile React dışı bir framework kullanabilir miyim?
Evet. SPFx, React'i sık kullanılan bir seçenek olarak destekler ancak Vue, Preact, Svelte veya Vanilla JS ile de bileşen geliştirebilirsiniz. Önemli olan build süreçlerini ve paketleme ayarlarını SPFx ile uyumlu hale getirmektir.
Microsoft Graph yerine SharePoint REST API kullanmalı mıyım?
Kısa cevap: ihtiyaçlara bağlı. SharePoint REST API, liste ve doküman odaklı işlemler için doğrudan uygundur. Ancak çapraz hizmet veri ihtiyacı, kullanıcı bilgileri veya Teams entegrasyonu varsa Graph daha geniş kapsam ve tek bir endpoint avantajı sunar.
Power Platform ile SPFx arasında nasıl seçim yaparım?
Power Platform, hızlı geliştirme ve iş kullanıcılarına yakın çözümler içindir; SPFx ise daha ileri düzey özelleştirme, performans ve geliştirici kontrolü gerektiren durumlar için uygundur. ROI, bakım ve kullanıcı beklentilerine göre karar verin.
İlgili Eğitim
Sonuç
SharePoint geliştirme artık bulut odaklı, API-first ve component-driven bir yaklaşıma kayıyor. SPFx, Microsoft Graph ve Power Platform üçlüsü, modern SharePoint çözümleri için güçlü bir temel sunuyor. Geçiş planlaması yaparken mevcut özel çözümleri değerlendirin, kullanıcı etkileşimi yüksek işlevleri önceliklendirin ve CI/CD ile sürüm yönetimini otomatikleştirin. Bu yaklaşım hem sürdürülebilirliği artırır hem de daha hızlı yenilik yapmanızı sağlar.
