Makale Özeti

SharePoint i birçok yönden verimli bir şekilde kullanmanın bir yolu da, bize sağladığı sosyal özellikleri daha iyi anlamaktır. Her ne kadar 14.versiyon yani SharePoint 2010 bu konuda şu anki istekleri tamamen karşılayamasa da, gelecek yeni versiyonda bu konuda gelişmeler olduğunu da duyuyoruz. Sosyal paylaşım sitelerinin son yıllarda sükse yapması ve mikro blog olayının inanılmaz tutması dolayısıyla, benzer özelliklerin 15. versiyonda geleceğini de buradan bilmeyen arkadaşlara müjdeleyebiliriz. Yeni versiyon gelene kadar tabi ki beklemeyeceğiz ve elde mevcut olan özellikleri daha verimli kullanmanın yollarını araştıracağız.

Makale

SharePoint 2010 Sosyal Özellikler

SharePoint i birçok yönden verimli bir şekilde kullanmanın bir yolu da, bize sağladığı sosyal özellikleri daha iyi anlamaktır. Her ne kadar 14.versiyon yani SharePoint 2010 bu konuda şu anki istekleri tamamen karşılayamasa da, gelecek yeni versiyonda bu konuda gelişmeler olduğunu da duyuyoruz. Sosyal paylaşım sitelerinin son yıllarda sükse yapması ve mikro blog olayının inanılmaz tutması dolayısıyla, benzer özelliklerin 15. versiyonda geleceğini de buradan bilmeyen arkadaşlara müjdeleyebiliriz. Yeni versiyon gelene kadar tabi ki beklemeyeceğiz ve elde mevcut olan özellikleri daha verimli kullanmanın yollarını araştıracağız.

Facebook sayesinde hayatımıza bir “Like” kavramı girdi. Artık facebook kullanan kullanmayan hemen hemen herkes bu kavramı benimsedi. Beğendiğimiz yazı, resim, vs. İçerikleri “Like” ediyoruz yani beğeniyoruz. SP 2010 da bu işlev mümkün. SP2010 da bunun dışında “Rating” ve “Comment” özellikleri de mevcut. Ben burada “Like”olayını yani sosyal tagleme kısmını anlatmaya ve bir örnekle işinize yarayacak bir webpart oluşturmayı hedefliyorum.

SP2010 kullanıcıların taglerini (etiketlerini) kullanıcı profilinde saklar. SP üzerindeki profil sayfanıza gidip “Tags and Notes” kısmına gelirseniz, etiketlediğiniz içerikleri görebilirsiniz. Ayrıca SharePoint veritabanını inceleyecek olursanız, User ProfileServiceApplication_SocialDB_... ile başlayan veritabanında bulunan veritabanı tablolarını ve SocialTags tablosunda ise de tag bilgilerinin tutulduğunu görebilirsiniz. Olayı daha iyi anlatabilmek adına ben Visual Studio 2010 da bir Visual Webpart projesi başlatıyorum ve adına da MyLikesWP diyorum.

Daha sonra şu referansları projeye dahil ediyorum:

  • Microsoft.Office.Server (UserProfile SpContext için gerekli)
  • Microsoft.Office.Server.UserProfiles (UserProfiles için gerekli)
  • Microsoft.SharePoint.Taxonomy (Term Store için gerekli)
  • Microsoft.SharePoint

Kod bloğumun başındaki usingler şu şekilde oluyor yani :

using System;
using System.Web.UI;
using Microsoft.SharePoint;
using Microsoft.Office.Server.UserProfiles;
using Microsoft.Office.Server.SocialData;

Daha sonra iş, asıl önemli konuya geliyor, yani kullanıcının taglediği içerikleri almaya. Bunun için şöyle bir metot yazıyoruz :

Metoda hızlıca göz atacak olursak, parametre olarak bizden tag i yani etiketi istiyor, bu herhangi bir string değer olabilir. Biz Like taglerini istediğimiz için bu metoda “I Like It” değerini gönderiyor olacağız.

UserProfile dan şu anki kullanıcı bilgisini aldıktan sonra,
UserProfile currentProfile = manager.GetUserProfile(false);
O kullanıcıya ait SocialTerm dizisini çekiyoruz.
SocialTerm[] terms = socialManager.GetTerms(currentProfile);

Şimdi sıra aradığımız SocialTermi bulmada, SocialTerm objesinin Term.Name kısmında ise aradığımız “I Like It” stringini arıyoruz, bulduğumuz anda işler daha da kolaylaşacak. Foreach döngüsünde bu yakalama işlemini gerçekleştirdikten sonra sıra bu Term e bağlı Url leri almaya geliyor ve metodumuz işini tamamlayarak geriye bir Uri dizisi gönderiyor.
return socialManager.GetUrls(favTerm.Term, currentProfile);
Visual Webpart imizin page loadinda bu metodu çağırdığımız takdirde, bize istediğimiz Url leri dönüyor olacak.
Uri[] urls = GetUserUrlsByTag(“I Like It”);

Webpartımıza da server side divlikes adında bir div ekliyorum ve bunu dönen sonuçlarla dolduruyorum :

Burada 2 düzeltme daha doğrusu güzelleştirme yapıyorum,

  • 1) Eklenen favori linkleri daha sonra silmem gerekebilir, bu fonksiyonaliteyi sağlayan bir “Sil” butonu. Burada yine SocialTagManager sınıfının DeleteTag metodunu kullanarak işlemimi gerçekleştiriyorum.



  • 2) Eklediğim linklerin Url lerinden ziyade, sayfanın başlığını göstermek daha şık olur, bu nedenle div i doldururken SocialTagManager a tekrar gidip SocialTag dizisinden sayfa başlıklarını alıyorum.


SocialTagManager m = new SocialTagManager(serviceContext);
SocialTag[] t = m.GetTags(url);

Bir kaç sayfayı like ettikten sonra webpart ın görünüşüşu hale geldi:

 

Daha sonra bir linki silmek istediğimde ekran görüntüm şu şekilde oluyor :

Sonuç olarak toparlamak gerekirse, webpartın page load ında çağıracağımız metot şu şekilede görünüyor artık :

Ve diğer gerekli metotlar :

Umarım işinize yarar bir yazı olmuştur...