15
Nov 10

Sharepoint Caml Query oluşturmak

Sharepoint listelerinde farklı parametrelerle dataları çekmek ve var olan datarları sıralamak için CAML query’ler kullanılabilir. Oldukça hızlı ve kullanışlı dır. CAML Query taglarını başta yazmak zor gibi gözükse de , query’leri farklı tool’larla doğrulayarak kod parçanızın içerisine rahatlıkla ekleyebilirsiniz.

Örneğimizde CAML query oluşturmak ile ilgili bazı tanımlardan bahsedeceğim. Bir sonraki yazıda oluşturacağımız CAML query’leri projemizde kullanacağız.

U2U Caml Query Builder 2007 CAML queryleri oluşturmak ve test etmek için kullanacabileceğiniz kullanışlı bir araçtır. Programı http://www.u2u.net/res/Tools/CamlQueryBuilder.aspx linkinden indirebilirsiniz.

Program üzerinde CAML query’i nedir ne işe yarar bir göz atalım. Programı çalıştırıyoruz. Sharepoint site Url yazan kısma sitemizin url’ni girdikten sonra Connect tuşuna basıyoruz. Karşımıza çıkan ekranda tüm listeler yer almaktadır. Herhangi bir listeyi seçtikten sonra ekran listenin kolonları listelenecektir. Kolon seçimini ve sıralama ya da koşul vereceğimizi belirledikten sonra Editor sekmesinde oluşturduğunuz sorguyu görüntüleyebilirsiniz , Test tuşuna bastığınızda sorgunuzun sonuçları listelecektir.

1

Caml Query’leri kullanarak kullanıcıdan aldığınız parametler ile listeleri filtreyebilirsiniz , custom list view oluşturabilirsiniz. Sharepoint Listeler üzerinde çalışırken listedeki verilerin tümünü çekmediğiniz her işlem için CAML query’ler sizlere oldukça kolaylık sağlayacaktır .

İyi çalışmalar dilerim…


13
Nov 10

Sharepoint WebService – Get sites,lists,items

Sharepoint’e sharepoint’in kurulu olmadığı bir makineden bağlanarak işlemler yapmak istiyorsanız , sharepoint webservisleri kullanmalısınız. Sharepoint webservisleri ile sharepoint arayüzünden yapabildiğiniz birçok özelliği kullanabilirsiniz. Server üzerinde olmayan uygulamalar ile örneğin listelere bağlanmak, veri kayıt, silme , güncelleme gibi işlemleri yapabilirsiniz.

Sharepoint webservis uygulamaları ile yapacağınız uygulamalar sayesinde kullanıcılara sharepoint portal sayfanızı göstermeden sharepoint üzerinde yapmasını istediğiniz tüm işlemleri yapmanız mümkündür. Ayrıca sharepoint’te oluşan durumların farklı makinelerden kontrolü sonrası kullanıcıların uyarılması ya da bilgilendirme maili atılması gibi daha aklıma gelmeyen birçok işlemi servisler sayesinde gerçekleyebiliriz.

Yapacağımız projede sharepoint sitecollection’a webservis yardımı ile bağlanacağız. Gerekli Web Referanslar’ını ekleyeceğiz. Sitecollection üzerindeki sayfaları listeleyeceğiz. Ardından kullanıcının seçmiş olduğu sayfadaki tüm listeleri kullanıcıya göstereceğiz. Son olarak kullanıcının seçmiş olduğu listedeki tüm item’ları çekeceğiz.

Projemiz 3 kısımdan oluşacak : Siteleri listelemek ; Seçilen sayfadaki üm listeleri çekmek ;Seçilen listedeki kayıtları çekmek

Visual studio ile yeni bir Windows Form Application oluşturalım.

1)Siteleri listelemek : Oluşturduğumz projede , sharepoint portal sayfasında bulunan siteleri listelemek için projeye sağ tıklayarak Add Sevice Reference diyoruz. Karşımıza çıkan ekran Advanced seçeneğine bastıktan sonra karşımıza çıkan ekranda sol alta köşede Add Web Reference çıkacaktır , bu seçeneğe tıklıyoruz. Add Web Reference ekranında URL kısmına listeler ile işlem yapacağımız için siteleri çekebileceğimiz http://sharepointsite/_vti_bin/webs.asmx adresini URL kısmına yazıyoruz. Web referansa istediğiniz bir isim verdikten sonra tamam’a basıyoruz.

1

Web Referansında dikkat edilmesi gereken web servis URL ‘dir. http://sharepointsite/vti_bin/webs.asmx Url’inde olduğu gibi hangi sitecollection üzerinden bağlantı kuracağımız /vti_bin/webs.asmx ekinden önceki sayfa Url’idir. Örneğin : projeyi geliştirdiğimiz makinede spoint:1000 ve spoint:1000/examplesitecollection Url’leri altında farklı iki sitecollection var. Web servis eklerken url’lerimiz şu şekilde olmalıdır.

http://spoint:1000/vti_bin/webs.asmx

http://spoint:1000/examplesitecollection/vti_bin/webs.asmx

Web referansı projeye ekledik. Şimdi proje Form’una bir Button ve hemen altına da bir Listbox ekliyoruz. Button tıkladığında bağlı olduğumuz sitecollection altındaki tüm listeleri web servis yardımı ile çekerek listbox’da listeleyeceğiz. Button_Click olayına şu kod parçasını ekliyoruz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Xml;
using System.Windows.Forms;
 
namespace SharepointWebService
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            spointwebs.Webs webColl = new SharepointWebService.spointwebs.Webs();
            webColl.UseDefaultCredentials = true;
            listBox1.Items.Clear();
            listBox1.Items.Add(webColl.Url.Remove(webColl.Url.IndexOf('_')));
            XmlNode xNode = webColl.GetWebCollection();
            foreach (XmlNode xchild in xNode.ChildNodes)
            {
                listBox1.Items.Add(xchild.Attributes["Url"].Value);
            }
        }
    }
}

Yukarıdaki kodda webColl.UseDefaultCredentials = true; satırı bağlanan kullanıcının yetkilerini kullan anlamına gelir. Eğer bu satırı kodda kullanmaz iseniz izinlere takılacak muhtemelen hata alacaksınız. Bu satır yerine yeni bir yetki tanımlaması yada sabit bir kullanıcı da verebilirsiniz.

2

2) Seçilen sayfadaki tüm listeleri çekmek : Siteleri çekip listeledikten sonra kullanıcın listelenen sitelerden herhangi birini seçmesi durumunda , seçilen sitenin listelerini, Form’a ekleyeceğimiz listbox’ta görüntüleyeceğiz. Bu işlem için projeye sağ tıklayarak Add Web Reference diyoruz URL kısmına http://sharepointsite/_vti_bin/lists.asmx yazıyoruz. Bu web servis ile listelere erişilebilir ve listeler üzerinde tüm işlemler yapılabilir. İlk aşamada siteleri listbox1′de listemiştik. Listbox1 seçim olayına liste çektiğimiz kodu ekliyoruz. Kod aşağıdaki şekilde oluşacaktır.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
namespace SharepointWebService
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            spointwebs.Webs webColl = new SharepointWebService.spointwebs.Webs();
            webColl.UseDefaultCredentials = true;
            listBox1.Items.Clear();
            listBox1.Items.Add(webColl.Url.Remove(webColl.Url.IndexOf('_')));
            XmlNode xNode = webColl.GetWebCollection();
            foreach (XmlNode xchild in xNode.ChildNodes)
            {
                listBox1.Items.Add(xchild.Attributes["Url"].Value);
            }
        }
 
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            spointlists.Lists listCol = new SharepointWebService.spointlists.Lists();
            listCol.Url = listBox1.SelectedItem.ToString() + "/_vti_bin/lists.asmx";
            listCol.UseDefaultCredentials = true;
 
            listBox2.Items.Clear();
 
            XmlNode xNode = listCol.GetListCollection();
            foreach (XmlNode xchild in xNode.ChildNodes)
            {
                listBox2.Items.Add(xchild.Attributes["Title"].Value);
            }
        } 
     }
}

