如何新增SharePoint 2010 WebParts

自從 SharePoint 及 Visual Studio 都推出 2010 版本後,這兩個產品也開始互相溝通了,Visual Studio 2008 以前要開發 SharePoint 都需要額外安裝 Template,而 Visual Studio 2010 就內建這個功能,同時可以邊在 SharePoint 上面執行並 Debug (註1)。

由於產品的限制,Visual Studio 及 SharePoint 必須要安裝在同一台機器,這樣才可以程式撰寫(修改)完成後立即在 SharePoint 上面看到成果,所以我在虛擬機器上安裝了一套新的 MOSS (含 SQL Express)做為開發環境,之後再安裝 Visual Studio,安裝過程就略過(可以參考網路資料或後續的安裝說明)。

由於 SQL Express 的特性,該主機最好給予較多的 RAM,實際測試只給 2G 左右的 RAM 跑起來還是會卡卡的,後來我調整到 3G 左右的 RAM 跑起來才算正常,只上只開了一個 Default 的展示網站,尚未開啟Visual Studio。

RAM Usage for Visual Stduio 2010 & MOSS
RAM Usage for Visual Stduio 2010 & MOSS

開 啟 Visual Studio 要選擇新的專案 (Project),在 Installed Template 中選擇 SharePoint 2010 -> Visual Web Parts,此時支援可用 C## (default) 或用 Visual Basic (other language) 來開發。

選擇 Visual Web Parts 其實跟開發 WinForm 的程式類似,可由左方的 ToolBox 拉選需要的元件來用,我使用的範例是到 ERP 資料內去抓取本日的壽星;而我是屬於 Old School 的開發人員,沒有學過 C## 所以選擇 VB .net 做為開發工具。

Happy Birthday Webpart
Happy Birthday Webpart

程 式撰寫技巧也還是略過,測試時只要選擇 Run (F5),可以看到 Visual Studio 左下角看到正在建立執行套件,啟動MOSS 等動作,過程中可能會需要幾十秒鐘(依照機器的資源),雖然過程中真的很慢,建議可以先把整個程式雛型先用 WinForm 做好後再把程式碼移植進來。

第 一次執行時必須要到 頁面 -> 編輯 -> 插入 -> 網頁組件(WebParts) -> Custome -> VisualWebParts1 (如果沒有重新命名的話),把剛剛開發好的Web Parts 呈現在網頁上 (其實 Visual Studio 幫忙做了很多後端需要註冊/佈署的動作),後面我會介紹要如何手動來 Import 及 Deploy Web Parts。

insert a handmand webpart
insert a handmand webpart

加入後的呈現畫面如下:

Display Happy birthday webpart
Display Happy birthday webpart

確認程式撰寫完成後,就可以封裝 (build) 成 WSP 的檔案,透過批次指令 Import 至 SharePoint 內去,其步驟如下:

  1. 到該 WebParts 的存放路徑底下可以看到 binDebug 內會有四個檔案, 其中有一個 .wsp 的檔案。
  2. 把這四個檔案都複製到 MOSS 機器上,我習慣放在 C:WebParts 內,方便後許管理。
  3. 把以下的指令做成批次檔案 (.bat) 修改 .wsp 名稱改為你的 webparts名稱,執行匯入的動作
  • SET PATH=%PATH%;”c:Program FilesCommon FilesMicrosoft Sharedweb server extensions14BIN”
  • STSADM.EXE -o AddSolution -filename visualwebpart1.wsp
  • STSADM.EXE -o DeploySolution -name visualwebpart1.wsp -allcontenturls -immediate -force -allowGacDeployment
  • STSADM.EXE -o execadmsvcjobs

進入 MOSS 管理介面 系統設定 -> 管理伺服器陣列方案

make sure webpart is deployed
check imported webpart

確認匯入的 wsp 是否都已經部屬,如果沒有自動部屬則請手動進去部署,讓Sharepoint 可以引用新開發出來的 Web Parts。

make sure webpart is deployed
make sure webpart is deployed

之後再切到網站頁面 網站動作 -> 網站設定 -> 網站集合功能

enable webparts
network settings

找到剛剛 Import 進去的 webpart 來啟動他。

enable webparts
enable webparts

這樣在編輯頁面的時候就可以插入以上的這個 WebParts,在除錯模式的時候就是 Visual Studio 幫你把以上這些動作做完。

註1: 其 Debug 除不能邊執行邊修正程式內容外,其他功能都跟開發 WinForm 模式類似,但有部分的元件在屬性上有很大的不同。

後記: 其實開發 Share Point 2010 Web Part 最花時間的是在程式的 Debug,建議可以在其他地方確認程式碼執行無誤後再移植進來執行。

在〈如何新增SharePoint 2010 WebParts〉中有 2 則留言

  1. 我前面步驟都做了 但最後在網站集合功能裡面找不到可以啟動 請問會是什麼問題呢?

    1. Cboy,

      感覺像是沒有部署成功,請進入管理中心 -> 系統設定 -> 管理伺服器陣列方案 檢查一下剛寫好的是否有部署完成, 這個動作是指寫好並包裝成 .wsp 檔案後的動作。

      如果是 debug 階段應該是不用如此,直接插入 WebPart 就可以使用了.

      Rgds,
      Mark

發表迴響

%d 位部落客按了讚: