Thursday, February 02, 2012

Bu yazımızda SharePoint de kullanmamız için kendi özel alan tipimizi (custom field type) nasıl yaratacağımızı göreceğiz. Yine her zaman olduğu gibi örnek bir senaryo üzerinden, gerçek hayat örnekleriyle geliştirmemizi yapacağız.

Bir SPList üzerinde e-mail bilgisinin tutulması için özel bir alana ihtiyacımız olduğunu ve bu alanın mutlaka e-mail kriterlerine uyması gerektiğini daha önceden analist arkadaşlarımız bize bildirmişler ve bu konuda bizden birşeyler bekliyorlar.

İlk iş olarak Visual Studio 2010 ile boş bir (Blank Solution) SharePoint 2010 projesi açıyoruz. Daha sonra projemize, bu özel alanı tanımlayacağımız bir class ekliyoruz. Ben EmailField.cs dedim siz başka bir isim de verebilirsiniz. Bir class daha ekleyip bu sefer adına da EmailValidationRule.cs dedim, bu sınıf aracılığıyla da e-mail validasyonunu yapacağız.

EmailValidationRule.cs classımızın tek görevi validasyon, bu sınıfımızın görüntüsü şu şekilde oluyor :

Görüldüğü gibi, basit bir regex ile e-mail kontrolü yapılıyor. Sıra EmailField.cs ye geldi, bu class ımız da şu şekilde olacak :

Burada dikkat etmemiz gereken metod GetValidatedString metodu. Override ettiğimiz bu metod ile alanımızın gerçekten bir e-mail olup olmadığına bakıyoruz. Bu kontrolü de az önce yazdığımız EmailValidationRule.cs de bulunan kontrolle yapıyoruz. Eğer girilen değer geçerli bir e-mail adresi değilse, SPFieldValidationException fırlatarak son kullanıcıya bu hata hakkında bilgi veriyoruz. EmailField.cs de 2 adet constructor da kullandığımızı görmüşsünüzdür. Bu sınıf hakkında son olarak da default bir değer atayabilirdik, info@abc.com gibi, bunu da DefaultValue metodunu override ettiğimiz metotda return info@abc.com diyerek yapabilirdik. Ben yapmadım ama eğer size lazım olursa bu şekilde kullanabilirsiniz.

Projede yapmamız gereken son bir adım daha kaldı, o da projeye “mapped folder” eklemek. Bunun için projeye sağ tıklayıp Add -> SharePoint Mapped Folder diyoruz. Karşımıza çıkan ekrandan ise TEMPLATE altındaki XML i seçiyoruz.

Böylece projemize XML folderini maplemiş olduk. Şimdi de bu foldera yeni bir XML dosyası ekliyoruz.

Add -> New Item -> XML File, ben dosyanın adını fldtypes_customemail.xml dedim. Dosyanın adının fldtypes_ ile başlamasına dikkat edelim. XML dosyamızın içeriği de şu şekilde olacak :

Burada özel alan tipimiz hakkında bilgiler veriyoruz servera. Dikkat etmemiz gereken en önemli yer, FieldTypeClass kısmındaki verinin bizim projemizdeki doğru Namespace ve class ismini almış olması.

Artık herşey tamam, projemize sağ tıklayıp “Deploy” diyoruz ve SharePoint sitemizi açıp yeni bir custom list oluşturuyoruz (ya da var olan bir liste üzerinde de deneyebiliriz)

Listemizin ayarlar (settings) kısmından yeni bir kolon eklemeye çalışıyoruz,

Gördüğünüz gibi, az önce XML dosyasından “TypeShortDescription” kısmına yazdığımız değer burada yeni özel tipimizi gösteriyor. Yeni tipimizle yeni bir kolon ekleyip gerçekten de çalıştığını siz de görebilirsiniz.

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

Thursday, February 02, 2012 2:33:01 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]  | 
Tuesday, August 16, 2011

“SharePoint 2010 u dosya paylaşım ortamı olarak da kullanıyoruz” diyen birçok IT elemanı görmüş olabilirsiniz. “Nasıl kullanılır, neler yaparız ?” diye sorarsanız ilk sayacakları özelliklerden biri de Excel dosyalarını browser (tarayıcı) üzerinden açıp dosya üzerinde değişiklik yapabildikleri olur tahminen.

Biz de bu senaryo üzerinden giderek kendi senaryomuzu gerçek hayata yakın bir şekilde değiştirelim, SharePoint 2010 ortamında her gün rapor paylaşan bir test ekibiniz olduğunu düşünün. Bu adamlar her sabah, bir önceki güne dair test sonuçlarını SharePoint üzerinde bir Form Library (Kitaplık) üzerinden yayınlıyor olsun. Bu test sonuçlarını merak eden ve izleyen de bir grup IT ekibinizin olduğunun varsayın. Normal şartlarda bir form library yaratmak ve excel dosyalarını buradan dağıtmak/paylaşmak çok çok basit bir iş ancak bizim senaryomuzda IT ekibimiz, görmek istediği excelleri kendi bilgisayarına indirmeden, browser üzerinden görmek istiyor

Eğer standart bir kurulum yaptıysanız, normal şartlar altında bir form library de bulunan excel dosyasını “View In Browser (Tarayıcıda Görüntüle)” dediğinizde,

Şu şekilde bir hata alırsınız :

Bu hatanın çözümü ise şu şekilde :

  • 1) Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\TEMPLATE\XML\ e gidiyoruz ve serverfilesExcelServer.xml dosyasını açıyoruz.
  • 2) xls ya da xlsx uzantılı mappingleri commentliyoruz, yani şöyle bir hale gelecek dosyamız

    şeklini alıyor.
  • 3) IISRESET
  • İşlem tamam :)

Tuesday, August 16, 2011 5:19:32 PM (GTB Standard Time, UTC+02:00)  #    Comments [0]  | 
Wednesday, May 11, 2011

Eğer 64 bit bir Windows 7 işletim sisteminiz var ve kendi lokal makinenizde SharePoint çalışmak istiyorsanız, hemen Easy Setup Script i deneyin derim . Bu minik exe size, kendi geliştirme ortamınızı yaratmak için çok yardımcı olacak ...

Easy Setup Scripti İndir

Wednesday, May 11, 2011 10:49:08 AM (GTB Standard Time, UTC+02:00)  #    Comments [0]  | 
Tuesday, March 29, 2011

SharePoint üzerindeki döküman kütüphaneleri (document library) ve bazı tip listelerin e-mail özelliği etkinleştirilerek, kullanıcı arayüzü kullanmadan bu listelere ve döküman kütüphanelerine eleman eklenebileceğini biliyor muydunuz ?

Tuesday, March 29, 2011 8:36:21 AM (GTB Standard Time, UTC+02:00)  #    Comments [0]  | 

© Copyright 2009, Süleyman PETEK