Tüm Çözüm Dosyalarının Kaydedilmesi

Sıklıkla ihtiyacımız olan başlıklardan biri olduğundan her ne kadar pek çok ortamda bu konuda örnekler mevcut olsa da kişisel arşiv anlamında ben de kullandığım scripti paylaşmak isterim. SharePoint farmınızda yüklü olan tüm çözüm dosyalarınızı tek seferde export etmek ve bir klasöre almak isteyebilirsiniz. Bunun için örnek senaryo canlı ortamdan test ortamına uygulama eşitlemesi yapmak istediğiniz zamanlar gösterilebilir. Mevcut canlı ortam uygulamasını test ortamına dilediğiniz yöntem ile taşıdıktan sonra güncel çözüm dosyalarınızı da export edip test farmınıza deploy etmeniz gerekebilir. Örnek scripti aşağıda bulabilirsiniz;

 

Microsoft Flow – Hatırlatma Uygulaması

Microsoft Flow ile ilgili daha önceki kısa yazılarımda Flow’un ne olduğundan, şablon kullanarak nasıl akış geliştirebileceğimizden ve boş bir akış ile farklı türdeki eylemleri nasıl kullanabileceğimizden bahsetmeye çalışmıştım. Şimdi bir gerçek hayat uygulaması hazırlamaya çalışalım istiyorum.

Pek çok müşterimizde SharePoint üzerinde tuttukları dokümanlar veya liste öğeleri üzerinden hatırlatma uygulaması ihtiyacı oluyor. Örneğin bir kütüphanede sözleşmelerinizi tutuyorsunuz. Meta veri olarak sözleşmenin başlangıç tarihi ve bitiş tarihi elinizde veri olarak var. Bu durumda bir sözleşme hatırlatma uygulaması çok işe yarardı sanırım. Örneğin sözleşmenin bitmesine 30 gün kala yenileme çalışmalarını yapabilmeniz için size e-posta gelseydi. Veya çalışanlarınıza ait özel sağlık sigortalarını bir listede tutuyorsanız ve her özel sağlık sigortasının yenileme tarihi farklıysa günlük kontrolleri sizin yerinize bir sürecin yapması ve ilgili kişilere yenileme çalışması için hatırlatma bilgisi verseydi eminim işiniz bir hayli kolaylaşırdı. Bu konudaki senaryo örneklerini artırmak mümkün. Bu nedenle burada örneklemeye çalışacağım senaryo şu şekilde olacak.

“Sigortalar isimli bir listemiz var. İçeriğinde personelin adı, sigortanın türü ve sigortanın yenileme tarihi bilgisini tutuyoruz. İlgili poliçenin yenilenmesine 7 gün kala bir hatırlatma e-postası almak istiyoruz.”

Söz konusu örnek için SharePoint listemiz aşağıdaki görünümde olacak.

 

Microsoft Flow – Boş Akış Oluşturma

Daha önceki kısa yazılarımda Microsoft Flow’un ne olduğundan ve hazır bir şablonu kullanarak hızlıca ihtiyaca yönelik bir otomasyon kurmaktan bahsetmiştim. Bu yazılara ayrıca aşağıdaki bağlantılardan da erişebilirsiniz.

Şimdi ise boş akış şablonunu kullanarak yeni bir senaryonun denemesini yapmaya çalışalım. Senaryomuz şu olacak;

“OneDrive’ımız içerisindeki spesifik bir klasöre, dosya adı içerisinde belirttiğimiz metin geçen dosyalar için bir akış oluşturmak. Eğer belirttiğimiz metin geçiyorsa buna göre konu barındıran bir e-posta, geçmiyorsa farklı bir konu ve içerikte başka bir e-posta almak. Ve son olarak her iki koşulda da bu dosyanın SharePoint içerisinde belirteceğimiz bir kütüphaneye kayıt olmasını sağlamak”

Bunun için öncelikle https://flow.microsoft.com adresine kullanım yetkisi olan bir hesap ile giriş yapmamız gerekiyor elbette. Ardından üst bölümde yer alan bağlantı aracılığı ile “Boş akış oluştur” komutunu veriyoruz.

Microsoft Flow – Şablondan Akış Oluşturma

Microsoft Flow ile temel hedef kitle etkin kullanıcı (power user) olarak nitelendirdiğimiz, bilgisayar ve temel Microsoft Office kullanım yetkinliğine sahip kişiler. Bu nedenle Flow içerisinde kod yazmaya olan ihtiyaç en aza indirgenmiş durumda. Tabi bazı alanlarda filtreleme gibi işlemleri yerine getirmek için bir miktar teknik kişi desteğine ihtiyaç olacaktır. Çünkü bu bölümlerde OData filtreleri, vb yapılar kullanılıyor.

