12 Ocak 2010 Salı

Linq to Sharepoint, SPMetal


Sharepoint 2010 ile birlikte gelen yeniliklerden birisi olan LinqToSharepoint ile birlikte artık Caml sorgusu yerine Linq sorguları ile verilerimizi çekebileceğiz.
SP2010 öncesinde CodePlex’de proje bulunmaktaydı.

Sorgularımız oluşturmak için 14 klasörü içerisinde bulunan BIN klasöründeki SPMetal.exe den yararlanmaktayız. SPMetal ile oluşturulan kodu projemize ekledikten sonra listelerimize, resim kütüphanelerimize, sayfalarımıza ulaşıp sorgulayabiliriz.

Gelin sade bir örnekle bunu inceleyelim.
Öncelikle haberlerimizin tutulacağı custom list oluşturalım adına “Haberler” diyelim.
Daha sonrasında haber resimlerinin tutulacağı resim kütüphanemizi oluşturalım adına “Haber Resimleri” diyelim
“Haberler” listemize Lookup Field olarak “Haber Resimleri” ekleyelim.
Haberlerin kolonları aşağıdaki gibi olsun
Örnek bir kaç haber girdikten sonra Visual Studio 2010 ile birlikte gelen Visual Web Part ile WebPartımızı geliştirelim.


Proje teması olarak Sharepoint seçeneği altındaki 2010 da bulunan Visaul Web Part seçtikten sonra projemizi deploy edeceğimiz siteyi yazıyoruz.
Projemizi oluşturduktan sonra SPMetal ile Entities kodumuzu oluşturalım.
Bunun için .bat dosyası oluşturmamız gerekmekte ve gerekli parametreleri girmeliyiz.

Set SPMETAL="C:\Program Files\Common Files\Microsoft Shared\Web Server Extensions\14\BIN\SPMETAL.EXE"
%SPMETAL% /web:YOURWEBSITE /namespace:Entities /code:Entities.cs

Yukarıdaki komutları not defterine yazıp “SPMetal.bat” olarak kaydedip çalıştırdığımızda Entities.cs olarak kodları oluşturmakta. YOURWEBSITE kısmını siz kendi sitenize göre değiştirmeyi unutmayınız.
Projemizi oluşturup ve Entities.cs’yi ekledikten sonra
böyle bir görüntü elde edeceğiz. Visual Web Partımızın adını HaberlerVisualWp olarak verdiğimizi varsayalım.
ISAPI klasörü altındaki Microsoft.Sharepoint.Linq dllini referans olarak projemize ekliyoruz.
using System.Linq;
using Microsoft.SharePoint.Linq;

namespacelerini ekliyoruz ve ardından linq sorgumuzu yazmaya geçelim.
Kategorisi “Bizden” olan haberleri listeledik. Burada en çok hoşuma giden nokta seçenek tipinde oluşturduğum fieldın seçeneklerinin Intellisense şeklinde kodda yer alması.


Kodumuzu yazdıktan sonra projemize deploy diyerek projemizi oluştururken belirttiğimiz siteye deploy ediyoruz.
İster F5 ile projeyi deploy ediyip yeni sayfa oluştur ister yukarıdaki gibi deploy deyip var olan bir sayfanıza WebPartı eklersiniz.
Deploy dedikten sonra ilgili sayfayı düzenleyip webpartımızı ekliyoruz. Haberler WebPartımız “Custom” altında web partlar içerisinde yerini almaktadır.

SP2007’de olduğu gibi SP2010’da da yardımcı toollar çıkmaya başladı. SPMetal’i görselleştiren .bat dosyası oluşturmanıza gerek kalmayan uygulamaya buradan ulaşabilirsiniz.

LinqToSharepoint de karşılaştığım sıkıntı senkron olmaması. Sharepoint portalımızda değişiklik yaptığımızda örneğin seçeneklere yeni bir seçenek eklediğimizde. Bunu Enitities.cs kodumuza da yansıtmamız gerekir isterseniz kendiniz yazarak ekleyebilirsiniz ama daha sağlıklı olması açısından tekrar SPMetal uygulamasını çalıştırıp kodu güncel hale getirmeliyiz.

Channel9'daki videoyu tavsiye ederim.

29 Aralık 2009 Salı

Reklamlar

