敦群數位科技股份有限公司 游家德
 
物件架構 C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12ISAPIMicrosoft.SharePoint.dll http://moss:1234/_vti...
 
SharePoint Object Model <ul><li>Microsoft.SharePoint.dll </li></ul><ul><li>Microsoft.SharePoint.Search.dll </li></ul><ul><...
WSS3.0 的開發  Step1 <ul><li>加入 WSS3.0 參考 </li></ul><ul><ul><li>於專案中加入 C:Program FilesCommon FilesMicrosoft Sharedweb server ...
取得 SPSite 物件的方式 <ul><li>Web Page 中 </li></ul><ul><ul><li>SPSite oSite = SPControl.GetContextSite(System.Web.HttpContext.Cu...
SPSite 的重要屬性 <ul><li>oSite.AllWebs  :  取得所有的網站清單 </li></ul><ul><li>oSite.AllWebs[“/Depts/IT”]  :  取得特定 url 下的清單 </li></ul>
存取 SPSite 物件
SPWebCollection 與 SPWeb <ul><li>SPWebCollection :  網站集合中所有網站組成的清單 </li></ul><ul><li>SPWeb :  個別網站 </li></ul><ul><li>SPWebC...
SPWeb 的重要屬性 <ul><li>oWeb.Lists  :  取得所有的清單列表 </li></ul><ul><li>oWeb.AllowUnsafeUpdate()  :  允許透過 API 進行 Post 的修改 </li></ul...
存取 SPWebCollection / SPWeb  物件
SPListCollection / SPList  物件 <ul><li>SPListCollection :  所有清單組成的列表 </li></ul><ul><li>SPList :  個別清單物件 </li></ul><ul><li>S...
SPList 的重要屬性 <ul><li>SPList.Fields  :  取得該欄位的所有欄位名稱 </li></ul><ul><li>SPList.Items  :  取得該清單中所有的資料 </li></ul><ul><li>SPLis...
存取 SPListCollection/ SPList 物件
SPListItemCollection / SPListItem <ul><li>SPListItemCollection :  清單項目的集合 </li></ul><ul><li>SPListItem :  特定清單項目 </li></ul...
SPListItem 的重要屬性 <ul><li>oListItem[“ 欄位名稱” ] :  取得特定欄位值 </li></ul><ul><li>oListItem.Attachments :  取得特定清單項目的附件集合 ( 文件庫除外 )...
存取 SPListItem 物件
關於 Update <ul><li>修改 SPSite / SPWeb / SPList 等基本屬性 ,  如名稱 ,  及其他相關可修改之資訊 </li></ul><ul><li>新增  /  修改  /  刪除 清單項目 (SPListIt...
Update 時的注意事項 <ul><li>SPWeb 須將 AllowUnSafeUpdate 設為 True </li></ul><ul><li>SharePoint 採 Batch Update 的方式 ,  須執行 Update 動作已...
修改清單標題 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li><...
新增清單項目 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li><...
修改清單項目 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li><...
刪除清單項目 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li><...
SharePoint 的 Update 機制
 
SharePoint  結構化查詢 <ul><li>CAML: Collaboration Application Mark-up Language </li></ul><ul><ul><li>一種以 XML 為基礎的查詢語言 </li></u...
CAML 的使用 <ul><li>應用於 3 rd Party 工具 </li></ul>
CAML 的使用 <ul><li>應用於 SPQuery 以及 SPList.GetItems </li></ul><ul><ul><li>SPQuery oQuery = new SPQuery(); </li></ul></ul><ul><...
 
整合於 ASP.NET 2.0 <ul><li>WSS3.0 已經完全整合在 ASP.NET 2.0 上 </li></ul>WSS2.0 ASP.NET 2.0 Window SharePoint Service 2.0 Window Sha...
WebPart 的演進歷程 Wss 2.0  網頁組件 ASP.NET 2.0 網頁組件 Wss 3.0  網頁組件
WebPart Page 架構 <ul><li>由 WebPartManager 類別控管網頁組件 </li></ul><ul><li>具有一個或多個以上的”網頁組件區域” </li></ul>
WSS3.0 中的網頁組件類型 <ul><li>ASP.NET WebPart </li></ul><ul><ul><li>繼承 asp.net 中的 WebPart 類型 </li></ul></ul><ul><ul><li>以 .webpa...
WebPart 必要之 Namespace <ul><li>System.Web.UI.WebControls </li></ul><ul><li>建立一個類別庫,繼承 System.Web.UI.WebControls.WebParts.We...
網頁組件主要程式碼
網頁組件的屬性定義
網頁組件的執行安全性 <ul><li>定義於 Web.Config 中 </li></ul><ul><ul><li>OSVR_Minimal </li></ul></ul><ul><ul><li>WSS_Minimal </li></ul></...
網頁組件開發步驟 <ul><li>利用 VS.NET2005 開啟 WebPart Project </li></ul><ul><li>設定強制命名及版本資訊 </li></ul><ul><li>設定 Assembly.cs </li></ul...
Upcoming SlideShare
Loading in …5
×

SharePoint平台客製與開發-2

3,462 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
3,462
On SlideShare
0
From Embeds
0
Number of Embeds
43
Actions
Shares
0
Downloads
120
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

SharePoint平台客製與開發-2

  1. 1. 敦群數位科技股份有限公司 游家德
  2. 3. 物件架構 C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12ISAPIMicrosoft.SharePoint.dll http://moss:1234/_vti_bin/*.asmx
  3. 5. SharePoint Object Model <ul><li>Microsoft.SharePoint.dll </li></ul><ul><li>Microsoft.SharePoint.Search.dll </li></ul><ul><li>Microsoft.Office.Server.dll </li></ul><ul><li>Microsoft.Office.Server.Search.dll </li></ul><ul><li>… </li></ul>圖例 SPControl SPSite SPWebCollection SPWeb SPListCollection SPList SPListItemCollection SPListItem SPFieldCollection SPField SPAttachmentCollection SPFile SPUserCollection SPUser Class / Object Collections
  4. 6. WSS3.0 的開發 Step1 <ul><li>加入 WSS3.0 參考 </li></ul><ul><ul><li>於專案中加入 C:Program FilesCommon FilesMicrosoft Sharedweb server extensions12ISAPIMicrosoft.SharePoint.dll </li></ul></ul><ul><li>於程式碼中引用相關類別 </li></ul><ul><ul><li>using Microsoft.SharePoint; </li></ul></ul><ul><ul><li>using Microsoft.SharePoint.WebControls; </li></ul></ul>
  5. 7. 取得 SPSite 物件的方式 <ul><li>Web Page 中 </li></ul><ul><ul><li>SPSite oSite = SPControl.GetContextSite(System.Web.HttpContext.Current); </li></ul></ul><ul><li>Window Application 中 </li></ul><ul><ul><li>SPSite oSite=new SPSite(“http://moss”); </li></ul></ul>
  6. 8. SPSite 的重要屬性 <ul><li>oSite.AllWebs : 取得所有的網站清單 </li></ul><ul><li>oSite.AllWebs[“/Depts/IT”] : 取得特定 url 下的清單 </li></ul>
  7. 9. 存取 SPSite 物件
  8. 10. SPWebCollection 與 SPWeb <ul><li>SPWebCollection : 網站集合中所有網站組成的清單 </li></ul><ul><li>SPWeb : 個別網站 </li></ul><ul><li>SPWebCollection oWebs=oSite.AllWebs; </li></ul><ul><li>SPWeb oWeb = oWebs[“/Depts/IT”]; </li></ul>
  9. 11. SPWeb 的重要屬性 <ul><li>oWeb.Lists : 取得所有的清單列表 </li></ul><ul><li>oWeb.AllowUnsafeUpdate() : 允許透過 API 進行 Post 的修改 </li></ul><ul><li>oWeb.CurrentUser : 取得目前登入使用者 </li></ul><ul><li>oWeb.Users : 取得本網站授權使用者 </li></ul>
  10. 12. 存取 SPWebCollection / SPWeb 物件
  11. 13. SPListCollection / SPList 物件 <ul><li>SPListCollection : 所有清單組成的列表 </li></ul><ul><li>SPList : 個別清單物件 </li></ul><ul><li>SPListCollection oLists=oWeb.Lists; </li></ul><ul><li>SPList oList = oLists[“ 最新消息” ]; </li></ul>
  12. 14. SPList 的重要屬性 <ul><li>SPList.Fields : 取得該欄位的所有欄位名稱 </li></ul><ul><li>SPList.Items : 取得該清單中所有的資料 </li></ul><ul><li>SPList.GetItemByID : 根據傳入的 ID 取得特定清單項目 </li></ul><ul><li>SPList.GetItems : 根據查詢條件取得符合條件之清單 </li></ul><ul><li>SPList.DefaultViewUrl </li></ul><ul><li>SPListCollection.GetDataTable : 將 SPListCollection 轉成 DataTable </li></ul>
  13. 15. 存取 SPListCollection/ SPList 物件
  14. 16. SPListItemCollection / SPListItem <ul><li>SPListItemCollection : 清單項目的集合 </li></ul><ul><li>SPListItem : 特定清單項目 </li></ul><ul><ul><li>SPListItemCollection oListItems = oList.Items; </li></ul></ul><ul><ul><li>SPListItem oListItem= oListItems[1]; </li></ul></ul>
  15. 17. SPListItem 的重要屬性 <ul><li>oListItem[“ 欄位名稱” ] : 取得特定欄位值 </li></ul><ul><li>oListItem.Attachments : 取得特定清單項目的附件集合 ( 文件庫除外 ) -> SPAttchmentCollection </li></ul><ul><li>oListItem.File : 取得文件庫的文件資訊 ( 針對文件庫相關清單 ) -> SPFile </li></ul>
  16. 18. 存取 SPListItem 物件
  17. 19. 關於 Update <ul><li>修改 SPSite / SPWeb / SPList 等基本屬性 , 如名稱 , 及其他相關可修改之資訊 </li></ul><ul><li>新增 / 修改 / 刪除 清單項目 (SPListItem) </li></ul>
  18. 20. Update 時的注意事項 <ul><li>SPWeb 須將 AllowUnSafeUpdate 設為 True </li></ul><ul><li>SharePoint 採 Batch Update 的方式 , 須執行 Update 動作已確認將更新後送回 SQL Server </li></ul>
  19. 21. 修改清單標題 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li></ul><ul><li>oWeb.AllowUnsafeUpdate=True; </li></ul><ul><li>SPList oList=oWeb.List[“ 最新消息” ]; </li></ul><ul><li>oList.Title=“ 公司快訊” ; </li></ul><ul><li>oList.Update(); </li></ul>
  20. 22. 新增清單項目 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li></ul><ul><li>oWeb.AllowUnsafeUpdate=True; </li></ul><ul><li>SPList oList=oWeb.List[“ 最新消息” ]; </li></ul><ul><li>SPListItem oItem = oList.Items.Add(); </li></ul><ul><li>oItem[“ 標題” ]=“ 這是新的訊息” </li></ul><ul><li>oItem.Update(); </li></ul>
  21. 23. 修改清單項目 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li></ul><ul><li>oWeb.AllowUnsafeUpdate=True; </li></ul><ul><li>SPList oList=oWeb.List[“ 最新消息” ]; </li></ul><ul><li>SPListItem oItem = oList.Items[0]; </li></ul><ul><li>oItem[“ 標題” ]=“ 這是新的訊息” </li></ul><ul><li>oItem.Update(); </li></ul>
  22. 24. 刪除清單項目 <ul><li>SPSite oSite = New SPSite(“http://moss”); </li></ul><ul><li>SPWeb oWeb = oSite.AllWebs[“/Depts/IT”]; </li></ul><ul><li>oWeb.AllowUnsafeUpdate=True; </li></ul><ul><li>SPList oList=oWeb.List[“ 最新消息” ]; </li></ul><ul><li>SPListItem oItem = oList.Items[0] </li></ul><ul><li>oItem.Delete(); </li></ul><ul><li>oList.Update(); </li></ul>
  23. 25. SharePoint 的 Update 機制
  24. 27. SharePoint 結構化查詢 <ul><li>CAML: Collaboration Application Mark-up Language </li></ul><ul><ul><li>一種以 XML 為基礎的查詢語言 </li></ul></ul><ul><ul><li><Query> </li></ul></ul><ul><ul><li><Where> </li></ul></ul><ul><ul><li><Or> </li></ul></ul><ul><ul><li><Lt> </li></ul></ul><ul><ul><li><FieldRef Name=&quot;Stock&quot;/> <Value Type=&quot;Number&quot;>15</Value> </li></ul></ul><ul><ul><li></Lt> </li></ul></ul><ul><ul><li><Gt> </li></ul></ul><ul><ul><li><FieldRef Name=&quot;Price&quot;/> </li></ul></ul><ul><ul><li><Value Type=&quot;Currency&quot;>20.00</Value> </li></ul></ul><ul><ul><li></Gt> </li></ul></ul><ul><ul><li></Or> </li></ul></ul><ul><ul><li></Where> </li></ul></ul><ul><ul><li><OrderBy> </li></ul></ul><ul><ul><li><FieldRef Name=&quot;Title&quot;/> </li></ul></ul><ul><ul><li></OrderBy> </li></ul></ul><ul><ul><li></Query> </li></ul></ul>
  25. 28. CAML 的使用 <ul><li>應用於 3 rd Party 工具 </li></ul>
  26. 29. CAML 的使用 <ul><li>應用於 SPQuery 以及 SPList.GetItems </li></ul><ul><ul><li>SPQuery oQuery = new SPQuery(); </li></ul></ul><ul><ul><li>oQuery.Query=“…..CAML TAGS….”; </li></ul></ul><ul><ul><li>SPListItemCollection oLis = oList.GetItems(oQuery); </li></ul></ul>
  27. 31. 整合於 ASP.NET 2.0 <ul><li>WSS3.0 已經完全整合在 ASP.NET 2.0 上 </li></ul>WSS2.0 ASP.NET 2.0 Window SharePoint Service 2.0 Window SharePoint Service 3.0 ASP.NET 1.1 WSS 3.0
  28. 32. WebPart 的演進歷程 Wss 2.0 網頁組件 ASP.NET 2.0 網頁組件 Wss 3.0 網頁組件
  29. 33. WebPart Page 架構 <ul><li>由 WebPartManager 類別控管網頁組件 </li></ul><ul><li>具有一個或多個以上的”網頁組件區域” </li></ul>
  30. 34. WSS3.0 中的網頁組件類型 <ul><li>ASP.NET WebPart </li></ul><ul><ul><li>繼承 asp.net 中的 WebPart 類型 </li></ul></ul><ul><ul><li>以 .webpart 檔案方式匯入 </li></ul></ul><ul><ul><li>新開發的 WebPart 建議以這種方式開發 </li></ul></ul><ul><li>WSS V2-Style WebPart </li></ul><ul><ul><li>繼承 WSS2.0 的 WebPart 類型 </li></ul></ul><ul><ul><li>以 .dwp 的方式匯入 </li></ul></ul><ul><ul><li>基本上是為了相容舊的 wss2.0 網頁組件 </li></ul></ul><ul><li>混合型 WebPart </li></ul><ul><ul><li>繼承 wss2.0 的 WebPart 類型 </li></ul></ul><ul><ul><li>使用新的 asp.net 的相關類型 </li></ul></ul><ul><ul><li>以 .webpart 方式匯入 </li></ul></ul>
  31. 35. WebPart 必要之 Namespace <ul><li>System.Web.UI.WebControls </li></ul><ul><li>建立一個類別庫,繼承 System.Web.UI.WebControls.WebParts.WebPart </li></ul>
  32. 36. 網頁組件主要程式碼
  33. 37. 網頁組件的屬性定義
  34. 38. 網頁組件的執行安全性 <ul><li>定義於 Web.Config 中 </li></ul><ul><ul><li>OSVR_Minimal </li></ul></ul><ul><ul><li>WSS_Minimal </li></ul></ul><ul><ul><li>WSS_Medium </li></ul></ul><ul><ul><li>Full </li></ul></ul>
  35. 39. 網頁組件開發步驟 <ul><li>利用 VS.NET2005 開啟 WebPart Project </li></ul><ul><li>設定強制命名及版本資訊 </li></ul><ul><li>設定 Assembly.cs </li></ul><ul><li>編譯網頁組件專案 </li></ul><ul><li>將 DLL 檔案複製到 bin 目錄下 </li></ul><ul><li>修改 web.config 將該 dll 宣告為 safeControl </li></ul><ul><li>在”網頁組件庫”中加入該網頁組件 </li></ul><ul><li>編輯頁面將該網頁組件加入網頁組件區域中 </li></ul>

×