Burada dikkat edilmesi gereken durum , listCol.Url = listBox1.SelectedItem.ToString() + “/_vti_bin/lists.asmx”; satırıdır. Bağlandığımız ilk servis spoint:1000 url’i altındaydı. Eklediğimiz liste web servisinin url’ini kullanıcının seçimine bağlı olarak değiştiriyoruz. Böylece kullanıcının seçmiş olduğu siteye göre web servis url’i değişecek dolayısıyla seçilen sitenin listeleri ekranda listelenecektir.

3

3)Seçilen listedeki kayıtları çekmek : Son adıma gelene kadar siteleri ve listeleri listeledik. Şimdi ise seçilen liste verilerini ekleyeceğimiz listbox’a ayraç kullanarak listeyeceğiz. Son eklediğimiz liste web servisi ile bu işlemi yapmak mümkün fakat yazımızda ne kadar farklı web servis kullanırsak o kadar iyi olur diye düşünüyorum.(Burada kullandıklarımız dışında sharepoint web servislerinin tüm listesini açıklamalarıyla birlikte http://msdn.microsoft.com/en-us/library/bb862916(office.12).aspx adresinden bulabilirsiniz.)

Liste verilerini çekmek için kullanacağımız web servisi ekliyoruz. Web servisimizin URL’i http://sharepointsite/_vti_bin/sitedata.asmx şeklinde olacaktır. Site listelerini gösterdiğimiz listbox2 ‘deki seçim değiştiğinde kullanıcının seçmiş olduğu listenin verilerini göstereceğiz. Kod aşağıdaki şekilde olacaktır.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
namespace SharepointWebService
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private void button1_Click(object sender, EventArgs e)
        {
            spointwebs.Webs webColl = new SharepointWebService.spointwebs.Webs();
            webColl.UseDefaultCredentials = true;
            listBox1.Items.Clear();
            listBox1.Items.Add(webColl.Url.Remove(webColl.Url.IndexOf('_')));
            XmlNode xNode = webColl.GetWebCollection();
            foreach (XmlNode xchild in xNode.ChildNodes)
            {
                listBox1.Items.Add(xchild.Attributes["Url"].Value);
            }
        }
 
        private void listBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            spointlists.Lists listCol = new SharepointWebService.spointlists.Lists();
            listCol.Url = listBox1.SelectedItem.ToString() + "/_vti_bin/lists.asmx";
            listCol.UseDefaultCredentials = true;
 
            listBox2.Items.Clear();
 
            XmlNode xNode = listCol.GetListCollection();
            foreach (XmlNode xchild in xNode.ChildNodes)
            {
                listBox2.Items.Add(xchild.Attributes["Title"].Value);
            }
        }
 
        private void listBox2_SelectedIndexChanged(object sender, EventArgs e)
        {
            spointlists.Lists listCol = new SharepointWebService.spointlists.Lists();
            listCol.Url = listBox1.SelectedItem.ToString() + "/_vti_bin/lists.asmx";
            listCol.UseDefaultCredentials = true;
 
            spointsitedata.SiteData sdata = new SharepointWebService.spointsitedata.SiteData();
            sdata.Url = listBox1.SelectedItem.ToString() + "/_vti_bin/sitedata.asmx";
            sdata.UseDefaultCredentials = true;
 
            spointsitedata._sWebMetadata md;
            spointsitedata._sWebWithTime[] wt;
            spointsitedata._sListWithTime[] lwt;
            spointsitedata._sFPUrl[] furl;
            string role;
            string[] roles;
            string[] rolesg;
 
            uint i = sdata.GetWeb(out md, out wt, out lwt, out furl, out role, out roles, out rolesg);
            Guid g = new Guid(md.WebID);
 
            XmlDocument doc = new XmlDocument();
            doc.LoadXml("<Document><Query /><ViewFields /><QueryOptions /></Document>");
            XmlNode x = listCol.GetListItems(listBox2.SelectedItem.ToString(), string.Empty, doc.SelectSingleNode("//Query"), doc.SelectSingleNode("//ViewFields")
                                 , string.Empty, doc.SelectSingleNode("//QueryOptions"), g.ToString());
 
            listBox3.Items.Clear();
 
            foreach (XmlNode xchild in x.ChildNodes)
            {
                foreach (XmlNode xchild2 in xchild.ChildNodes)
                {
                    if (xchild2.Attributes != null)
                    {
                        try
                        {
                            string item = string.Empty;
                            foreach (XmlAttribute att in xchild2.Attributes)
                            {
                                item = item + " @ " + att.Value;
                            }
                            listBox3.Items.Add(item);
                        }
                        catch (Exception )
                        {
                            listBox3.Items.Add("Liste \"Title\" kolonu içermiyor...");
                        }
                    }
                }
            }
        }
    }
}

4

Umarım bu örnek sizler için yararlı olmuştur. Herkese iyi çalışmalar.


22
Oct 10

Sharepoint Workflow Status

Shareopint basit iş akışları için bize hızlı ve kullanışlı çözümler sunsa bile , bir zaman sonra farkedeceksiniz ki , iş akışı süreci analiz sırasında sizlere basit gelse dahi , bu akışı sharepoint ortamına aktarmak hiç de kolay değil. Dolayısıyla sharepoint arayüzden iş akışı tanımlamayı çok sık kullanacağınızı düşünmüyorum.

O yada bu sebepten iş akış ihtiyaçlarınızı sharepoint üzerinde kullanma olasılığınız oldukça yüksek. Sharepoint’in iş akışlarının , bizler için yeterli olmadığı durumlarda alternatif çözümlerimizin neler olduğundan ileriki yazılarımızda bahsedeceğiz.

Yazımızda custom uygulamalarda karşısınıza oldukça sık çıkacak olan Workflow Status’lerden bahsedeceğim.
Sharepoint listesi üzerinde herhangi bir iş akışı başlattığınızda , listeye iş akışınıza vermiş olduğunuz varsayılan ad ile aynı isimde bir kolon oluşturulur ve varsayılan liste view’ine eklenir. Eklenen bu kolon iş akışına sokulmuş olan item’ın workflow status değerini tutar. Sharepoint sitenize bağlanıp , iş akışını tanımladığınız listeden verileri çekerseniz , iş akışı ile listeye eklenen kolon değerleri şu şekilde gelecektir :

NotStarted 0
Failed On Start 1
In Progress 2
Error Occured 3
Canceled 4
Completed 5
Failed on Start (retrying) 6
Error Occurred (retrying) 7
Canceled 15
Approved 16
Rejected 17

Bu değerleri bir yere not etmenizi şiddetle tavsiye ederim. Farklı sayfalardaki iş akışlarını raporlarken ya da görevlerin düştüğü tasks listelerinde workflow status değerlerini çekip durumları kullanıcılara bildirmek gibi istekli karşılarken bu değerleri kullanacaksınız. Çektiğiniz değer bu şekilde rakamla gelirken , listede açıklamaları şeklinde gözükecektir.

Oluşturduğunuz iş akışını kullanmış olduğunuz listedeki item’lerin workflow status’lerini çekerken daha önceki örneklerde yaptığımız gibi listeye bağlanıp workflow status bilgisini tutan alana erişerek herbir veri için bu değeri alıyor ve yazdırıyoruz.

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
 
namespace GetWorkflowStatus
{
    class Program
    {
        static void Main(string[] args)
        {
            SPSite site = new SPSite("http://spoint:1000/sites/sitecollection");
            SPWeb web = site.RootWeb;
            SPList list = web.Lists["Onay Listesi"];
            foreach (SPItem item in list.Items)
            {
                Console.WriteLine(item["Title"].ToString() + " - " + item["Onay"].ToString());
            }
            Console.ReadLine();
        }
    }
}

19
Oct 10

Sharepoint Gizli Liste ve Alanlar

Sharepoint içerisinde gizli içerik yapıları , listeler ve alanlar bulunmaktadır. Projede öncelikle listeleri inceleyeceğiz. Gizli listelerin özelliklerini değiştirerek listeleyeceğiz. Daha sonra listenin kolonlarına bakacağız. Liste kolonlarından özelliği gizli (hidden) ayarlanmış olanları tespit ederek bu alanları görünür hale getireceğiz. Gizli liste ve alanları göstererek sharepoint üzerindeki birçok log bilgilerine ulaşabilirsiniz.

Visual Studio ile console projesi oluşturuyoruz. Microsoft.Sharepoint.dll referansını ekliyoruz. Öncelikle sharepoint sitecollection’a bağlanıyoruz. Bağlandığımız sayfadaki tüm listeleri adları ve “hidden” özellikleri ile listeliyoruz.
1
2
Sharepoint listelerinin hidden property’si true ise sharepoint sayfasında gözükmeyecektir. Sharepoint sitenize var olan listeleri sayfa üzerinde görebilmek için SiteActions->SiteSetting->Document Libraries And Lists linkine tıklayınız.
Listeledğimiz sharepoint listelerinden görünmeyen listeleri listelemek için bu özelliği false yapıyoruz. Sharepoint listelerini tekrar kontrol ettiğimizde daha önceden hidden property’leri true olan ve gözükmeyen listeleri listeleyebilirsiniz.
Devamı için tıklayın…


12
Oct 10

Sharepoint Document Library Ekleme

Projemizde Sharepoint Document Library ‘leri kod ile siteye ekleyeğiz ve sharepoint quick launch kategorisinde görünmesini sağlayacağız. Visual Studio ile console application açarak sharepoint dll’leri referans olarak ekledikten sonra kodlamaya başlıyoruz.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
 
namespace CreateList
{
    class Program
    {
        static void Main(string[] args)
        {
            SPSite site = new SPSite("http://spoint:1000/sites/sitecollection/");
            site.AllWebs[0].Lists.Add("CodeList", "bu liste kod ile oluşturulmuştur.", SPListTemplateType.DocumentLibrary);
            SPList list = site.AllWebs[0].Lists["CodeList"];
            list.OnQuickLaunch = true;
            list.EnableVersioning = true;
            list.Update();          
        }
    }
}

OnQuickLaunch -> eklenen listenin sol taraftaki hızlı erişim kategorisinde listelenmesini sağlar
EnableVersioning -> listeye eklenen dökümanların versiyonlarının tutulması ile ilgili özellik

Not: Eğer değişiklik yaptığınız listeyi güncellemesseniz yaptığınız değişiklikler gözükmeyecektir.

1

İyi çalışmalar …


12
Oct 10

Sharepoint Website Oluşturma

Sitecollection altında bir website oluşturabilmek için sitecollection ‘a bağlandıktan sonra sitecollection altındaki tüm websitelerine AllWebs property’si ile erişilebilir. Sharepoint referanslarını ekledikten sonra kod aşağıdaki gibi olacaktır.

using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
 
namespace CreateWebSite
{
    class Program
    {
        static void Main(string[] args)
        {
            SPSite siteCollection = new SPSite("http://spoint:1000/sites/sitecollection");
            SPWeb spweb = siteCollection.AllWebs.Add("website1", "Web Sitesi", "Bu websitesi kod ile oluşturulmuştur", 1033, "BLOG#0", false, false);
 
            Console.Write("sitecollection altında site oluşturuldu...");
            Console.ReadLine();
        }
    }
}

