SharePoint Framework (SPFx) client-side SharePoint development yapmamıza olanak sağlamaktadır. Kısaca açıklamam gerekirse, SharePoint ile hızlı bir şekilde entegre olabilmekte, open source library konusunda esnek, development yapabilmek için çalışma ortamınızda SharePoint yüklü olmasına ihtiyaç duymamakta… Kısacası; SharePoint developerları bir çok külfetten kurtaran bir alt yapı diyebiliriz. SPFx alt yapısını, SharePoint Online, SharePoint 2019 ve SharePoint 2016 Feature Pack 2 versiyonlarında kullanabilirsiniz.
Şimdi temel özelliklerine göz atalım:
- SharePoint App olarak çalışmaktadır, önceden geliştirmekte olduğumuz SharePoint Hosted App gibi Iframe olarak çalışmamaktadır.
- Browser DOM içerisine render edilmektedir. Dolayısıyla müdahale etmemizi kolaylaştırmaktadır.
- Client-Side development imkan vermesinden dolayı JavaScript Framework ile çalışma yapabilirsiniz. (React, Handlebars, Knockout, Angular, Vue gibi.)
- Open Source Client Development tool kullanabilirsiniz. (npm, TypeScript, Yeoman, Webpack, Gulp gibi. )
- SharePoint App mantığında çalışmasından dolayı geliştirilen çözüm son kullanacılara tenant admin yöneticileri (veya delegeleri) tarafından dağıtıldıktan (onaylandıktan) sonra kullanılabilir.
- Classic veya Modern sayfalar ile uyumlu çalışmaktadır.
Yukarıda gördüğünüz gibi bir çok özelliği mevcut. Peki bu duruma nasıl geldik, isterseniz şimdi de biraz SharePoint development yöntemlerindeki değişime bir göz atalım.
SharePoint 2001’de lanse edildiğinden beri bir çok development yöntemi ile geliştirme yaptık. SharePoint 2007 ile CAML Query, SharePoint Object Model, XML, XSLT, Silverlight, Web User Control, Visual WebPart gibi kavramlarla karşılaştık ve programlama dili olarak VB ve C# kullanarak geliştirme yaptık.
Sonrasında SharePoint 2010 çıktı ve Ajax desteği ile SharePoint 2007’nin desteklemediği browserları destekledi. (Sadece multiple browser support değil aslında External Content Type,Term Store, Visual Studio 2010 uyumlu hale gelerek template kullanabildik. Yüzeysel olarak geçiyorum, bu süreç ayrı bir makale konusu olacak. ) Yine C# kullanarak development sürecimizi devam ettirdik.
SharePoint 2013 ile birlikte JSLink (Client-Side Rendering), SharePoint App Model gibi kavramlarla tanıştık ve SharePoint-Hosted App ile tamamen javascript yazarak uygulama oluşturmamıza, Provider-Hosted App ile ise MVC projelerimizi SharePoint ile entegre etmemize olanak sağlandı. Fakat SharePoint App geliştirme yapmamızın bazı dezavantajlarıda oluştu; Client-Side WebPart’ı site içerisine yüklediğimizde IFrame olarak çalışması gibi. Aynı zamanda diğer bir geliştirme yöntemi olarak Rest API üzerinden Client-Side development yapabildik. Çok uzatmadan kısaca özetlemek gerekirse, tüm bu süreçler devam ederken SharePoint Online ile tanıştık. Microsoft cloud üzerinde C# ile developmentı kendi sunucu üzerinde ölçekleyememesinden dolayı SharePoint Online tarafında C#’a desteğini kaldırdı. Sonrasında geliştirmiş olduğumuz modülleri her iki platform üzerinde desteklemek adına (On-Premises & Online) Rest API üzerinden development yaptık. (Javascript Injection) Bu development yöntemi aslında JavaScript Injection olmasından dolayı sayfa içerine Script Editör kullanarak ya da MasterPage / Page Layout içerisine ekleyerek kodumuzu çağırmak zorunda bırakmasından tam anlamıyla WebPart oluşturma konusunda dezavantajlar yarattı.
Tüm bu gibi sebeblerden dolayı SharePoint App ve JavaScript Injection özellikleri kullanılarak, günümüz dünyasına ayak uydurmak adına SharePoint Framework SPFx’i geliştirdi.