自從 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。
開 啟 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 做為開發工具。
程 式撰寫技巧也還是略過,測試時只要選擇 Run (F5),可以看到 Visual Studio 左下角看到正在建立執行套件,啟動MOSS 等動作,過程中可能會需要幾十秒鐘(依照機器的資源),雖然過程中真的很慢,建議可以先把整個程式雛型先用 WinForm 做好後再把程式碼移植進來。
第 一次執行時必須要到 頁面 -> 編輯 -> 插入 -> 網頁組件(WebParts) -> Custome -> VisualWebParts1 (如果沒有重新命名的話),把剛剛開發好的Web Parts 呈現在網頁上 (其實 Visual Studio 幫忙做了很多後端需要註冊/佈署的動作),後面我會介紹要如何手動來 Import 及 Deploy Web Parts。
加入後的呈現畫面如下:
確認程式撰寫完成後,就可以封裝 (build) 成 WSP 的檔案,透過批次指令 Import 至 SharePoint 內去,其步驟如下:
- 到該 WebParts 的存放路徑底下可以看到 binDebug 內會有四個檔案, 其中有一個 .wsp 的檔案。
- 把這四個檔案都複製到 MOSS 機器上,我習慣放在 C:WebParts 內,方便後許管理。
- 把以下的指令做成批次檔案 (.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 管理介面 系統設定 -> 管理伺服器陣列方案
確認匯入的 wsp 是否都已經部屬,如果沒有自動部屬則請手動進去部署,讓Sharepoint 可以引用新開發出來的 Web Parts。
之後再切到網站頁面 網站動作 -> 網站設定 -> 網站集合功能
找到剛剛 Import 進去的 webpart 來啟動他。
這樣在編輯頁面的時候就可以插入以上的這個 WebParts,在除錯模式的時候就是 Visual Studio 幫你把以上這些動作做完。
註1: 其 Debug 除不能邊執行邊修正程式內容外,其他功能都跟開發 WinForm 模式類似,但有部分的元件在屬性上有很大的不同。
後記: 其實開發 Share Point 2010 Web Part 最花時間的是在程式的 Debug,建議可以在其他地方確認程式碼執行無誤後再移植進來執行。
我前面步驟都做了 但最後在網站集合功能裡面找不到可以啟動 請問會是什麼問題呢?
Cboy,
感覺像是沒有部署成功,請進入管理中心 -> 系統設定 -> 管理伺服器陣列方案 檢查一下剛寫好的是否有部署完成, 這個動作是指寫好並包裝成 .wsp 檔案後的動作。
如果是 debug 階段應該是不用如此,直接插入 WebPart 就可以使用了.
Rgds,
Mark