SPWeb spweb = siteCollection.AllWebs.Add(“website1″, “Web Sitesi”, “Bu websitesi kod ile oluşturulmuştur”, 1033, “BLOG#0″, false, false); satırı ile websitesini ekledik. Parametreleri incelersek;
Devamı için tıklayın…


13
Sep 10

Sharepoint sitecollection oluşturma

Sharepoint ile yapacağımız işlemler için windows uygulamaları yazacağız. Shareopint sitesine bağlanma, sitedeki kütüphaneleri listeleme , view oluşturma, liste oluşturma gibi birkez yapılacak işlemleri kodlarla geliştireceğiz. Arayüzden yapacağımız birçok işlemi kodla yaparak sharepoint hiyerarşisini daha iyi anlayacağız.

Visual Studio ile yeni Windows Console Application oluşturuyoruz. Sharepoint ile ilgili işlemler yapmak için projeye C:\Program Files \Common Files \Microsoft Shared \web server extensions \12 \ISAPI dizini altında Microsoft Sharepoint.dll referansını ekliyoruz.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
using System;
using System.Collections.Generic;
using System.Text;
using Microsoft.SharePoint;
using Microsoft.SharePoint.Administration;
 
namespace CreateSiteCollection
{
    class Program
    {
        static void Main(string[] args)
        {
            SPSite site = new SPSite("http://spoint:1000");
            SPWebApplication webapp = site.WebApplication;
            webapp.Sites.Add("/sites/sitecollection", "Site Collection", "Bu site collection kod ile oluşturulmuştur.", 1033, "STS#0", "spoint\\administrator", "administrator", "administrator@spoint.com.tr");
 
            Console.WriteLine("SiteCollection oluşturuldu....");
            Console.ReadLine();
        }
    }
}

Varolan siteye bağlanarak , sitenin oluşturulduğu webapplication’ı çekiyoruz. Webapplication üzerinde yeni bir sitecollection oluşturuyoruz.
Devamı için tıklayın…


02
Sep 10

Devexpress Nesnelerinin Sharepoint Custom Webpart ile Kullanımı

Projemizde , webapart’ımızı daha görsel hale getirmeye çalışacağız. Artık birçok kişi , Visual Studio 2008 ile geliştrdiği projelerde , projeye görsellik katan hazır , görsel nesneler kullanmaktadır. Yazıda Devexpress nesnelerini sharepoint sayfasında nasıl kullanılacağını göreceğiz. Kullanacağımız yöntem ile devexpress nesnelerin yanında diğer nesneleri de sharepoint sayfasında kullanabilirsiniz.

Projede Devexpress v9.3 nesnelerini kullanacağız. En son Devexpress nesnelerinin deneme sürümünü buradan indirebilirsiniz. Dosyayı indirdikten sonra kurulumu yapıyoruz.

Oluşturacağımız WebSite projesine WebUserControl ekleyeceğiz. Devexpress nesneleri ile tasarım ve kodlamayı webusercontrol üzerinde yapıp hazır ettikten sonra , yazacağımız custom webpart ile hazırladığımız webusercontrol’ü sharepoint sayfasında göstereceğiz.

Visual Studio 2008 ile website projesi oluşturuyoruz. Projeye UcWithDevx.ascx adında bir webusercontrol ekliyoruz. Devexpress kurulumu sonrasında visual studio 2008 toolbox’ına devexpress nesneleri eklenecektir.
Not: Devexpresss nesnelerini toolbox’ta göremiyorsanız. Başlat’tan devexpress sekmesinde Tools bölümünden ToolBoxCreator eklentisini çalıştırın.

1

Toolbox’tan Devexpress-Data kategorisinden AspxGridView nesnesini webusercontrol’e ekliyoruz. AspxGridView kontrolünde autoformat özelliklerinden istediğimiz bir temayı seçiyoruz ve birkaç özelliğini değiştiriyoruz. AspxGridView tablosuna sharepoint tablosunun verilerini çekerek göstereceğiz. Verilerini alacağımız listenin isimlerini webusercontrol’e ekleyeceğimiz AspxComboBox ‘taki liste isimlerinden çekeceğiz.

2
3
Devamı için tıklayın…


30
Aug 10

Sharepoint Webpart Custom Property Ekleme

Sharepoint webpart’larının ayarlarına girdiğimizde kullanıcı tarafından değiştirilebilen ve webpart’a özel ayarların kaydedilebildiği alanlar görürüz. Kullanıcı kullandığı webpart’ın adını , genişliğini , araç çubuğunu, satır sayısını ve daha bir çok özelliğini değiştrebilir ve kaydedebilir.

Herhangi bir webpart’ın özelliklerini değiştirebilmek için webpart’ı eklediğimiz sayfada Site Actions -> Edit Page denir ve Edit menüsünde Modify Shared Webpart tabına tıklanır. Webpart standart ayarlarını gösteren ekran görüntüsü aşağıdadır.

1

Varsayılan webpart özellikleri farklı kategorilere bölünmüştür. Projede yazacağımız custom webpart özellikleri Miscellaneous kategorisi altında listelenecektir. Herhangi bir custom property eklemediğimizden ,webpart özellikleri henüz kategorileri arasında bulunmamaktadır.

Yazacağımız webpart’ta , sharepoint varsayılan webpart ayarlarının yanısıra , kendi ekleyeceğimiz özellikler ile webpart’larımızı kullanıcı tarafından değiştirilebilir hale getirebileceğiz.Webpart’ta veritabanı bağlantı cümlesini , veritabanı sorgu cümlesini , gridview’in başlık bilgilerini ve alternatif satır sitili rengini , kullanıcının webpart ayarlarından değiştirebileceği bir webpart tasarlayacağız. Kısacası custom toolpart yapmış olacağız.
Devamı için tıklayın…


26
Aug 10

Sharepoint Webpart WebUserControl Kullanımı

Önceki projelerde , webpart yazarken web controls eklemenin , görsellik katmanın zorluğunu sizler de farketmişsinizdir. Basit bir tablo hazırlarken bile oldukça zaman alıcı işler yapıyoruz. Önceki yazılarımzda webpart’lara eklediğimiz arayüz kontrollerinin hepsini kodla eklemiştik. Artık bu şekilde yapmayacağız. Visual Studio ‘nun sürükle bırak özelliklerinden sonuna kadar yararlanacağız ve görsellik ile alakalı bir problemimiz kalmayacak.

Sharepoint webpart yazarken artık WebUserControl‘leri kullanacağız. Visual Studio 2008′de bir web sayfası projesi oluşturup , eklediğimiz WebUserControl’ler ile günümüzü gün ettikten sonra WebUserControl’ü webpart’a ekleyerek tasarımları oldukça kolaylaştıracağız.

Yazacağımız webpart’ta custom property ekleme ile alakalı örneğimizden yararlanarak , aynı webpart içerisinde farklı WebUserControl’ler çağırarak esnek bir webpart yazacağız. Yazdığımız webpart sayesinde , farklı tasarımlar ve içeriklerle hazırladığımız WebUserControl’leri sitemize ekleyebileceğiz. Sitenizdeki izinler doğrultusunda webpart’ı değiştirebilecek bir kullanıcının , tasarladığınız sayfaları görebilmesini sağlayacağız. Oldukça kullanışlı bir webpart olacak.

Öncelikle Visual Studio 2008 ile bir WebSite projesi oluşturalım. Projeye sağ tıklayıp Add Item ->WebUserControl dosyamızı , Code Behind File (.cs dosyası) ile projeye ekleyelim. İlk WebUserControl’de veritabanında bir rapor çekeceğiz , ikinci WebUserControl’ü de projeye yine kod dosyası ile ekleyelim. İkinci WebUserControl’de sharepoint sitesindeki tüm listeleri adları ve açıklamaları ile seçeceğiz. Diğer bir WebUserControl ‘ü de ekleyerek , site collection’daki tüm sitelerin isimlerini listeleyelim. Proje eklediğimiz WebUserControl’ler ile şu şekilde olacaktır.

1
Devamı için tıklayın…