Pazartesi, Ocak 19, 2009

Programatik olarak MOSS üzerinde yeni Site Koleksiyonları Oluşturmak ve Güncellemek

SharePoint Nesne modeli kullanılarak yeni bir SiteCollection oluşturmak için aşağıdaki kodlar kullanılabilir. Kodlarda ilk olarak bir SiteCollection'ın adresi belirtilerek bir SPSite tipinde bir nesne oluşturuluyor ardından da bu SiteCollection'ın yer aldığı WebApplication elde edilip WebApplication içerisine yeni bir SiteCollection oluşturuluyor.
SPSite litwareportal = new SPSite("http://litwareportal");



//80. portta yer alacak olan bir SiteCollection oluşturmak için 80.
portta bulunan web application elde ediliyor...

SPWebApplication webApplication = litwareportal.WebApplication;

webApplication.Sites.Add("/sites/MossDevelopment", "MossDeveleopment",
"Bu site kod yazarak oluşturuldu...", 1033, "STS#0", @"Litwareinc\Administrator",
"Administrator", "admin@litwareinc.com");

Console.WriteLine("Yeni SiteCollection Eklendi...");

Kodlar incelendiğinde ilk parametre olarak oluşturulacak olan SiteCollection'ın Path'inin gönderildiği görülecektir. İkinci parametre olarak da SiteCollection oluşturulurken SiteCollection içerisinde yer alacak olan TopLevelSite adındaki root sitenin adı ve üçüncü parametre olarak da tanımlaması belirtiliyor. Dördüncü parametre olarak sitenin dili belirtiliyor bu alanda 1033 İngilizce'ye karşılık gelmektedir.(Türkçe Language Pack kurulduğunda Türkçe'nin kodu 1055 olacaktır.) STS#0 ile TopLevelSite'ın şablonu belirtiliyor ve ardından son iki parametre olarak da sitenin sahibi ve mail adresi belirleniyor.
SiteCollection içerisinde yer alan bir sitenin herhangi bir özelliğini programatik olarak güncellemek için de aşağıdaki kodlar kullanılabilir.

SPSite site = new SPSite("http://litwareportal/sites/MossDevelopment");

SPWeb web = site.OpenWeb();

web.Title = "MOSS Development";

//Güncellemelerde Update() metodunun çalıştırılması gerekiyor...

web.Update();

Console.WriteLine("Site Güncellendi...");

Kodlarda daha önceliklerden faklı olarak OpenWeb() isimli bir metod kullanıldığı dikkat çekmektedir. Bu metod bir SiteCollection içerisinde yer alan bir sitenin nesnesini döndürür. Kodlarda görüldüğü gibi boş olarak kullanıldığında SiteCollection içerisinde yer alan ve SiteCollection oluşturulurken oluşturulan TopLevelSite'ın nesne örneği oluşturulur ve onun üzerinde işlem gerçekleştirilebilir. OpenWeb() metodunun OverLoad'larından bir diğeri de string olarak site URL'ini kabul eden bir metoddur. Bu metot aracılığı ile SiteCollection içerisinde yer alan bir Site açılıp üzerinden işlem gerçekleştirilebilir.
SiteCollection içerisine yeni bir Site eklemek için de aşağıdaki kodlar kullanılabilir.

SPSite site = new SPSite("http://litwareportal/sites/MossDevelopment");

SPWebTemplateCollection allTemplates = site.GetWebTemplates(1033);

SPWebTemplate template = allTemplates["BLOG#0"];

SPWeb blogSite = site.AllWebs.Add("blog", "Burak's", "Burak'ın Bloğu",
1033, template, false, false);

Console.WriteLine("{0} isimli site oluşturuldu...", blogSite.Title);

Yukarıdaki kodlarda da SPWebTemplateCollection isimli bir koleksiyon dikkat çekiyor bu koleksiyon Site template'lerini taşımak için oluşturulmuş bir koleksiyondur ve bir önceki satırda oluşturulan SPSite nesnesi içerisinde yer alan 1033 dilinde yani İngilizce'de yer alan şablonlar SPWebTemplateCollection tipinden oluşturulan nesneye alınıyor ve bir alt satırda da içlerinden daha bir tanesi daha sonra kullanılmak üzere SPWebTemplate tipinde tanımlanan nesne üzerine alınıyor. SiteCollection'a yeni bir Site eklemek için SPSite'ın AllWebs koleksiyonu kullanılıyot ve koleksiyonun Add metodu ile yeni bir Site ekleniyor, bu alanda metodun ilk parametresi sitenin URL'ini, ikincisi adını üçüncüsü de tanımlamasını ifade ediyor. Dördüncü parametre dili ve beşinci parametre de anlaşılacağı üzere sitenin şablonunu ifade ediyor. Bu alanda daha önce template isimli değişkende depolanan "BLOG#0" isimli template Blog Template'ini işaret etmektedir. Son iki parametreye false değeri atandığı görülmektedir bunlardan ilki site için ayrı bir güvenlik alt yapısının kullanılıp kullanılmayacağını belirtmektedir, false diyerek parent site'ın güvenlik ayarlarının bu site için de aynen uygulanacağını belirtmiş olduk. Son parametre ise belirtilen URL'in boş olmaması durumunda ne yapılacağını belirtmektedir, bu alanda false vererek daha önce belirtilen URL'in kullanılması durumunda hata mesajı fırlatılması sağlandı eğer true olarak belirtilirse belirtilen URL MOSS'un kullanacağı bir URL haline getirilip site oluşturuluyor olacaktır.

Hiç yorum yok: