SharePoint Framework (SPFx)

React Component İçerisine SharePoint Framework WebPart Context Aktarılmalı Mıdır?

WebPart context ‘i React component içerisine aktarıp kullanmak ilk bakışta uygun görünebilir fakat uzun vadede sorun yaşanmasına sebep olmaktadır. Bu konu ile ilgili önerilen ve uzun vadede neler yapmamız gerekiyor, bunu sizlerle paylaşmak istedim.

Kolaylık ama gerçekten sağlıklı bir yöntem mi?

SharePoint Framework kullanarak WebPart ya da Extension oluşturuyoruz. React component içerisinde de verilere ihtiyaç duyuyoruz. Verileri alma noktasında ise, SharePoint Framework HTTP clients kullanarak ilgili işlemimizi gerçekleştiriyoruz. Tam bu noktada kolaya kaçarak React component içerisine WebPart context iletiyoruz. (Verileri çekerken current site url ihtiyaç duyması vs. gibi durumlar için)

Aslına bakarsanız, kısa vadede böyle yapmak kolay ama uzun vadede kötü fikir.

Peki neden kötü fikir?

Kötü fikir olmasının en büyük sebebi: building unit veya integration test yazılması durumunda yaşanan sorunlardan kaynaklanıyor. İlerideki makalelerimde bu konu ile ilgili oldukça çok örnekler paylaşıyor olacağım.

Aşağıdaki resim WebPart context class nasıl göründüğü:

Intellisense box içerisinde gördüğünüz gibi bir çok properties mevcut ve çoğu kendisine ait complex object. Dolayısıyla da unit test yazarken mock object oluşturmak zorunda kalıyoruz. Bu durum ise çok zaman harcanmasına sebep olmakta.

Bu durumundan dolayı React component içerisine WebPart context göndermek iyi fikir olmuyor, ne yazık ki context göndermek zorunda değiliz

Peki ne yapmalıyız?

SharePoint Framework Http client ile verileri çekerken context içerisinde yer alan “var olan sitenin url (current site url)” ihtiyaç duymaktayız. Bunun için tüm context göndermek yerine sadece ihtiyacınız olanı göndermeniz olacaktır. İlk başta zaman kaybı yaşatabilir ama hem clean code hem de unit test sürecinde çok rahat ediyor olacaksınız.

Serdar KETENCİ

Recent Posts

SharePoint TechNet/MSDN Forumları emekliye ayrılıyor

Microsoft SharePoint Technet ve MSDN forumları yerini Microsoft Q&A tartışma panolarına yerini bırakıyor. 10 Ağustos…

4 sene ago

Lokalde React ile uzak SharePoint ortamında Rest API ile çalışmak

Biliyorum, başlık çok garip, ilk bakışta anlaşılması zor. Ama şöyle tarif etmeye çalışayım. Bildiğiniz üzere…

4 sene ago

TypeScript Geliştirme Ortamı Hazırlama

Merhaba Arkadaşlar, Bu yazımızda sizlere TypeScript geliştirme ortamının (TypeScript Development Environment) nasıl hazırlanacağından bahsedeceğim. Öncelikle…

5 sene ago

TypeScript ile SystemJS kullanma

Merhabalar, bu yazımızda sizlere bir TypeScript projesinde farklı ts dosyaları içerisindeki function, class veya interface'lerin,…

5 sene ago

TypeScript – Giriş

Merhaba arkadaşlar, Yakın zamanda TypeScript öğrenmeye başladım. Hem öğrendiklerimi pekiştirmek hem de sizlerle paylaşmak adına…

5 sene ago

SharePoint için Responsive UI

Merhaba Arkadaşlar, Bu yazımızda sizlere mevcut SharePoint portalimizin, tablet, cep telefonu gibi farklı çözünürlükteki cihazlarda…

5 sene ago