Bu kısa yazıda mevcut şablonlar üzerinden iki servisi birbirine bağlayarak bir süreci otomatikleştirmeye çalışacağız. Temel senaryomuz şu şekilde;

“Twitter’da belli bir hashtag kullanılarak atılmış tweetleri bir SharePoint listesinde toplamak”

Microsoft Flow’un 300’den fazla şablon barındırdığından bahsetmiştik. Bu şimdilik etiketiyle vermemiz gereken bir rakam çünkü her geçen gün hem paylaşım yapan insanların hem de Microsoft’un yeni servisleri veya senaryoları barındıran şablonları buraya eklemekte olduğu bilgisini paylaşmakta yarar var.

Microsoft Flow Nedir?

Microsoft Flow bulut tabanlı, kullanıcılar akış oluşturması ve süreçlerini otomatik hale getirmesi amacıyla kullanılan bir yazılımdır tanımı yanlış olmaz sanırım. Arka planda pek çok Microsoft servisi ve third-party servis ile entegre çalışan yapı sayesinde oldukça basit ve günlük hayatta ciddi zaman tasarrufu sağlayan otomatikleştirilmiş akışlar oluşturabilirsiniz. Temel olarak koşul ve koşula bağlı aksiyonlar olarak tanımlayabileceğimiz yapı sayesinde Exchange Online, Dynamics, PowerApps, SharePoint, vb hem bulut tabanlı hem de GateWay aracılığı ile on-premise sistemi entegre edebildiğiniz süreçler oluşturmak mümkündür.

Bazı örnek senaryolar üzerinden duruma bakacak olursak;

  • Dynamics’de oluşturulan her bir fırsat kaydı için satış uzmanlarına otomatik bir e-postanın gönderilmesi.
  • SharePoint’te oluşturulacak veya güncellenecek her bir kayıt için arka planda Yammer veya Teams’de bir post oluşturulması.
  • Belli bir zaman aralığında size hatırlatma e-postaları gönderilmesi.
  • Belli bir hashtag içeren tweetler için size e-posta göndermesi veya bir listeye bu tweetleri kaydetmesi.

Ve benzeri pek çok küçük süreci tek başına veya bir biri ardına ekleyerek daha büyük bir süreç oluşturmak mümkün hale getirilebilir Microsoft Flow aracılığı ile.

SharePoint Framework (SPFx) Visual Studio Extension

Şimdiye kadar benim bahsettiğim ve şüphesiz farklı kaynaklardan ulaştığınız pek çok SharePoint Framework örneğinde az alınan editör Visual Studio Code oldu. Bunun aslında temel nedeni Microsoft’un da bu konuda en ideal editör olarak Visual Studio Code’u gösteriyor olması. Ancak eminim pek çoğunuz geliştirmelerinizde Visual Studio’nun farklı sürümleri üzerinde çalışıyorsunuz ve alışkanlıklarınızdan vazgeçmek istemiyorsunuz. Bu noktada SPFx projelerinizi Visual Studio ortamında nasıl geliştireceğinizden bahsetmekte yarar görüyorum.

Öncelikle belirtmek gerekir ki bu konuda bir extension yayınlanmış durumda 🙂 Ek olarak söylemekte fayda var, henüz bu extension ile sahip olabileceğiniz tek proje şablonu webpart projesi şeklinde. Dolayısıyla bu veya çıkacak farklı extensionları takip etmekte yarar var. Sonraki süreçte Visual Studio’nun da oyunda tam destek ile yerini alacağından şüphemiz yok.

Extension GitHub üzerinden yayınlanmış durumda ve açık kaynak kodlu. İncelemek isterseniz kod bloklarından ilerleyebilmek ile beraber hızlıca konuya başlamak isteyenler için şimdiye kadar yayınlanmış beş tane release versiyonu da bulunuyor. Kaynaklara ulaşmak için aşağıdaki adresleri kullanabilirsiniz.

Release versiyonu indirdiğinizde sizi bir vsix dosyası karşılayacak. Çift tıklayarak kurulum sürecini başlatabilirsiniz. Tabi bu işlem esnasında Visual Studio’nuzun kapalı kalması gerekiyor.

 

 

Şablonun yüklenmesini takiben Visual Studio’yu açtığınızda ise aşağıdaki şekilde proje şablonunuza ulaşabilecek ve geliştirmenizi yapabileceksiniz.

 

 

Sonrasında Visual Studio’yu başlatıp File > New > Project şeklinde alıştığınız proje oluşturma yolunu takip ettiğinizde şablonun başarıyla yüklendiğini ve karşınıza geldiğini göreceksiniz.

 

 

Hatırlarsanız proje şablonumuzu Yeoman ile oluşturduğumuzda bize bazı sorular ile geliyordu. Webpartın adı ne olsun, hangi js frameworkünü kullanacaksın, vb. Visual Studio şablonu da benzer şekilde bir form aracılığı ile bunu soracaktır. Gerekli bilgileri doldurup “generate” butonunu tıklayarak projenizin oluşmasını sağlayabilirsiniz.

 

 

Dilerseniz bu işlemi yine Yeoman kullanarak da yapabilirsiniz, aşağıdaki şekilde.

 

SharePoint Framework RoadMap

SharePoint Framework (SPFx) Feature Pack 2 ile beraber on-premise ortamları da destekler hale geldi. Neredeyse SharePoint online ile benzer bir seviyede SPFx çözümlerini artık on-premise ortam için de geliştirebiliyorsunuz. SPFx’in önemi aslında Microsoft’un SharePoint geliştirme noktasındaki hem en modern hem de hedefte stabil ve en yoğun kullanılan geliştirme modeli haline getirmesinden kaynaklanıyor. Dolayısıyla bir tercih olmanın ötesinde genel SharePoint geliştirme ortamı olarak düşünebiliriz bundan sonrası için.

Pek çok kişi artık SharePoint on-premise versiyonunun ortadan kalkacağına yönelik tahminlerde bulunurken Microsoft’un MS Ignite’da SharePoint 2019’u da diğer Office ürün ailesi ile beraber anmaya başlaması bu konudaki tahminleri boşa çıkarttı. Bu nedenle on-premise ortam için de genel SharePoint geliştirme yönteminin SPFx olacağı noktasında bir soru işareti kalmamış oluyor.

SPFx’in son haliyle getirdiği bazı yeniliklere bakacak olursak;

  • Tenant seviyesinde App Catalog’lar üzerinden yaygınlaştırılabiliyor olması nedeniyle kolay ve yönetilebilir bir yaygınlaştırma ortamı sunuyor.
  • Henüz developer previewde olan GraphHttpClient aracılığı ile Office Graph üzerinde user Access ve token işlemlerini en kolay yapabileceğiniz yapı olarak karşımıza çıkıyor. Normal bir webpart veya SharePoint geliştirmesinde Graph API üzerinden user token oluşturma işleminde arada login sayfası göstermeden ilerleyebilmek için bir hayli takla atılması gerekebiliyordu.

SPFx Road Map’in 25 Eylül 2017’de (yani Feature Pack 2 çıktıktan sonra) güncellenmiş Road Map’ine https://github.com/SharePoint/sp-dev-docs/blob/master/docs/spfx/roadmap.md adresinden ulaşarak daha detaylı bilgi alabilir ve road map’deki güncellemeleri takip edebilirsiniz.

SPFx Debugging

Her yazılım projesinde olduğu gibi SharePoint Framework üzerinde uygulama geliştirirken de ihtiyaç duyacağımız ana konulardan bir tanesi debug. Microsoft’un da belirttiği üzere SPFx projeleri geliştirmek için en ideal kod editörü olarak Visual Studio Code’u göstermek mümkün. Bu nedenle bende bu yazıda Visual Studio Code kullanarak SPFx projelerinizi nasıl debug edebileceğiniz üzerinde durmaya çalışacağım.

Debug işlemi için en ideal ve basit çözüm Google Chrome web tarayıcısı ile çalışmak. Bu nedenle öncelikle Google Chrome’u aşağıdaki adresten indirmenizi ve kurmanızı öneriyorum.

https://www.google.com/chrome/browser/desktop/index.html

Sonrasında çalışacağımız editör olan Visual Studio Code içerisindeki extensions bölümünden Debugger for Chrome eklentisini indirmenizi ve kurmanız gerekecek. Bu işlem için Visual Studio Code içerisinde yer alan en sol menüdeki en altta yer alan Extensions (Ctrl + Shift + X) bölümünü tıklamanız ve “Debugger for Chrome” etiketini arayarak yüklemeniz gerekiyor.

Yükleme sonrası ekranında yönlendirmesi ile Visual Studio Code’u yeniden yüklemeniz gerekecek. Bunun için “Reload” butonunu kullanabilirsiniz.

