[SharePoint 開發 起步走 -2] 學會操作 SPSite SPWebApplication SPWebTemplateCollection 用程式新增、修改網站

[SharePoint 開發 起步走 -2] 學會操作 SPSite SPWebApplication SPWebTemplateCollection 用程式新增、修改網站

繼上一篇,如何開始開發後,接下來就要開始正式的進入 SharePoint 的開發世界,
在正式開發前,有幾個觀念要說明一下。
1.使用 SharePoint.dll 這個SDK系列的,必須是要在 SharePointServer 主機上才能使用,是無法遠端能夠使用存取的。
(這因該是為了確保安全,因為如果大家都可以直接使用 SharePoint.dll 再加上網站位址就能讀到SharePoint資料,
那是多麼恐怖的事情)
2.當在本機使用SharePoint.dll 系列SDK,將是模擬了最大管理者,所有資料都能讀取、修改)
所以就開始進行如何操作 SharePoint SDK
第一個範例,如何顯示出Sharepoint主機上的資料
        private void SetRichTextBox(string inValue)
        {
            richTextBox1.Text += inValue + "\n";
        }
private void GetSite()      
        {
//顯示出該MOSS網站名及連結
              SPSite rootColleciton = new SPSite("http://cms");
            SetRichTextBox(rootColleciton.WebApplication.Name);
            SetRichTextBox(rootColleciton.Url);            
        }
第一個範例比較簡單,就是在 SPSite 初始化時,給予SharePoint上的網址,就能查出目前SharePoint上
Web的名稱使用的Port 及 目前的網址。
---- 顯示資訊如下
SharePoint - 80
http://cms
--------
再來第二個範例,我們延伸SPList這一個物件,來透過程式新增一個網站於SharePointServer中

           //³ 透過程式來建立出主網站
            //µ¹  給予主目錄位址  
SPSite site = new SPSite("http://cms:37636"); SPWebApplication webApplication = site.WebApplication; //1028為繁體中文 網站看到範例為 1033 為英文版本
webApplication.Sites.Add("sites/newtest", "網站名稱", "網站描述", 1028,
"STS#0", @"管理者帳號", "登入帳號", "管理者eMail");
這邊要特別說明有兩個地方
1. 1028 這個號碼,因為這邊等於要用什麼語系的套版,看到網路上範例大部分是 1033 ,所以都是英語系的,
至於簡中看了網路上有人寫出是 2052 ,就是一直找不太到 繁中 的號碼是什麼,找了很久,幸好在我的同事
Jon 我們使用了 Try Error 方式,用回圈跑出了正確的號碼,非常的感謝他的幫忙,讓我突破了這個難關。
2. "STS#0" <-- 這個套版的號碼是一個小組網站,而相關的對應表,請參考套版ID的對應表。(全部套本的對應)
http://msdn2.microsoft.com/en-us/library/ms472488.aspx

當執行之後就能看到我們程式建立在 指定主網站下 sites/newtest
image

(這邊就能想一下,什麼樣的情境會用到這個狀況,如果今天是新導入,可能一整個公司有50各部門,
如果一個一個部門幫他們新建立網站,就蠻辛苦的,就能透過程式加上迴圈,把 "sites/換呈部門名稱"
這樣就能快速的建立出全部部門的網站了)
再來第三個範例就是如何在 網站內 建立子網站(網站集合)
            //¥ 用程式建立網站集
//µ¹ 給予主網站網址
SPSite parentSite = new SPSite("http://cms:37636/sites/newtest"); // 1028為繁體中文 網站看到範例為 1033 為英文版本 SPWebTemplateCollection webTemplates = parentSite.GetWebTemplates(1028); // 把新增的功能網站編號(什麼類型)給 SPWebTemplate 參考類型對應代號網址
//http://msdn2.microsoft.com/en-us/library/ms472488.aspx SPWebTemplate blogTemplate = webTemplates["BLOG#0"]; // 建立網站集合的網站與主網站不同的方式新增
//倒數第二個  false 為繼承上一層主網站的權限
SPWeb blogWeb = parentSite.AllWebs.Add("testBlog", "網站名稱",
"描述", 1028, blogTemplate, false, true); statusLabel.Text = "OK!";
這個範例就跟上一個很像,只是多加上了 SPWebTemplate 為要新增的網站類型,
而新增網站下的網站集合是在 SPSite 下 AllWebs.Add
這樣就能順利的在 網站下 再建立各種網站的集合。
image
最後一個範例,就是所有的網站都可以用程式去對應位子後,去直接做修改的動作。

//取的主網站資料
SPSite parentSite = new SPSite("http://cms:37636/sites/newtest");
//該網站的網址名稱 http://cms:37636/sites/newtest/testBlog/
SPWeb blogWeb =  parentSite.OpenWeb("testBlog");
blogWeb.Title = "修改後Blog";
blogWeb.Update();
statusLabel.Text = "OK!";
image
OK~ 透過這幾個簡單的範例,就能夠先基礎的操作整個SharePointServer上面的網站項目。
下一篇再來說明關於List項目。


[MOSS 開發] MOSS 開發的第一步 引用 Reference Microsoft.SharePoint.dll

參考
MSDN
Microsoft SharePoint 2007 Development Unleashed