Önemli bir haber kanalımızda, önemli bir konu üzerine, önemli insanların konuştuğu, tartıştığı konunun önemli noktasında sunucu araya girer ve "kısa bir reklam arasından sonra kaldığımız yerden devam edeceğiz" der.

Aklıma hemen şöyle bir sahne geldi: Önemli bir çatışma içerisindesin düşman ile karşı karşıyasın ve araya birisi girip "durun bir dakika reklamlardan sonra savaşa devam ederiz" gibi bir durum gözümün önünde canlandı.

Bu kadar önemli bir konuya verdiğiniz değer ve hassasiyetiniz sizin işte bu kadar; "İki reklam arası"...

18 Ağustos 2009 Salı

Görünmezlik Pelerini

Bilkent Üniversitesi Nanoteknoloji Araştırma Merkezi (NANOTAM) araştırmacıları, cisimleri belli frekanslarda görünmez kılan nanoteknoloji tabanlı malzeme geliştirdi.

Gururlandırıcı bir haber...




Ben burada bir tanesini paylaştım
Bu haber ile ilgili bir kaç video aşağıdaki linklerde mevcuttur.

Özellikle Bilkent Üniversitesi'nin sitesindeki Şubat 2009'da hazırlanmış videoda
Türkiye'nin tek Descartes bilim ödülü sahibi olan Bilkent Üniversitesi NANOTAM Başkanı Prof. Dr. Ekmel Özbay'ın anlattıklarını izleyin.

http://podcast.bilkent.edu.tr/?p=episode&name=2009-02-04_gorunmezlik_pelerini.mp4

http://www.aa.com.tr/tr/arastirmacilardan-gorunmezlik-pelerini.html

http://www.trt.net.tr/Haber/HaberDetay.aspx?HaberKodu=6148e2a1-f0db-465a-b487-ab72d2292b5c

26 Haziran 2009 Cuma

Sharepoint Recycle Bin

Sharepoint üzerinde recycle bin ayarlarını
Central Administration > Application Management > Web Application General Settings sayfasının en altında yer alan kısımda seçili olan web applicationımız için yapabiliyoruz.

tercih edilmese de kapalı konuma getirerek silinen öğelerin recycle bin’e değil de tamamen silinmesini sağlayabiliriz :)



resimde de görüldüğü üzere default ayarlar bu şekilde.Bunu ister web application ayarlarında, ister Timer Job yazarak her gece, recycle bin içerisindeki tüm dosyaları silebiliriz.Aşağıda nasıl silineceği ile ilgili örnek kod mevcuttur.


Yukarıdaki kodda SPSite ile yaptığımız için root ve subsite'lar altındaki tüm recycle bin öğelerini getirmekte bize.

ilk foreachden önce tüm öğeleri silmekteyiz.
ilk foreachde öğeleri iki farklı şekilde tek tek silmekteyiz.
ikinci foreachde ise yalnızca ListItem'ları silmekteyiz ki neleri silmek istediğimizi bunun gibi özelleştirebiliriz.

23 Haziran 2009 Salı

Application ve w3wp.exe eşleştirmesi

Production ortamında yalnızca tek application kurarız ancak test ortamımızda birden fazla application oluşturur ve çalışmalarımızı bu applicationlar üzerinde yaparız.
Applicationlarımızın task manager'da hangi w3wp.exe'ye karşılık geldiğini bilemeyiz.

Ancak aşağıdaki adımları uyguladıktan sonra Process ID ile IIS üzerinde Application Pool IDlerin eşleşmelerini sağlayarak w3wp uygulamalarının bizim applicationlarımızın hangisi ile eşleştiğini öğrenebiliriz.

Ben 3 adet application açtım (browser internet explorer veya firefox fark etmiyor)

1. Task Manager -> View -> Select Columns...

2. PID (Process Identifier) seçiyoruz ve Ok diyoruz.



Task Manager böyle gözükmekte.



4. Command Prompt açıyoruz.

5. Command Prompt’a yapıştırıyoruz.

%systemroot%\system32\cscript.exe %systemroot%\system32\iisapp.vbs

Birde Central Administration açarak scriptleri çalıştırıyorum.Ekran görüntüsü aşağıda yer almakta.


Command Prompt ile çalışmam olacağı zaman genelde .bat dosyası oluşturarak bir klasörde tutuyorum ve script çalıştırmam gerektiği zaman ilgili klasöre gidip bat dosyası çift tık ile scriptleri çalıştırmayı tercih ediyorum.