Local Workbench Projenizin Debug Edilmesi

Visual Studio Code içerisinde sol bölümdeki “Debug” panelini aktive edin. Bu bölümde henüz bir debug konfigürasyonunuz olmadığından profil seçimi yapabileceğiniz kısmı boş olarak göreceksiniz.

Bu bölümde “No configuration” yazan kısmı tıklayarak Google Chrome için debug konfigürasyonu oluşturma yolunu seçin. Ardından oluşacak launch.json dosyasının içeriğini intellisense yardımıyla siz doldurabileceğiniz gibi local Workbench için aşağıdaki konfigürasyon bölümü ile değiştirebilirsinizde.

Dilerseniz aynı adımları tekrar uygulayarak local Workbench yerine hosted ortamdaki SharePoint platformunuz için de ayrı bir debug profili ekleyebilirsiniz. Bu durumda aşağıdaki örnekte geçen url parametresini kendi ortamınıza göre düzenlemeniz gerekecektir.

Bu konfigürasyonlar sonrası debug işlemine başlamak için tek yapılması gereken launch.js içindeyken önce hosted veya local şeklinde debug ortamını seçmek ve ardından debug işlemini başlatmak. Yeni bir pencere içinde uygulamanız debug modda açılacak ve breakpointleriniz işleme alınacaktır.

Tek Sunuculuk Arama Hizmetinin Yapılandırılması

SharePoint Server üzerinde servis uygulamalarının hepsini arayüz üzerinden yapılandırabiliyoruz. Ancak bazılarında özellikle veritabanı isimleri sonlarında Guid içerir şekilde yaratıldığından benim gibi bu konuda takıntılı olanlar için sıkıntı yaratabilir. Bilindiği üzere SharePoint için PowerShell ile neredeyse yapamayacağımız bir işlem yok. Geliştirme ortamı gibi tek sunuculuk yapılarda bu işlemi aşağıdaki gibi bir PowerShell komut dizisi ile tamamlayabilirsiniz. Ayrıca bir süre sonra üç server, beş server gibi gerçek ortam SharePoint farmları için olan versiyonlarını da paylaşmaya çalışacağım.

 

 

Excel REST API – Veri Okuma

Yakın zamanda gelen bir soruya istinaden SharePoint Online üzerinde bir doküman kütüphanesinde bulunan Microsoft Excel tabanlı bir dosyanın içeriğinin okunmasına istinaden küçük bir çalışma yapmıştım. Gerçi sonrasında özellikle veri yazma noktasında karşılaştığımız sorunlar nedeniyle biz konuyu Microsoft Office Graph kullanarak çözümledik ancak ihtiyaç duyulabileceğini düşünerek bu örneği de buradan paylaşmak isterim.

Yukarıda da belirttiğim gibi senaryomuzda ana konu dokümanın SharePoint Online üzerinde bir doküman kitaplığında bulunuyor olması. Burada yer alan Microsoft Excel dokümanını istemci tarafına indirmeden, herhangi bir Microsoft Office kurulumunu da yapmadan okumak istiyoruz. Yani aşağıdaki gibi bir görüntümüz var.

 

Okumak istediğimiz alan olan B6 hücresini range örneği de yapabilmek açısından daha önce “TEST1RANGE” ismiyle adlandırmış durumdayım. İşlemde temel amacım örneklemek olduğundan basit bir console uygulaması ile devam etmek istiyorum.

Uygulama tarafında client side bağlantı sağlayacağımızdan aşağıdaki referansları projemize ekliyoruz.

  • C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\15\ISAPI\Microsoft.SharePoint.Client.dll
  • C:\Program Files (x86)\Reference Assemblies\Microsoft\Framework.NET\Frameworkv4.5\System.Runtime.Serialization.dll

 

Uygulamayı çalıştırdığınızda size kullanıcı adı ve şifreyi soracak, ardından ise belirtmiş olduğumuz range’de yer alan değeri ekrana getirecektir.

Kaynak: https://blogs.office.com/en-us/2013/12/17/excel-rest-api-in-sharepoint-online/

Ayrıca örnek projeye GitHub üzerinden erişebilirsiniz.

Sonuç olarak belirtmek isterim ki SharePoint Online’da bu tip işlemler ve çok daha fazlası için önerim Microsoft Office Graph kullanmak. Özellikle Office geliştirmeleri konusunda takipte tutmanızda yarar gördüğüm bir blog ise Microsoft MVP’lerimizden Erdem Avni Selçuk ‘un kişisel sitesi olacak.